diff options
Diffstat (limited to 'babel/localtime/__init__.py')
-rw-r--r-- | babel/localtime/__init__.py | 48 |
1 files changed, 9 insertions, 39 deletions
diff --git a/babel/localtime/__init__.py b/babel/localtime/__init__.py index 1d65fb2..29577fa 100644 --- a/babel/localtime/__init__.py +++ b/babel/localtime/__init__.py @@ -11,8 +11,6 @@ import datetime import sys -import time -from threading import RLock if sys.platform == 'win32': from babel.localtime._win32 import _get_localzone @@ -20,43 +18,15 @@ else: from babel.localtime._unix import _get_localzone -_cached_tz = None -_cache_lock = RLock() - -STDOFFSET = datetime.timedelta(seconds=-time.timezone) -if time.daylight: - DSTOFFSET = datetime.timedelta(seconds=-time.altzone) -else: - DSTOFFSET = STDOFFSET - -DSTDIFF = DSTOFFSET - STDOFFSET -ZERO = datetime.timedelta(0) - - -class _FallbackLocalTimezone(datetime.tzinfo): - - def utcoffset(self, dt: datetime.datetime) -> datetime.timedelta: - if self._isdst(dt): - return DSTOFFSET - else: - return STDOFFSET - - def dst(self, dt: datetime.datetime) -> datetime.timedelta: - if self._isdst(dt): - return DSTDIFF - else: - return ZERO - - def tzname(self, dt: datetime.datetime) -> str: - return time.tzname[self._isdst(dt)] - - def _isdst(self, dt: datetime.datetime) -> bool: - tt = (dt.year, dt.month, dt.day, - dt.hour, dt.minute, dt.second, - dt.weekday(), 0, -1) - stamp = time.mktime(tt) - tt = time.localtime(stamp) - return tt.tm_isdst > 0 +# TODO(3.0): the offset constants are not part of the public API +# and should be removed +from babel.localtime._fallback import ( + DSTDIFF, # noqa: F401 + DSTOFFSET, # noqa: F401 + STDOFFSET, # noqa: F401 + ZERO, # noqa: F401 + _FallbackLocalTimezone, +) def get_localzone() -> datetime.tzinfo: |