mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 13:17:32 +00:00
Use mypy-friendly conditional import for zoneinfo (#50444)
This commit is contained in:
parent
aef24a807e
commit
de5472403b
@ -5,17 +5,18 @@ import bisect
|
|||||||
from contextlib import suppress
|
from contextlib import suppress
|
||||||
import datetime as dt
|
import datetime as dt
|
||||||
import re
|
import re
|
||||||
from typing import Any
|
import sys
|
||||||
|
from typing import Any, cast
|
||||||
try:
|
|
||||||
import zoneinfo
|
|
||||||
except ImportError:
|
|
||||||
from backports import zoneinfo
|
|
||||||
|
|
||||||
import ciso8601
|
import ciso8601
|
||||||
|
|
||||||
from homeassistant.const import MATCH_ALL
|
from homeassistant.const import MATCH_ALL
|
||||||
|
|
||||||
|
if sys.version_info[:2] >= (3, 9):
|
||||||
|
import zoneinfo # pylint: disable=import-error
|
||||||
|
else:
|
||||||
|
from backports import zoneinfo # pylint: disable=import-error
|
||||||
|
|
||||||
DATE_STR_FORMAT = "%Y-%m-%d"
|
DATE_STR_FORMAT = "%Y-%m-%d"
|
||||||
UTC = dt.timezone.utc
|
UTC = dt.timezone.utc
|
||||||
DEFAULT_TIME_ZONE: dt.tzinfo = dt.timezone.utc
|
DEFAULT_TIME_ZONE: dt.tzinfo = dt.timezone.utc
|
||||||
@ -49,7 +50,8 @@ def get_time_zone(time_zone_str: str) -> dt.tzinfo | None:
|
|||||||
Async friendly.
|
Async friendly.
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
return zoneinfo.ZoneInfo(time_zone_str) # type: ignore
|
# Cast can be removed when mypy is switched to Python 3.9.
|
||||||
|
return cast(dt.tzinfo, zoneinfo.ZoneInfo(time_zone_str))
|
||||||
except zoneinfo.ZoneInfoNotFoundError:
|
except zoneinfo.ZoneInfoNotFoundError:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user