NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #478 most downloaded on PyPI
Typing stubs for python-dateutil
Last release 1 months ago
07 Aug 2026
Ships fairly regularly
a new release about every 4 weeks
Nearly every release is documented
notes for 58 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
66 releases · first in 2021
One column per quarter.
Run Pyrefly on typeshed stubs in CI
Match pyright's policy for non-actionable override and deprecation diagnostics, add narrowly scoped ignores beside existing checker exceptions, and ex…
Run ty on typeshed stubs in CI (#16013)
Add a pinned ty check for the standard-library and third-party stubs across Python 3.10-3.14 and the supported target platforms. The runner honors stdlib/VERSIONS, resolves checked-in stub packages and their external dependencies, and avoids duplicate published stub packages that shadow local sources.
Match pyright's policy for non-actionable override and deprecation diagnostics, add narrowly scoped ignores beside existing checker exceptions, and exclude only the obsolete requests and legacy distutils stubs. Check geopandas, seaborn, and shapely on every target version, with two existing pandas-stubs type-bound exceptions mirrored for ty. Also fix the remaining Windows-only dateutil builtin-name collision discovered by the new check.
Closes #15999.
Upgrade black to 26.5.0
Upgrade black to 26.5.0 (#15801)
Import some items from typing instead of typing_extensions
Import some items from typing instead of typing_extensions (#15711)
Part of #13782
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)
[python-dateutil] Add missing gettz cache control methods
[python-dateutil] Add missing gettz cache control methods (#15537)
[python-dateutil] Complete stubs
[python-dateutil] Complete stubs (#15476)
[python-dateutil] Make dateutil.parser.parse(fuzzy_with_tokens=True) return a tuple
[python-dateutil] Make dateutil.parser.parse(fuzzy_with_tokens=True) return a tuple (#15474)
Co-authored-by: ellieayla 1447600+me@users.noreply.github.com Co-authored-by: Semyon Moroz donbarbos@proton.me Co-authored-by: Brian Schubert brianm.schubert@gmail.com
[python-dateutil] Add missing annotation to 'tag' in rebuild.py
[python-dateutil] Add missing annotation to 'tag' in rebuild.py (#15196)
[python-dateutil] Add missing parameter annotations
[python-dateutil] Add missing parameter annotations (#14996)
[python-dateutil] add some missing parameter types
[python-dateutil] add some missing parameter types (#14992)
python-dateutil: add overload to rrulestr
python-dateutil: add overload to rrulestr (#14815)
Add __slots__ to third-party packages using stubdefaulter
Add slots to third-party packages using stubdefaulter (#14619)
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)
[python-dateutil] Add missing stubs
[python-dateutil] Add missing stubs (#14326)
Replace Incomplete | None = None in third party stubs
Replace Incomplete | None = None in third party stubs (#14063)
Use union instead of overloads in dateutil
Use union instead of overloads in dateutil (#13184)
dateutil: Enable failing test
dateutil: Enable failing test (#11612)
[python-dateutil] Add dateutil.parser.UnknownTimezoneWarning.
[python-dateutil] Add dateutil.parser.UnknownTimezoneWarning. (#12620)
Fix types for python-dateutil's relativedelta
Fix types for python-dateutil's relativedelta (#12561)
python-dateutil: respect inheritance on relativedelta.__rsub__
[stubsabot] Bump python-dateutil to 2.9.*
[stubsabot] Bump python-dateutil to 2.9.* (#11518)
Co-authored-by: stubsabot <>
Use PEP 570 syntax in third party stubs
Use PEP 570 syntax in third party stubs (#11554)
Update typing_extensions imports in third-party stubs
Update typing_extensions imports in third-party stubs (#11245)
Add an upstream_repository field to METADATA.toml
Add an upstream_repository field to METADATA.toml (#10487)
Closes: #10478
Add partial_stub metadata field
Add partial_stub metadata field (#10157)
Various improvements to dateutil.rrule stubs
Various improvements to dateutil.rrule stubs (#10009)
Add default values for third-party stubs beginning with 'P'
Add default values for third-party stubs beginning with 'P' (#9957)
Add rrule.__iter__ return type
Add rrule.iter return type (#9828)
Re-export dateutil._common.weekday from dateutil.relativedelta
Re-export dateutil._common.weekday from dateutil.relativedelta (#9819)
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.
Use typing_extensions.Self instead of _typeshed.Self
Use typing_extensions.Self instead of _typeshed.Self (#9702)
Replace Any with Incomplete in many places
Replace Any with Incomplete in many places (#9558)
python-dateutil: Add zoneinfo submodule
python-dateutil: Add zoneinfo submodule (#9381)
Add exact kwargs types to dateutil.parser.parse
Add exact **kwargs types to dateutil.parser.parse (#9212)
Closes #9122
Fix and allow classes with missing metaclasses
Fix and allow classes with missing metaclasses (#9136)
dateutil: Add comment explaining the use of ABCMeta
dateutil: Add comment explaining the use of ABCMeta (#8911)
datetime.tzinfo is abstract
datetime.tzinfo is abstract (#8908)
Third-party stubs: enforce CamelCase for type alias names
Third-party stubs: enforce CamelCase for type alias names (#8256)
Co-authored-by: Jelle Zijlstra jelle.zijlstra@gmail.com
Improve several __hash__ methods
Improve several __hash__ methods (#8128)
dateutil: Add dateutil.rrule.weekdays
dateutil: Add dateutil.rrule.weekdays (#7968)
Closes: #7946
Add return type for dateutil.rrule._rrulestr.__call__.
Add return type for dateutil.rrule._rrulestr.__call__. (#7868)
Import generics from standard modules in all third-party stubs
Import generics from standard modules in all third-party stubs (#7791)
dateutil.tz.tz: Replace IO with protocols
dateutil.tz.tz: Replace IO with protocols (#7717)
Drop Python 2 support from python-dateutil
Drop Python 2 support from python-dateutil (#7715)
Use TypeAlias for type aliases where possible, part II
Use TypeAlias for type aliases where possible, part II (#7667)
Use TypeAlias where possible for type aliases
Use TypeAlias where possible for type aliases (#7630)
Use PEP 604 syntax wherever possible
Use PEP 604 syntax wherever possible (#7493)
Upgrade black version
Upgrade black version (#7089)
Remove nearly all __str__ and __repr__ methods from typeshed
Remove nearly all __str__ and __repr__ methods from typeshed (#6968)
Use _typeshed.Self in Python 2, too
Use _typeshed.Self in Python 2, too (#6932)
Always use _typeshed.Self, where applicable
Always use _typeshed.Self, where applicable (#6880)
Always use _typeshed.Self, where applicable
Revert changes to google-cloud-ndb (ambiguous)
Remove empty line added by script
Revert changes to stubs/python-dateutil/dateutil/relativedelta.pyi
Manually add a few more that the script missed
Improve filelock annotation
Source code here: https://github.com/tox-dev/py-filelock/blob/79ec7b2826e33b982fe83b057f359448b9d966ba/src/filelock/_api.py#L207
opentracing/scope annotationSource code here: https://github.com/opentracing/opentracing-python/blob/3e1d357a348269ef54d67f761302fab93dbfc0f7/opentracing/scope.py#L71
redis/client stubSource code here: https://github.com/redis/redis-py/blob/15f315a496c3267c8cbcc6d6d9c6005ea4d4a4d5/redis/client.py#L1217
redis/lock annotationSource code here: https://github.com/redis/redis-py/blob/15f315a496c3267c8cbcc6d6d9c6005ea4d4a4d5/redis/lock.py#L155
requests/models annotationSource code here: https://github.com/psf/requests/blob/d718e753834b84018014a23d663369ac27d1ab9c/requests/models.py#L653
Nothing published for this version
python-datetutil: WEEKDAYS and MONTHS can have arbitrary length tuples
python-datetutil: WEEKDAYS and MONTHS can have arbitrary length tuples (#6689)
Add tz{utc,offset}.fromutc()
Add tz{utc,offset}.fromutc() (#6360)
Use lowercase tuple where possible
Use lowercase tuple where possible (#6170)
Add star to all non-0.1 versions
dateutil.parser: Complete the isoparser module
dateutil.parser: Complete the isoparser module (#5983)
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →