From 6c58e82181f387a99d53b956afe70d3df35f0f8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Ruiz?= Date: Fri, 21 Feb 2025 09:28:00 +0100 Subject: [PATCH 1/3] Replace deprecated datetime.utcfromtimestamp() with timezone-aware alternative --- scrapinghub/hubstorage/serialization.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/scrapinghub/hubstorage/serialization.py b/scrapinghub/hubstorage/serialization.py index c64b5ef5..6748ec0c 100644 --- a/scrapinghub/hubstorage/serialization.py +++ b/scrapinghub/hubstorage/serialization.py @@ -1,13 +1,15 @@ -import six +from datetime import UTC, datetime from json import dumps, loads -from datetime import datetime -EPOCH = datetime.utcfromtimestamp(0) +import six + +EPOCH = datetime.fromtimestamp(0, UTC) ADAYINSECONDS = 24 * 3600 try: from msgpack import Unpacker + MSGPACK_AVAILABLE = True except ImportError: MSGPACK_AVAILABLE = False From 68d2ccabd3aa76c54ade8b0cecc8580d28b8a05f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Ruiz?= Date: Fri, 21 Feb 2025 09:37:08 +0100 Subject: [PATCH 2/3] Fix utc import for python <3.11 --- scrapinghub/hubstorage/serialization.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scrapinghub/hubstorage/serialization.py b/scrapinghub/hubstorage/serialization.py index 6748ec0c..bb45ffd0 100644 --- a/scrapinghub/hubstorage/serialization.py +++ b/scrapinghub/hubstorage/serialization.py @@ -1,9 +1,9 @@ -from datetime import UTC, datetime +from datetime import datetime, timezone from json import dumps, loads import six -EPOCH = datetime.fromtimestamp(0, UTC) +EPOCH = datetime.fromtimestamp(0, timezone.utc) ADAYINSECONDS = 24 * 3600 From 4445e7861ed71ebc58a8e9c68e031a014419ea6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Ruiz?= Date: Fri, 21 Feb 2025 10:37:11 +0100 Subject: [PATCH 3/3] Make EPOCH timezone naive for retrocompatibility --- scrapinghub/hubstorage/serialization.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scrapinghub/hubstorage/serialization.py b/scrapinghub/hubstorage/serialization.py index bb45ffd0..70567805 100644 --- a/scrapinghub/hubstorage/serialization.py +++ b/scrapinghub/hubstorage/serialization.py @@ -1,9 +1,9 @@ -from datetime import datetime, timezone +from datetime import datetime from json import dumps, loads import six -EPOCH = datetime.fromtimestamp(0, timezone.utc) +EPOCH = datetime(1970, 1, 1, 0, 0) ADAYINSECONDS = 24 * 3600