Use mypy-friendly conditional import for zoneinfo (#50444)
This commit is contained in:
parent
aef24a807e
commit
de5472403b
1 changed files with 9 additions and 7 deletions
|
@ -5,17 +5,18 @@ import bisect
|
|||
from contextlib import suppress
|
||||
import datetime as dt
|
||||
import re
|
||||
from typing import Any
|
||||
|
||||
try:
|
||||
import zoneinfo
|
||||
except ImportError:
|
||||
from backports import zoneinfo
|
||||
import sys
|
||||
from typing import Any, cast
|
||||
|
||||
import ciso8601
|
||||
|
||||
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"
|
||||
UTC = 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.
|
||||
"""
|
||||
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:
|
||||
return None
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue