]> Cypherpunks.ru repositories - pyderasn.git/blobdiff - pyderasn.py
Raised copyright years
[pyderasn.git] / pyderasn.py
index 82021efab0391507dfda7e3d53402d71850cc037..116ef6e9e8d899fb2dfa95e431b6915045993c4c 100755 (executable)
@@ -4,7 +4,7 @@
 # pylint: disable=line-too-long,superfluous-parens,protected-access,too-many-lines
 # pylint: disable=too-many-return-statements,too-many-branches,too-many-statements
 # PyDERASN -- Python ASN.1 DER/CER/BER codec with abstract structures
-# Copyright (C) 2017-2021 Sergey Matveev <stargrave@stargrave.org>
+# Copyright (C) 2017-2022 Sergey Matveev <stargrave@stargrave.org>
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU Lesser General Public License as
@@ -971,12 +971,12 @@ _____________
 UTCTime
 _______
 .. autoclass:: pyderasn.UTCTime
-   :members: __init__, todatetime
+   :members: __init__, todatetime, totzdatetime
 
 GeneralizedTime
 _______________
 .. autoclass:: pyderasn.GeneralizedTime
-   :members: __init__, todatetime
+   :members: __init__, todatetime, totzdatetime
 
 Special types
 -------------
@@ -1181,9 +1181,9 @@ except ImportError:  # pragma: no cover
         return what
 
 try:
-    from dateutil.tz import tzutc
+    from dateutil.tz import UTC as tzUTC
 except ImportError:  # pragma: no cover
-    tzutc = None
+    tzUTC = "missing"
 
 
 __version__ = "9.1"
@@ -5038,6 +5038,8 @@ class UTCTime(VisibleString):
     datetime.datetime(2017, 9, 30, 22, 7, 50)
     >>> UTCTime(datetime(2057, 9, 30, 22, 7, 50)).todatetime()
     datetime.datetime(1957, 9, 30, 22, 7, 50)
+    >>> UTCTime(datetime(2057, 9, 30, 22, 7, 50)).totzdatetime()
+    datetime.datetime(1957, 9, 30, 22, 7, 50, tzinfo=tzutc())
 
     If BER encoded value was met, then ``ber_raw`` attribute will hold
     its raw representation.
@@ -5248,11 +5250,10 @@ class UTCTime(VisibleString):
         return self._value
 
     def totzdatetime(self):
-        if tzutc is None:
-            raise NotImplementedError(
-                "Package python-dateutil is required to use this feature",
-            )
-        return self._value.replace(tzinfo=tzutc())
+        try:
+            return self._value.replace(tzinfo=tzUTC)
+        except TypeError as err:
+            raise NotImplementedError("Missing dateutil.tz") from err
 
     def __repr__(self):
         return pp_console_row(next(self.pps()))