Updates
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
try:
|
||||
import zoneinfo
|
||||
except ImportError:
|
||||
from backports import zoneinfo
|
||||
|
||||
from .base import TimeZoneBackend, TimeZoneNotFoundError
|
||||
|
||||
|
||||
class ZoneInfoBackend(TimeZoneBackend):
|
||||
utc_tzobj = zoneinfo.ZoneInfo("UTC")
|
||||
all_tzstrs = zoneinfo.available_timezones()
|
||||
base_tzstrs = zoneinfo.available_timezones()
|
||||
# Remove the "Factory" timezone as it can cause ValueError exceptions on
|
||||
# some systems, e.g. FreeBSD, if the system zoneinfo database is used.
|
||||
all_tzstrs.discard("Factory")
|
||||
base_tzstrs.discard("Factory")
|
||||
|
||||
def is_tzobj(self, value):
|
||||
return isinstance(value, zoneinfo.ZoneInfo)
|
||||
|
||||
def to_tzobj(self, tzstr):
|
||||
if tzstr in (None, ""):
|
||||
raise TimeZoneNotFoundError
|
||||
try:
|
||||
return zoneinfo.ZoneInfo(tzstr)
|
||||
except zoneinfo.ZoneInfoNotFoundError as err:
|
||||
raise TimeZoneNotFoundError from err
|
||||
Reference in New Issue
Block a user