From 65613853fd784a3d46c7ae8f53ba83218665a1c6 Mon Sep 17 00:00:00 2001 From: Daniel Kahn Gillmor Date: Fri, 29 Apr 2022 15:58:30 -0400 Subject: [PATCH] Warn when the user passes a TZ-naive datetime object TZ-naive datetime objects are looking for trouble. We would prefer to do all comparisons and work using TZ-aware datetime objects. --- pgpy/packet/packets.py | 5 +++++ pgpy/packet/subpackets/signature.py | 3 +++ 2 files changed, 8 insertions(+) diff --git a/pgpy/packet/packets.py b/pgpy/packet/packets.py index c9dceda..36e5c1d 100644 --- a/pgpy/packet/packets.py +++ b/pgpy/packet/packets.py @@ -7,6 +7,7 @@ import copy import hashlib import os import re +import warnings from datetime import datetime, timezone @@ -763,6 +764,8 @@ class PubKeyV4(PubKey): @created.register(datetime) def created_datetime(self, val): + if val.tzinfo is None: + warnings.warn("Passing TZ-naive datetime object to PubKeyV4 packet") self._created = val @created.register(int) @@ -1183,6 +1186,8 @@ class LiteralData(Packet): @mtime.register(datetime) def mtime_datetime(self, val): + if val.tzinfo is None: + warnings.warn("Passing TZ-naive datetime object to LiteralData packet") self._mtime = val @mtime.register(int) diff --git a/pgpy/packet/subpackets/signature.py b/pgpy/packet/subpackets/signature.py index 0ca5acb..4b7d7d9 100644 --- a/pgpy/packet/subpackets/signature.py +++ b/pgpy/packet/subpackets/signature.py @@ -4,6 +4,7 @@ Signature SubPackets """ import binascii import calendar +import warnings from datetime import datetime from datetime import timedelta @@ -230,6 +231,8 @@ class CreationTime(Signature): @created.register(datetime) def created_datetime(self, val): + if val.tzinfo is None: + warnings.warn("Passing TZ-naive datetime object to CreationTime subpacket") self._created = val @created.register(int)