summaryrefslogtreecommitdiff
path: root/babel/localtime/__init__.py
blob: 29577fa37168ad281974a37de3a4cd8dcf118fbf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
"""
    babel.localtime
    ~~~~~~~~~~~~~~~

    Babel specific fork of tzlocal to determine the local timezone
    of the system.

    :copyright: (c) 2013-2022 by the Babel Team.
    :license: BSD, see LICENSE for more details.
"""

import datetime
import sys

if sys.platform == 'win32':
    from babel.localtime._win32 import _get_localzone
else:
    from babel.localtime._unix import _get_localzone


# 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:
    """Returns the current underlying local timezone object.
    Generally this function does not need to be used, it's a
    better idea to use the :data:`LOCALTZ` singleton instead.
    """
    return _get_localzone()


try:
    LOCALTZ = get_localzone()
except LookupError:
    LOCALTZ = _FallbackLocalTimezone()