Skip to content

Drop support for Python 3.9 (February/May 2026) #13782

@srittau

Description

@srittau

Python 3.9 reached its end-of-life phase on 2025-10-31 (PEP 596).

How to remove support

February 2026

  • Update the documentation.
  • Update the oldest_supported_python key in pyproject.toml.
  • Remove requires_python >= 3.10 and python_version >= 3.10 from METADATA.toml
  • Remove 3.9 from CI and test scripts.
  • Update stubtest allow lists. Also check whether items can be moved to the common allow lists.

May 2026

  • Remove 3.9 exclusive branches from stubs.
  • Remove obsolete stdlib modules (see VERSIONS).
    • _bootlocale
    • distutils.command.bdist_wininst
    • formatter
    • parser
    • symbol
  • Replace typing_extensions imports.
    • ParamSpec
    • TypeAlias
    • TypeGuard
  • Remove builtins.ellipsis after type checkers have switched to types.EllipsisType. (See Remove type checker-specific symbols from builtins.pyi and typing.pyi #7580)
  • Remove _reader/_writer workarounds in stdlib/_csv.pyi.

(Please amend as necessary.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    stubs: removalPending removal of third-party distributions

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions