NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #628 most downloaded on PyPI
Typing stubs for pytz
Last release 9 days ago
26 Sep 2026
Ships fairly regularly
a new release about every 2 months
Most releases are documented
notes for 45 of 52 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
52 releases · first in 2021
One column per quarter.
* Bump to 2026.4
* Bump to 2026.3.post1
Upgrade black to 26.5.0
Upgrade black to 26.5.0 (#15801)
[stubsabot] Bump pytz to 2026.2
[stubsabot] Bump pytz to 2026.2 (#15698)
Release: https://pypi.org/pypi/pytz/2026.2 Homepage: http://pythonhosted.org/pytz Repository: https://github.com/stub42/pytz Typeshed stubs: https://github.com/python/typeshed/tree/main/stubs/pytz
If stubtest fails for this PR:
Note that you will need to close and re-open the PR in order to trigger CI
Co-authored-by: stubsabot <>
Use dashes instead of underscores for METADATA.toml field names
Use dashes instead of underscores for METADATA.toml field names (#15614)
Update mypy to 1.20.0
Update mypy to 1.20.0 (#15588)
[stubsabot] Bump pytz to 2026.1.post1
[stubsabot] Bump pytz to 2026.1.post1 (#15483)
[pytz] Annotate parameter fill_iter
[pytz] Annotate parameter fill_iter (#14989)
Mark stub-only private symbols as @type_check_only in third-party stubs
Mark stub-only private symbols as @type_check_only in third-party stubs (#14545)
Replace Incomplete | None = None in third party stubs
Replace Incomplete | None = None in third party stubs (#14063)
[stubsabot] Bump pytz to 2025.2
Make BaseTzInfo inherited methods pos-only
Make BaseTzInfo inherited methods pos-only (#13650)
These methods are already positional-only in datetime.tzinfo. Leaving
them pos-or-kw fail stubtest when running with Python 3.13.
Bump pytz to 2025.1
Bump pytz to 2025.1 (#13449)
Update to mypy 1.14
Update to mypy 1.14 (#13272)
Fix: pytz: is_dst parameter
Fix: pytz: is_dst parameter (#12723)
[stubsabot] Bump pytz to 2024.2
[stubsabot] Bump pytz to 2024.2 (#12639)
Remove remaining bare Incompletes
Remove remaining bare Incompletes (#11768)
Enable Y065
[stubsabot] Bump pytz to 2024.1
[stubsabot] Bump pytz to 2024.1 (#11355)
[stubsabot] Bump pytz to 2023.4
[stubsabot] Bump pytz to 2023.4 (#11341)
[pytz] Add BaseTzInfo private attributes
[pytz] Add BaseTzInfo private attributes (#10733)
[stubsabot] Bump pytz to 2023.3.post1
[stubsabot] Bump pytz to 2023.3.post1 (#10673)
Release: https://pypi.org/pypi/pytz/2023.3.post1 Homepage: http://pythonhosted.org/pytz Repository: https://github.com/stub42/pytz
Fill in all missing upstream_repository fields
Fill in all missing upstream_repository fields (#10571)
Co-authored-by: Alex Waygood Alex.Waygood@Gmail.com
[stubsabot] Bump pytz to 2023.3
[stubsabot] Bump pytz to 2023.3 (#9984)
Add default values for third-party stubs beginning with 'P'
Add default values for third-party stubs beginning with 'P' (#9957)
[stubsabot] Bump pytz to 2023.2
[stubsabot] Bump pytz to 2023.2 (#9942)
Release: https://pypi.org/pypi/pytz/2023.2 Homepage: http://pythonhosted.org/pytz
Update Unused parameters in stubs/
Update Unused parameters in stubs/ (#9704)
Update _Unused TypeAlias
Update object | None params
Replace unused object parameters with Unused alias
Stubtest settings: change ignore_missing_stub default to false
Stubtest settings: change ignore_missing_stub default to false (#9779)
If you're reading about this commit from an autogenerated changelog entry, this should have no user-visible impact on how the stubs are interpreted by a type checker; it's just an internal change to how typeshed's tests work.
[stubsabot] Bump pytz to 2022.7.1
[stubsabot] Bump pytz to 2022.7.1 (#9540)
Release: https://pypi.org/pypi/pytz/2022.7.1 Homepage: http://pythonhosted.org/pytz
[stubsabot] Bump pytz to 2022.7
[stubsabot] Bump pytz to 2022.7 (#9383)
Remove pytz from pyrights exclude
Remove pytz from pyrights exclude (#9041)
[stubsabot] Bump pytz to 2022.6
[stubsabot] Bump pytz to 2022.6 (#9049)
Release: https://pypi.org/pypi/pytz/2022.6 Homepage: http://pythonhosted.org/pytz
If stubtest fails for this PR:
Note that you will need to close and re-open the PR in order to trigger CI
Co-authored-by: stubsabot <>
[stubsabot] Bump pytz to 2022.5
[stubsabot] Bump pytz to 2022.5 (#8926)
Release: https://pypi.org/pypi/pytz/2022.5 Homepage: http://pythonhosted.org/pytz
If stubtest fails for this PR:
Note that you will need to close and re-open the PR in order to trigger CI
Co-authored-by: stubsabot <>
[stubsabot] Bump pytz to 2022.4
[stubsabot] Bump pytz to 2022.4 (#8848)
Release: https://pypi.org/pypi/pytz/2022.4 Homepage: http://pythonhosted.org/pytz
If stubtest fails for this PR:
Note that you will need to close and re-open the PR in order to trigger CI
Co-authored-by: stubsabot <>
[stubsabot] Bump pytz to 2022.2.1
[stubsabot] Bump pytz to 2022.2.1 (#8564)
Co-authored-by: stubsabot <>
Add missing third party modules
Add missing third party modules (#8321)
Co-authored-by: Alex Waygood Alex.Waygood@Gmail.com Co-authored-by: hauntsaninja <> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Check missing definitions for several packages
Check missing definitions for several packages (#8167)
Co-authored-by: hauntsaninja <>
[stubsabot] Bump pytz to 2022.1
[stubsabot] Bump pytz to 2022.1 (#8121)
Co-authored-by: hauntsaninja <>
Import generics from standard modules in all third-party stubs
Import generics from standard modules in all third-party stubs (#7791)
Drop Python 2 support in third-party stubs
Drop Python 2 support in third-party stubs (#7703)
pytz: utcoffset only returns None if dt is None
pytz: utcoffset only returns None if dt is None (#7510)
Fix argument types of pytz.tzinfo.StaticTzInfo
Fix argument types of pytz.tzinfo.StaticTzInfo (#7184)
The argument is_dst of the functions StaticTzInfo.localize and StaticTzInfo.normalize are ignored, and only present for compatibility with DstTzInfo. The functions in DstTzInfo also accepts None, so for compatibility, StaticTzInfo should accept them as well.
[^1] https://github.com/stub42/pytz/blob/2ed682a7c4079042f50975970fc4f503c8450058/src/pytz/tzinfo.py#L112
Nothing published for this version
Add abstract methods to BaseTzInfo
Add abstract methods to BaseTzInfo (#6579)
While these abstract methods don't exist at runtime, all sub-classes of BaseTzInfo implement them. It can be useful to annotate variables with BaseTzInfo and being able to call these methods on it.
pytz: rework stubs
pytz: rework stubs (#6551)
Reduce use of deprecated typing aliases
Reduce use of deprecated typing aliases (#6358)
Add star to all non-0.1 versions
Add star to all non-0.1 versions (#6146)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →