-
-
Notifications
You must be signed in to change notification settings - Fork 2k
Open
Labels
status: deferredIssue or PR deferred until some precondition is fixedIssue or PR deferred until some precondition is fixedstubs: removalPending removal of third-party distributionsPending removal of third-party distributions
Description
Python 3.9 reached its end-of-life phase on 2025-10-31 (PEP 596).
How to remove support
February 2026
- Update the version in
README.md. - Update various fields in
pyproject.toml. (Update project.requires-python to >=3.10 #15402) - Remove 3.9 from CI and test scripts.
- Update stubtest allow lists. Also check whether items can be moved to the common allow lists. (Remove Python 3.9 stubtest allowlists #15403)
- Remove
requires_python >= 3.10andpython_version >= 3.10fromMETADATA.toml
May 2026
- Remove 3.9 exclusive branches from stubs.
- Re-enable ruff codes
UP035,UP036inpyproject.toml. - Remove
RUF100code from# noqadirectives. - Revisit Enable PYI059 #15399.
- Re-enable ruff codes
- Remove obsolete stdlib modules (see
VERSIONS)._bootlocaledistutils.command.bdist_wininstformatterparsersymbol
- Replace
typing_extensionsimports.ParamSpecTypeAliasTypeGuard
- Remove
builtins.ellipsisafter type checkers have switched totypes.EllipsisType. (See Remove type checker-specific symbols from builtins.pyi and typing.pyi #7580) - Remove
_reader/_writerworkarounds instdlib/_csv.pyi.
(Please amend as necessary.)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
status: deferredIssue or PR deferred until some precondition is fixedIssue or PR deferred until some precondition is fixedstubs: removalPending removal of third-party distributionsPending removal of third-party distributions