1from datetime import tzinfo, timedelta 2 3 4class TomlTz(tzinfo): 5 def __init__(self, toml_offset): 6 if toml_offset == "Z": 7 self._raw_offset = "+00:00" 8 else: 9 self._raw_offset = toml_offset 10 self._sign = -1 if self._raw_offset[0] == '-' else 1 11 self._hours = int(self._raw_offset[1:3]) 12 self._minutes = int(self._raw_offset[4:6]) 13 14 def __deepcopy__(self, memo): 15 return self.__class__(self._raw_offset) 16 17 def tzname(self, dt): 18 return "UTC" + self._raw_offset 19 20 def utcoffset(self, dt): 21 return self._sign * timedelta(hours=self._hours, minutes=self._minutes) 22 23 def dst(self, dt): 24 return timedelta(0) 25