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