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) | |