summaryrefslogtreecommitdiff
path: root/babel/localtime/__init__.py
diff options
context:
space:
mode:
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: