Source code for falcon.util.time
"""Time and date utilities.
This module provides utility functions and classes for dealing with
times and dates. These functions are hoisted into the `falcon` module
for convenience::
import falcon
tz = falcon.TimezoneGMT()
"""
from __future__ import annotations
import datetime
from typing import Optional
from .deprecation import deprecated
__all__ = ('TimezoneGMT',)
[docs]
class TimezoneGMT(datetime.tzinfo):
"""GMT timezone class implementing the :class:`datetime.tzinfo` interface.
.. deprecated:: 4.0
:class:`TimezoneGMT` is deprecated, use :attr:`datetime.timezone.utc`
instead. (This class will be removed in Falcon 5.0.)
"""
GMT_ZERO = datetime.timedelta(hours=0)
@deprecated(
'TimezoneGMT is deprecated, use datetime.timezone.utc instead. '
'(TimezoneGMT will be removed in Falcon 5.0.)'
)
def __init__(self) -> None:
super().__init__()
[docs]
def utcoffset(self, dt: Optional[datetime.datetime]) -> datetime.timedelta:
"""Get the offset from UTC.
Args:
dt(datetime.datetime): Ignored
Returns:
datetime.timedelta: GMT offset, which is equivalent to UTC and
so is always 0.
"""
return self.GMT_ZERO
[docs]
def tzname(self, dt: Optional[datetime.datetime]) -> str:
"""Get the name of this timezone.
Args:
dt(datetime.datetime): Ignored
Returns:
str: "GMT"
"""
return 'GMT'
[docs]
def dst(self, dt: Optional[datetime.datetime]) -> datetime.timedelta:
"""Return the daylight saving time (DST) adjustment.
Args:
dt(datetime.datetime): Ignored
Returns:
datetime.timedelta: DST adjustment for GMT, which is always 0.
"""
return self.GMT_ZERO