# encoding: utf-8 """ Timezone utilities Just UTC-awareness right now Deprecated since IPython 8.19.0. """ # ----------------------------------------------------------------------------- # 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. # ----------------------------------------------------------------------------- # ----------------------------------------------------------------------------- # Imports # ----------------------------------------------------------------------------- import warnings from datetime import tzinfo, timedelta, datetime # ----------------------------------------------------------------------------- # Code # ----------------------------------------------------------------------------- __all__ = ["tzUTC", "utc_aware", "utcfromtimestamp", "utcnow"] # constant for zero offset ZERO = timedelta(0) def __getattr__(name): if name not in __all__: err = f"IPython.utils.tz is deprecated and has no attribute {name}" raise AttributeError(err) _warn_deprecated() return getattr(name) def _warn_deprecated(): msg = "The module `IPython.utils.tz` is deprecated and will be completely removed." warnings.warn(msg, category=DeprecationWarning, stacklevel=2) class tzUTC(tzinfo): """tzinfo object for UTC (zero offset) Deprecated since IPython 8.19.0. """ _warn_deprecated() def utcoffset(self, d): return ZERO def dst(self, d): return ZERO UTC = tzUTC() # type: ignore[abstract] def utc_aware(unaware): """decorator for adding UTC tzinfo to datetime's utcfoo methods Deprecated since IPython 8.19.0. """ def utc_method(*args, **kwargs): _warn_deprecated() dt = unaware(*args, **kwargs) return dt.replace(tzinfo=UTC) return utc_method utcfromtimestamp = utc_aware(datetime.utcfromtimestamp) utcnow = utc_aware(datetime.utcnow)