Spaces:
Runtime error
Runtime error
try: | |
import pytz | |
except ModuleNotFoundError: | |
pytz = None | |
import zoneinfo | |
def _get_tzinfo(tzenv: str): | |
"""Get the tzinfo from `zoneinfo` or `pytz` | |
:param tzenv: timezone in the form of Continent/City | |
:return: tzinfo object or None if not found | |
""" | |
if pytz: | |
try: | |
return pytz.timezone(tzenv) | |
except pytz.UnknownTimeZoneError: | |
pass | |
else: | |
try: | |
return zoneinfo.ZoneInfo(tzenv) | |
except zoneinfo.ZoneInfoNotFoundError: | |
pass | |
return None | |
def _get_tzinfo_or_raise(tzenv: str): | |
tzinfo = _get_tzinfo(tzenv) | |
if tzinfo is None: | |
raise LookupError( | |
f"Can not find timezone {tzenv}. \n" | |
"Timezone names are generally in the form `Continent/City`." | |
) | |
return tzinfo | |
def _get_tzinfo_from_file(tzfilename: str): | |
with open(tzfilename, 'rb') as tzfile: | |
if pytz: | |
return pytz.tzfile.build_tzinfo('local', tzfile) | |
else: | |
return zoneinfo.ZoneInfo.from_file(tzfile) | |