Bug 2406022

Summary: Is there a plan to deprecate pytz in Fedora
Product: [Fedora] Fedora Reporter: Peter Robinson <pbrobinson>
Component: pytzAssignee: Gwyn Ciesla <gwync>
Status: ASSIGNED --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: gwync
Target Milestone: ---Keywords: Tracking
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Peter Robinson 2025-10-23 13:31:55 UTC
With the introduction of zoneinfo in python 3.9 pytz essentially became obsolete. As outlined in bug 2406005 there are issues with pytz, I thought it made sense to have a separate bug report to discuss forward looking plans about what we should do in Fedora to deal with pytz, there is a upstream PR [1] that tries to clarify the state and various issues with it.

With zoneinfo in py3.9 and < 3.9 in python now being EOL a lot of upstream projects seem to be actively migrating from pytz -> zoneino (eg django as of v5 only support zoneinfo) so maybe we should review the use of pytz and actively migrate away.

[1] https://github.com/stub42/pytz/pull/139

Reproducible: Always

Comment 1 Peter Robinson 2025-10-23 13:33:37 UTC
From https://bugzilla.redhat.com/show_bug.cgi?id=2332196#c8 Miro documented the dependent packages as of 20251022 as reported by dnf:

$ repoquery -q --repo=rawhide{,-source} --whatrequires python3-pytz
babel-0:2.17.0-6.fc44.src
cinnamon-0:6.4.12-3.fc44.x86_64
conda-build-0:24.11.2-2.fc42.src
copr-backend-0:2.10-1.fc44.noarch
copr-backend-0:2.10-1.fc44.src
copr-frontend-0:2.5-1.fc44.noarch
copr-frontend-0:2.5-1.fc44.src
cozy-0:1.3.0-10.fc44.noarch
cozy-0:1.3.0-10.fc44.src
gnome-feeds-0:2.2.0-6.fc44.noarch
khal-0:0.13.0-11.fc44.noarch
khal-0:0.13.0-11.fc44.src
limnoria-0:20250503-4.fc44.noarch
limnoria-0:20250503-4.fc44.src
oci-cli-0:3.66.1-2.fc44.noarch
oci-cli-0:3.66.1-2.fc44.src
pgadmin4-0:9.9-2.fc44.src
pgadmin4-0:9.9-2.fc44.x86_64
python-APScheduler-0:3.11.0-6.fc44.src
python-Mastodon-0:2.1.4-1.fc44.src
python-arrow-0:1.3.0-5.fc44.src
python-astroplan-0:0.9.1-9.fc44.src
python-bravado-core-0:6.1.0-6.fc44.src
python-celery-0:5.3.6-12.fc44.src
python-ciso8601-0:2.3.2-3.fc43.src
python-croniter-0:5.0.1-5.fc44.src
python-cryptography-0:45.0.4-4.fc44.src
python-cs-0:3.3.1-6.fc44.src
python-dateparser-0:1.2.2-4.fc44.src
python-datetimerange-0:1.2.0-13.fc44.src
python-dirty-equals-0:0.9.0-11.fc44.src
python-django-filter-0:25.1-4.fc44.src
python-feedgenerator-0:2.1.0-11.fc44.src
python-fiona-0:1.10.1-8.fc44.src
python-flask-babel-0:4.0.0-11.fc44.src
python-flask-restx-0:1.3.0-11.fc44.src
python-geopy-0:2.4.1-11.fc44.src
python-hypothesis-0:6.123.0-7.fc44.src
python-icalendar-0:6.3.1-5.fc44.src
python-inema-0:0.8.12-3.fc44.src
python-ipywidgets-0:8.1.7-5.fc44.src
python-irc-0:20.5.0-10.fc44.src
python-iso8601-0:2.1.0-7.fc44.src
python-kombu-1:5.3.7-10.fc44.src
python-marshmallow-0:3.25.0-6.fc44.src
python-matplotlib-0:3.10.6-1.fc44.src
python-mkdocs-git-revision-date-localized-plugin-0:1.3.0-7.fc44.src
python-mongomock-0:4.3.0-1.fc44.src
python-oci-0:2.160.1-2.fc44.src
python-orjson-0:3.11.3-2.fc44.src
python-oslo-utils-0:7.3.0-6.fc44.src
python-pandas-0:2.2.3-5.fc43~bootstrap.src
python-pelican-0:4.11.0-2.fc44.src
python-pendulum-0:3.1.0-4.fc44.src
python-prettyprinter-0:0.18.0-4.fc44.src
python-proto-plus-0:1.22.3-11.fc44.src
python-pydantic-0:2.12.3-1.fc44.src
python-pydantic-extra-types-0:2.10.6-2.fc44.src
python-pyvirtualize-0:0.10-26.20191018gitdc2d971.fc44.src
python-serpent-0:1.40-14.fc44.src
python-simple-salesforce-0:1.12.5-11.fc44.src
python-snaptime-0:0.2.4-23.fc44.src
python-sqlalchemy-utils-0:0.41.1-13.fc44.src
python-stravalib-0:1.7-6.fc44.src
python-tempora-0:5.8.0-1.fc44.src
python-typepy-0:1.3.2-6.fc44.src
python-vobject-0:0.9.8-6.fc44.src
python-xmp-toolkit-0:2.0.2-9.fc44.src
python-yfinance-0:0.2.54-5.fc44.src
python-zeep-0:4.3.2-1.fc44.src
python3-astroplan-0:0.9.1-9.fc44.noarch
python3-bravado-core-0:6.1.0-6.fc44.noarch
python3-croniter-0:5.0.1-5.fc44.noarch
python3-cs-0:3.3.1-6.fc44.noarch
python3-dateparser-0:1.2.2-4.fc44.noarch
python3-django-timezone-field-0:4.2.1-19.fc44.noarch
python3-feedgenerator-0:2.1.0-11.fc44.noarch
python3-flask-babel-0:4.0.0-11.fc44.noarch
python3-flask-restx-0:1.3.0-11.fc44.noarch
python3-geopy+timezone-0:2.4.1-11.fc44.noarch
python3-hypothesis+pytz-0:6.123.0-7.fc44.noarch
python3-icalendar-0:6.3.1-5.fc44.noarch
python3-inema-0:0.8.12-3.fc44.noarch
python3-influxdb-0:5.2.0-27.fc44.noarch
python3-irc-0:20.5.0-10.fc44.noarch
python3-kajiki-0:1.0.2-5.fc44.noarch
python3-mkdocs-git-revision-date-localized-plugin+all-0:1.3.0-7.fc44.noarch
python3-mkdocs-git-revision-date-localized-plugin+base-0:1.3.0-7.fc44.noarch
python3-mkdocs-git-revision-date-localized-plugin-0:1.3.0-7.fc44.noarch
python3-mongomock-0:4.3.0-1.fc44.noarch
python3-oci-0:2.160.1-2.fc44.noarch
python3-oslo-serialization-0:5.5.0-6.fc44.noarch
python3-oslo-utils-0:7.3.0-6.fc44.noarch
python3-pandas-0:2.2.3-5.fc43~bootstrap.x86_64
python3-pelican-0:4.11.0-2.fc44.noarch
python3-pyvirtualize-0:0.10-26.20191018gitdc2d971.fc44.noarch
python3-snaptime-0:0.2.4-23.fc44.noarch
python3-stravalib-0:1.7-6.fc44.noarch
python3-subliminal-0:2.1.0-22.fc44.noarch
python3-typepy+datetime-0:1.3.2-6.fc44.noarch
python3-vobject-0:0.9.8-6.fc44.noarch
python3-xmp-toolkit-0:2.0.2-9.fc44.noarch
python3-yfinance-0:0.2.54-5.fc44.noarch
python3-zeep-0:4.3.2-1.fc44.noarch
qtile-0:0.33.0-2.20250828git26bd747.fc44.src

Comment 2 Peter Robinson 2025-10-23 13:37:24 UTC
From https://bugzilla.redhat.com/show_bug.cgi?id=2332196#c10

The automatically generated runtime dependencies are on python3.14dist(pytz):

$ repoquery -q --repo=rawhide --whatrequires 'python3.14dist(pytz)'
khal-0:0.13.0-11.fc44.noarch
oci-cli-0:3.66.1-2.fc44.noarch
python3-astroplan-0:0.9.1-9.fc44.noarch
python3-bravado-core-0:6.1.0-6.fc44.noarch
python3-croniter-0:5.0.1-5.fc44.noarch
python3-cs-0:3.3.1-6.fc44.noarch
python3-dateparser-0:1.2.2-4.fc44.noarch
python3-django-timezone-field-0:4.2.1-19.fc44.noarch
python3-feedgenerator-0:2.1.0-11.fc44.noarch
python3-flask-babel-0:4.0.0-11.fc44.noarch
python3-flask-restx-0:1.3.0-11.fc44.noarch
python3-geopy+timezone-0:2.4.1-11.fc44.noarch
python3-hypothesis+pytz-0:6.123.0-7.fc44.noarch
python3-inema-0:0.8.12-3.fc44.noarch
python3-influxdb-0:5.2.0-27.fc44.noarch
python3-irc-0:20.5.0-10.fc44.noarch
python3-mkdocs-git-revision-date-localized-plugin+all-0:1.3.0-7.fc44.noarch
python3-mkdocs-git-revision-date-localized-plugin+base-0:1.3.0-7.fc44.noarch
python3-mkdocs-git-revision-date-localized-plugin-0:1.3.0-7.fc44.noarch
python3-mongomock-0:4.3.0-1.fc44.noarch
python3-oci-0:2.160.1-2.fc44.noarch
python3-oslo-utils-0:7.3.0-6.fc44.noarch
python3-pandas-0:2.2.3-5.fc43~bootstrap.x86_64
python3-snaptime-0:0.2.4-23.fc44.noarch
python3-stravalib-0:1.7-6.fc44.noarch
python3-subliminal-0:2.1.0-22.fc44.noarch
python3-typepy+datetime-0:1.3.2-6.fc44.noarch
python3-vobject-0:0.9.8-6.fc44.noarch
python3-xmp-toolkit-0:2.0.2-9.fc44.noarch
python3-yfinance-0:0.2.54-5.fc44.noarch
python3-zeep-0:4.3.2-1.fc44.noarch


And all the runtime dependencies are queried only when using the package name:

$ repoquery -q --repo=rawhide --whatrequires python3-pytz
cinnamon-0:6.4.12-3.fc44.x86_64
copr-backend-0:2.10-1.fc44.noarch
copr-frontend-0:2.5-1.fc44.noarch
cozy-0:1.3.0-10.fc44.noarch
gnome-feeds-0:2.2.0-6.fc44.noarch
khal-0:0.13.0-11.fc44.noarch
limnoria-0:20250503-4.fc44.noarch
oci-cli-0:3.66.1-2.fc44.noarch
pgadmin4-0:9.9-2.fc44.x86_64
python3-astroplan-0:0.9.1-9.fc44.noarch
python3-bravado-core-0:6.1.0-6.fc44.noarch
python3-croniter-0:5.0.1-5.fc44.noarch
python3-cs-0:3.3.1-6.fc44.noarch
python3-dateparser-0:1.2.2-4.fc44.noarch
python3-django-timezone-field-0:4.2.1-19.fc44.noarch
python3-feedgenerator-0:2.1.0-11.fc44.noarch
python3-flask-babel-0:4.0.0-11.fc44.noarch
python3-flask-restx-0:1.3.0-11.fc44.noarch
python3-geopy+timezone-0:2.4.1-11.fc44.noarch
python3-hypothesis+pytz-0:6.123.0-7.fc44.noarch
python3-icalendar-0:6.3.1-5.fc44.noarch
python3-inema-0:0.8.12-3.fc44.noarch
python3-influxdb-0:5.2.0-27.fc44.noarch
python3-irc-0:20.5.0-10.fc44.noarch
python3-kajiki-0:1.0.2-5.fc44.noarch
python3-mkdocs-git-revision-date-localized-plugin+all-0:1.3.0-7.fc44.noarch
python3-mkdocs-git-revision-date-localized-plugin+base-0:1.3.0-7.fc44.noarch
python3-mkdocs-git-revision-date-localized-plugin-0:1.3.0-7.fc44.noarch
python3-mongomock-0:4.3.0-1.fc44.noarch
python3-oci-0:2.160.1-2.fc44.noarch
python3-oslo-serialization-0:5.5.0-6.fc44.noarch
python3-oslo-utils-0:7.3.0-6.fc44.noarch
python3-pandas-0:2.2.3-5.fc43~bootstrap.x86_64
python3-pelican-0:4.11.0-2.fc44.noarch
python3-snaptime-0:0.2.4-23.fc44.noarch
python3-stravalib-0:1.7-6.fc44.noarch
python3-subliminal-0:2.1.0-22.fc44.noarch
python3-typepy+datetime-0:1.3.2-6.fc44.noarch
python3-vobject-0:0.9.8-6.fc44.noarch
python3-xmp-toolkit-0:2.0.2-9.fc44.noarch
python3-yfinance-0:0.2.54-5.fc44.noarch
python3-zeep-0:4.3.2-1.fc44.noarch



40 components build a package that depends on python3-pytz on runtime:

$ repoquery -q --repo=rawhide --whatrequires python3-pytz --source | pkgname | sort -u | wc -l
40

61 components BuildRequire it:

$ repoquery -q --repo=rawhide{,-source} --whatrequires python3-pytz | grep src$ | pkgname | sort -u | wc -l
61

Together, that's 68 unique components:

$ (repoquery -q --repo=rawhide{,-source} --whatrequires python3-pytz | grep src$ && repoquery -q --repo=rawhide --whatrequires python3-pytz --source) | pkgname | sort -u | wc -l 
68

Comment 3 Peter Robinson 2025-10-23 13:51:11 UTC
But there's a lot of nuance, I spent some time and went through the actual packages from comment #1 a little more. The details boil down to 3 main cases:
1) The dependency is bogus and it generally obsolete deps, either in rpm itself or upstream
2) There's minor use, mostly in tests or a single call, I need to investigate these more but in a quick look it could be legacy tests not updated when they moved the project to zoneinfo
3) Larger users of pytz

This is what I found, with referenced PRs where I made them to update Fedora/upstream packages:

Not used:
python-celery-0:5.3.6-12.fc44.src - https://src.fedoraproject.org/rpms/python-celery/pull-request/8
python-subliminal - dropped upstream when < py3.9 dropped - needs package update to later rev
python-kombu-1:5.3.7-10.fc44.src - dropped upstream https://src.fedoraproject.org/rpms/python-kombu/pull-request/11
python-marshmallow-0:3.25.0-6.fc44.src -  https://src.fedoraproject.org/rpms/python-marshmallow/pull-request/17
python-oslo-utils-0:7.3.0-6.fc44.src - not used, old dep: https://src.fedoraproject.org/rpms/python-oslo-utils/pull-request/7
python-pelican-0:4.11.0-2.fc44.src https://src.fedoraproject.org/rpms/python-pelican/pull-request/4
python3-oslo-serialization-0:5.5.0-6.fc44.noarch - dropped upstream https://src.fedoraproject.org/rpms/python-oslo-serialization/pull-request/3
python3-kajiki-0:1.0.2-5.fc44.noarch https://src.fedoraproject.org/rpms/python-kajiki/pull-request/2
python3-django-timezone-field-0:4.2.1-19.fc44.noarch - package well out of date, 7.1 latest, >= 5.0 supports zoneinfo, > 6 drops pytz >6.1 support django5
python3-pyvirtualize-0:0.10-26.20191018gitdc2d971.fc44.noarch - dead.package
python-tempora-0:5.8.0-1.fc44.src https://src.fedoraproject.org/rpms/python-tempora/pull-request/6

Optional, mostly for py < 3.9 support, here we get bogus deps because in the Fedora code paths they'll never be executed: 
python-cryptography-0:45.0.4-4.fc44.src - PR: https://src.fedoraproject.org/rpms/python-cryptography/pull-request/44
python-django-filter-0:25.1-4.fc44.src CI for tests pre django 5.0 - PR: https://src.fedoraproject.org/rpms/python-django-filter/pull-request/4
python-hypothesis-0:6.123.0-7.fc44.src - optional choice of pytz and zoneinfo but django >= 5 only supports the later
python-icalendar-0:6.3.1-5.fc44.src - will use zoneinfo or pytz
python-matplotlib-0:3.10.6-1.fc44.src - optional for >= 3.9
python-orjson-0:3.11.3-2.fc44.src - optional, but will user stdlib zoneinfo
python-pendulum-0:3.1.0-4.fc44.src - option tests, uses zoneinfo

AFAICT not actually used in project, just in deps:
conda-build-0:24.11.2-2.fc42.src https://src.fedoraproject.org/rpms/conda-build/pull-request/4
copr-backend-0:2.10-1.fc44.src https://github.com/fedora-copr/copr/pull/3972
python-dirty-equals-0:0.9.0-11.fc44.src
python-irc-0:20.5.0-10.fc44.src - old deps https://github.com/jaraco/irc/pull/241
python-mkdocs-git-revision-date-localized-plugin-0:1.3.0-7.fc44.src - not used https://src.fedoraproject.org/rpms/python-mkdocs-git-revision-date-localized-plugin/pull-request/2
python-snaptime-0:0.2.4-23.fc44.src - unmaintained upstream (8 years), no deps - retires? 

Minor use, a lot are single call or a single test, it looks like  in a bunch of cases they're fallback uses and are pulling in pytz as a bogus dep
python-prettyprinter-0:0.18.0-4.fc44.src - optional for tests
python-proto-plus-0:1.22.3-11.fc44.src - only tests
babel-0:2.17.0-6.fc44.src - only tests
cinnamon-0:6.4.12-3.fc44.x86_64
copr-frontend-0:2.5-1.fc44.src
cozy-0:1.3.0-10.fc44.noarch
gnome-feeds-0:2.2.0-6.fc44.noarch
oci-cli-0:3.66.1-2.fc44.noarch
python-Mastodon-0:2.1.4-1.fc44.src - one line in test
python-arrow-0:1.3.0-5.fc44.src
python-astroplan-0:0.9.1-9.fc44.src
python-bravado-core-0:6.1.0-6.fc44.src - one line, one test
python-dateparser-0:1.2.2-4.fc44.src
python-cs-0:3.3.1-6.fc44.src - one line setting UTC
python-datetimerange-0:1.2.0-13.fc44.src - one test
python-fiona-0:1.10.1-8.fc44.src - one test
python-flask-babel-0:4.0.0-11.fc44.src
python-flask-restx-0:1.3.0-11.fc44.src
python-geopy-0:2.4.1-11.fc44.src - just timezone module, not large
python-inema-0:0.8.12-3.fc44.src - one line in a util
python-ipywidgets-0:8.1.7-5.fc44.src - just tests
python-iso8601-0:2.1.0-7.fc44.src - optional, one test
python-mongomock-0:4.3.0-1.fc44.src - one use
python-oci-0:2.160.1-2.fc44.src - 3 uses, plus an example
python-zeep-0:4.3.2-1.fc44.src - 3 uses, likely due to 3.8 support
python-yfinance-0:0.2.54-5.fc44.src - 1 use, reporting unknown TZ
python-vobject-0:0.9.8-6.fc44.src - upstream supports 3.8 1 year after EOL but are prepared to move, not a lot of use
python-xmp-toolkit-0:2.0.2-9.fc44.src - no users, not updated since initial version, only used in tests/example
python-sqlalchemy-utils-0:0.41.1-13.fc44.src - supports zoneinfo/dateutils/pytz backends
python-stravalib-0:1.7-6.fc44.src - a few uses 
python-typepy-0:1.3.2-6.fc44.src - rpm saysNot used:
python-celery-0:5.3.6-12.fc44.src - https://src.fedoraproject.org/rpms/python-celery/pull-request/8
python-subliminal - dropped upstream when < py3.9 dropped - needs package update to later rev
python-kombu-1:5.3.7-10.fc44.src - dropped upstream https://src.fedoraproject.org/rpms/python-kombu/pull-request/11
python-marshmallow-0:3.25.0-6.fc44.src -  https://src.fedoraproject.org/rpms/python-marshmallow/pull-request/17
python-oslo-utils-0:7.3.0-6.fc44.src - not used, old dep: https://src.fedoraproject.org/rpms/python-oslo-utils/pull-request/7
python-pelican-0:4.11.0-2.fc44.src https://src.fedoraproject.org/rpms/python-pelican/pull-request/4
python3-oslo-serialization-0:5.5.0-6.fc44.noarch - dropped upstream https://src.fedoraproject.org/rpms/python-oslo-serialization/pull-request/3
python3-kajiki-0:1.0.2-5.fc44.noarch https://src.fedoraproject.org/rpms/python-kajiki/pull-request/2
python3-django-timezone-field-0:4.2.1-19.fc44.noarch - package well out of date, 7.1 latest, >= 5.0 supports zoneinfo, > 6 drops pytz >6.1 support django5
python3-pyvirtualize-0:0.10-26.20191018gitdc2d971.fc44.noarch - dead.package
python-tempora-0:5.8.0-1.fc44.src https://src.fedoraproject.org/rpms/python-tempora/pull-request/6

Optional, mostly for py < 3.9 support, here we get bogus deps because in the Fedora code paths they'll never be executed: 
python-cryptography-0:45.0.4-4.fc44.src - PR: https://src.fedoraproject.org/rpms/python-cryptography/pull-request/44
python-django-filter-0:25.1-4.fc44.src CI for tests pre django 5.0 - PR: https://src.fedoraproject.org/rpms/python-django-filter/pull-request/4
python-hypothesis-0:6.123.0-7.fc44.src - optional choice of pytz and zoneinfo but django >= 5 only supports the later
python-icalendar-0:6.3.1-5.fc44.src - will use zoneinfo or pytz
python-matplotlib-0:3.10.6-1.fc44.src - optional for >= 3.9
python-orjson-0:3.11.3-2.fc44.src - optional, but will user stdlib zoneinfo
python-pendulum-0:3.1.0-4.fc44.src - option tests, uses zoneinfo

AFAICT not actually used in project, just in deps:
conda-build-0:24.11.2-2.fc42.src https://src.fedoraproject.org/rpms/conda-build/pull-request/4
copr-backend-0:2.10-1.fc44.src https://github.com/fedora-copr/copr/pull/3972
python-dirty-equals-0:0.9.0-11.fc44.src
python-irc-0:20.5.0-10.fc44.src - old deps https://github.com/jaraco/irc/pull/241
python-mkdocs-git-revision-date-localized-plugin-0:1.3.0-7.fc44.src - not used https://src.fedoraproject.org/rpms/python-mkdocs-git-revision-date-localized-plugin/pull-request/2
python-snaptime-0:0.2.4-23.fc44.src - unmaintained upstream (8 years), no deps - retires? 

Minor use, a lot are single call or a single test, it looks like  in a bunch of cases they're fallback uses and are pulling in pytz as a bogus dep
python-prettyprinter-0:0.18.0-4.fc44.src - optional for tests
python-proto-plus-0:1.22.3-11.fc44.src - only tests
babel-0:2.17.0-6.fc44.src - only tests
cinnamon-0:6.4.12-3.fc44.x86_64
copr-frontend-0:2.5-1.fc44.src
cozy-0:1.3.0-10.fc44.noarch
gnome-feeds-0:2.2.0-6.fc44.noarch
oci-cli-0:3.66.1-2.fc44.noarch
python-Mastodon-0:2.1.4-1.fc44.src - one line in test
python-arrow-0:1.3.0-5.fc44.src
python-astroplan-0:0.9.1-9.fc44.src
python-bravado-core-0:6.1.0-6.fc44.src - one line, one test
python-dateparser-0:1.2.2-4.fc44.src
python-cs-0:3.3.1-6.fc44.src - one line setting UTC
python-datetimerange-0:1.2.0-13.fc44.src - one test
python-fiona-0:1.10.1-8.fc44.src - one test
python-flask-babel-0:4.0.0-11.fc44.src
python-flask-restx-0:1.3.0-11.fc44.src
python-geopy-0:2.4.1-11.fc44.src - just timezone module, not large
python-inema-0:0.8.12-3.fc44.src - one line in a util
python-ipywidgets-0:8.1.7-5.fc44.src - just tests
python-iso8601-0:2.1.0-7.fc44.src - optional, one test
python-mongomock-0:4.3.0-1.fc44.src - one use
python-oci-0:2.160.1-2.fc44.src - 3 uses, plus an example
python-zeep-0:4.3.2-1.fc44.src - 3 uses, likely due to 3.8 support
python-yfinance-0:0.2.54-5.fc44.src - 1 use, reporting unknown TZ
python-vobject-0:0.9.8-6.fc44.src - upstream supports 3.8 1 year after EOL but are prepared to move, not a lot of use
python-xmp-toolkit-0:2.0.2-9.fc44.src - no users, not updated since initial version, only used in tests/example
python-sqlalchemy-utils-0:0.41.1-13.fc44.src - supports zoneinfo/dateutils/pytz backends
python-stravalib-0:1.7-6.fc44.src - a few uses 
python-typepy-0:1.3.2-6.fc44.src - rpm says test req, maybe one use
python-serpent-0:1.40-14.fc44.src - one test, supports old py vers
python-simple-salesforce-0:1.12.5-11.fc44.src - only test (in setup.py), no test dep, examples in docs
python-pydantic-0:2.12.3-1.fc44.src - docs/test
python-pydantic-extra-types-0:2.10.6-2.fc44.src - test
pgadmin4-0:9.9-2.fc44.src - single use in 4 tests
python-feedgenerator-0:2.1.0-11.fc44.src - has a fallback when pytz isn't there, should be moved to zoneinfo, not large

Quite a large user:
khal-0:0.13.0-11.fc44.noarch
limnoria-0:20250503-4.fc44.noarch
python-APScheduler-0:3.11.0-6.fc44.src
qtile-0:0.33.0-2.20250828git26bd747.fc44.src
python-ciso8601-0:2.3.2-3.fc43.src
python-croniter-0:5.0.1-5.fc44.src - needs bump to 6.x, in 6.x it's dropped py2 support so can likely be removed
python-pandas-0:2.2.3-5.fc43~bootstrap.src test req, maybe one use
python-serpent-0:1.40-14.fc44.src - one test, supports old py vers
python-simple-salesforce-0:1.12.5-11.fc44.src - only test (in setup.py), no test dep, examples in docs
python-pydantic-0:2.12.3-1.fc44.src - docs/test
python-pydantic-extra-types-0:2.10.6-2.fc44.src - test
pgadmin4-0:9.9-2.fc44.src - single use in 4 tests
python-feedgenerator-0:2.1.0-11.fc44.src - has a fallback when pytz isn't there, should be moved to zoneinfo, not large

Quite a large user:
khal-0:0.13.0-11.fc44.noarch
limnoria-0:20250503-4.fc44.noarch
python-APScheduler-0:3.11.0-6.fc44.src
qtile-0:0.33.0-2.20250828git26bd747.fc44.src
python-ciso8601-0:2.3.2-3.fc43.src
python-croniter-0:5.0.1-5.fc44.src - needs bump to 6.x, in 6.x it's dropped py2 support so can likely be removed
python-pandas-0:2.2.3-5.fc43~bootstrap.src

Anyway, not sure I'll have much more time to dig into this more, just wanted to document the issues I found and the invvestigation I did as an aside of the real problem I needed to solve - a fix for the FTB for python-pandas

Comment 4 Gwyn Ciesla 2025-10-24 20:35:52 UTC
Thank you for the deep dive. We absolutely need to deprecate pytz. I don't currently have a plan, maybe this would be a good candidate for changes, maybe deprecation for f44 and removal in perhaps f46 or f47?

Comment 5 Aoife Moloney 2026-08-17 14:00:53 UTC
This bug appears to have been reported against 'rawhide' during the Fedora Linux 45 development cycle.
Changing version to 45.