Source code for ampel.model.time.TimeConstraintModel

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# File:                Ampel-core/ampel/model/time/TimeConstraintModel.py
# License:             BSD-3-Clause
# Author:              valery brinnel <firstname.lastname@gmail.com>
# Date:                29.09.2018
# Last Modified Date:  06.06.2020
# Last Modified By:    valery brinnel <firstname.lastname@gmail.com>

from ampel.model.time.TimeDeltaModel import TimeDeltaModel
from ampel.model.time.TimeLastRunModel import TimeLastRunModel
from ampel.model.time.TimeStringModel import TimeStringModel
from ampel.model.time.UnixTimeModel import UnixTimeModel
from ampel.model.time.QueryTimeModel import QueryTimeModel
from ampel.base.AmpelBaseModel import AmpelBaseModel


[docs] class TimeConstraintModel(AmpelBaseModel): """ Examples:: TimeConstraintModel( **{ "after": { "match_type": "time_delta", "days": -1 }, "before": { "match_type": "time_string", "dateTimeStr": "21/11/06 16:30", "dateTimeFormat": "%d/%m/%y %H:%M" } } ) :: TimeConstraintModel( **{ "after": { "match_type": "time_last_run", "name": "val_test" }, "before": { "match_type": "unix_time", "value": 1531306299 } } ) """ before: None | TimeDeltaModel | TimeLastRunModel | TimeStringModel | UnixTimeModel = None after: None | TimeDeltaModel | TimeLastRunModel | TimeStringModel | UnixTimeModel = None
[docs] def get_query_model(self, **kwargs) -> None | QueryTimeModel: """ Call this method with db=<instance of AmpelDB> if your time constraint is based on TimeLastRunModel """ if self.before is None and self.after is None: return None return QueryTimeModel( before = self.before.get_timestamp(**kwargs) if self.before else None, after = self.after.get_timestamp(**kwargs) if self.after else None )