diff options
author | Aarni Koskela <akx@iki.fi> | 2023-01-25 20:37:51 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-25 20:37:51 +0200 |
commit | 2c1875e57415974a76fbe022c16b7893576d185b (patch) | |
tree | d7e7f60c6060a05339ba014824e952f1edc8e148 /babel/localtime/__init__.py | |
parent | 79bcdf2640b400a56577d93e7fde026290c7a04c (diff) | |
download | babel-2c1875e57415974a76fbe022c16b7893576d185b.tar.gz |
Clean up babel.localtime (#952)
* Remove vestigial babel.localtime cache bits
* Give _FallbackLocalTimezone its own module
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: |