Source code for ampel.model.time.TimeDeltaModel
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# File: Ampel-core/ampel/model/time/TimeDeltaModel.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 typing import Literal
from datetime import datetime, timedelta
from ampel.base.AmpelBaseModel import AmpelBaseModel
[docs]
class TimeDeltaModel(AmpelBaseModel):
match_type: Literal['time_delta']
days: int = 0
seconds: int = 0
microseconds: int = 0
milliseconds: int = 0
minutes: int = 0
hours: int = 0
weeks: int = 0
[docs]
def get_timestamp(self, **kwargs) -> float:
dt = (kwargs.get('now') or datetime.today()) + timedelta(
days=self.days, seconds=self.seconds, microseconds=self.microseconds,
milliseconds=self.milliseconds, minutes=self.minutes,
hours=self.hours, weeks=self.weeks
)
return dt.timestamp()