tz.py
82 lines
| 2.0 KiB
| text/x-python
|
PythonLexer
|
r11144 | # encoding: utf-8 | ||
""" | ||||
Timezone utilities | ||||
Just UTC-awareness right now | ||||
|
r28523 | |||
Deprecated since IPython 8.19.0. | ||||
|
r11144 | """ | ||
|
r28522 | # ----------------------------------------------------------------------------- | ||
|
r11144 | # Copyright (C) 2013 The IPython Development Team | ||
# | ||||
# Distributed under the terms of the BSD License. The full license is in | ||||
# the file COPYING, distributed as part of this software. | ||||
|
r28522 | # ----------------------------------------------------------------------------- | ||
|
r11144 | |||
|
r28522 | # ----------------------------------------------------------------------------- | ||
|
r11144 | # Imports | ||
|
r28522 | # ----------------------------------------------------------------------------- | ||
|
r11144 | |||
|
r28523 | import warnings | ||
|
r11144 | from datetime import tzinfo, timedelta, datetime | ||
|
r28522 | # ----------------------------------------------------------------------------- | ||
|
r11144 | # Code | ||
|
r28522 | # ----------------------------------------------------------------------------- | ||
|
r28523 | __all__ = ["tzUTC", "utc_aware", "utcfromtimestamp", "utcnow"] | ||
|
r28524 | |||
|
r11144 | # constant for zero offset | ||
ZERO = timedelta(0) | ||||
|
r28522 | |||
|
r28523 | def __getattr__(name): | ||
if name not in __all__: | ||||
err = f"IPython.utils.tz is deprecated and has no attribute {name}" | ||||
raise AttributeError(err) | ||||
|
r28524 | _warn_deprecated() | ||
|
r28523 | |||
return getattr(name) | ||||
|
r28524 | def _warn_deprecated(): | ||
msg = "The module `IPython.utils.tz` is deprecated and will be completely removed." | ||||
warnings.warn(msg, category=DeprecationWarning, stacklevel=2) | ||||
|
r11144 | class tzUTC(tzinfo): | ||
|
r28523 | """tzinfo object for UTC (zero offset) | ||
Deprecated since IPython 8.19.0. | ||||
""" | ||||
|
r11144 | |||
|
r28524 | _warn_deprecated() | ||
|
r11144 | def utcoffset(self, d): | ||
return ZERO | ||||
def dst(self, d): | ||||
return ZERO | ||||
|
r28167 | |||
UTC = tzUTC() # type: ignore[abstract] | ||||
|
r11144 | |||
def utc_aware(unaware): | ||||
|
r28523 | """decorator for adding UTC tzinfo to datetime's utcfoo methods | ||
Deprecated since IPython 8.19.0. | ||||
""" | ||||
|
r28522 | |||
|
r11144 | def utc_method(*args, **kwargs): | ||
|
r28524 | _warn_deprecated() | ||
|
r11144 | dt = unaware(*args, **kwargs) | ||
return dt.replace(tzinfo=UTC) | ||||
|
r28522 | |||
|
r11144 | return utc_method | ||
|
r28522 | |||
|
r11144 | utcfromtimestamp = utc_aware(datetime.utcfromtimestamp) | ||
utcnow = utc_aware(datetime.utcnow) | ||||