summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--oslo_utils/timeutils.py6
-rw-r--r--releasenotes/notes/implement-zoneinfo-to-remove-pytz-fba6f70db09ecdb8.yaml6
-rw-r--r--requirements.txt2
3 files changed, 10 insertions, 4 deletions
diff --git a/oslo_utils/timeutils.py b/oslo_utils/timeutils.py
index 390be53..ba45fda 100644
--- a/oslo_utils/timeutils.py
+++ b/oslo_utils/timeutils.py
@@ -22,9 +22,9 @@ import datetime
import functools
import logging
import time
+import zoneinfo
import iso8601
-import pytz
from oslo_utils import reflection
@@ -225,8 +225,8 @@ def unmarshall_time(tyme):
if tzname:
# Need to handle either iso8601 or python UTC format
tzname = 'UTC' if tzname == 'UTC+00:00' else tzname
- tzinfo = pytz.timezone(tzname)
- dt = tzinfo.localize(dt)
+ tzinfo = zoneinfo.ZoneInfo(tzname)
+ dt = dt.replace(tzinfo=tzinfo)
return dt
diff --git a/releasenotes/notes/implement-zoneinfo-to-remove-pytz-fba6f70db09ecdb8.yaml b/releasenotes/notes/implement-zoneinfo-to-remove-pytz-fba6f70db09ecdb8.yaml
new file mode 100644
index 0000000..24c7d7f
--- /dev/null
+++ b/releasenotes/notes/implement-zoneinfo-to-remove-pytz-fba6f70db09ecdb8.yaml
@@ -0,0 +1,6 @@
+---
+other:
+ - |
+ Implement zoneinfo to allow us to remove pytz's dependency. zoneinfo
+ was introduced by python 3.9, and the series 2023.2 (bobcat) set py39
+ as the minimal supported runtime, so we are able to remove pytz.
diff --git a/requirements.txt b/requirements.txt
index 37374ac..9085e00 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -5,9 +5,9 @@
iso8601>=0.1.11 # MIT
oslo.i18n>=3.15.3 # Apache-2.0
-pytz>=2013.6 # MIT
netaddr>=0.7.18 # BSD
netifaces>=0.10.4 # MIT
debtcollector>=1.2.0 # Apache-2.0
pyparsing>=2.1.0 # MIT
packaging>=20.4 # BSD
+tzdata>=2022.4 # MIT