summaryrefslogtreecommitdiffstats
path: root/pendulum/tz/zoneinfo/transition_type.py
diff options
context:
space:
mode:
Diffstat (limited to 'pendulum/tz/zoneinfo/transition_type.py')
-rw-r--r--pendulum/tz/zoneinfo/transition_type.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/pendulum/tz/zoneinfo/transition_type.py b/pendulum/tz/zoneinfo/transition_type.py
new file mode 100644
index 0000000..dd0a634
--- /dev/null
+++ b/pendulum/tz/zoneinfo/transition_type.py
@@ -0,0 +1,35 @@
+from datetime import timedelta
+
+from pendulum.utils._compat import PY2
+from pendulum.utils._compat import encode
+
+
+class TransitionType:
+ def __init__(self, offset, is_dst, abbr):
+ self._offset = offset
+ self._is_dst = is_dst
+ self._abbr = abbr
+
+ self._utcoffset = timedelta(seconds=offset)
+
+ @property
+ def offset(self): # type: () -> int
+ return self._offset
+
+ @property
+ def abbreviation(self): # type: () -> str
+ if PY2:
+ return encode(self._abbr)
+
+ return self._abbr
+
+ def is_dst(self): # type: () -> bool
+ return self._is_dst
+
+ def utcoffset(self): # type: () -> timedelta
+ return self._utcoffset
+
+ def __repr__(self): # type: () -> str
+ return "TransitionType({}, {}, {})".format(
+ self._offset, self._is_dst, self._abbr
+ )