summaryrefslogtreecommitdiff
path: root/babel/localtime/__init__.py
diff options
context:
space:
mode:
authorAarni Koskela <akx@iki.fi>2023-01-25 20:37:51 +0200
committerGitHub <noreply@github.com>2023-01-25 20:37:51 +0200
commit2c1875e57415974a76fbe022c16b7893576d185b (patch)
treed7e7f60c6060a05339ba014824e952f1edc8e148 /babel/localtime/__init__.py
parent79bcdf2640b400a56577d93e7fde026290c7a04c (diff)
downloadbabel-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__.py48
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: