def save_date(self, feed, date: pendulum.DateTime): """ Save the date for the current event. """ # just in case someone didn't follow the type hints if isinstance(date, datetime.datetime): date = pendulum.from_timestamp(date.timestamp()) datafile = os.path.join(self.basepath, f'last.{feed}.dat') with open(datafile, 'w') as f: f.write(str(date.in_tz('UTC')))
def format_fn_datetime(raw_value: pendulum.DateTime, format_str: str, now_dt: pendulum.DateTime) -> str: """ :param raw_value: :param format_str: https://pendulum.eustace.io/docs/#formatter :param now_dt: :return: """ raw_value_tz = raw_value.in_tz('local') return raw_value_tz.format(format_str) if format_str else str(raw_value_tz)
def format_datetime_fn(raw_value: pendulum.DateTime, format_str: str) -> str: raw_value_tz = raw_value.in_tz('Europe/Paris') return raw_value_tz.format(format_str) if format_str else str(raw_value_tz)
def in_tz(datetime: pendulum.DateTime, timezone: str) -> pendulum.DateTime: """Convert the given datetime to a different timezone.""" return datetime.in_tz(timezone)