❯ git grep -P '3.*9'
.github/workflows/test.yml: - name: py39_pip
.github/workflows/test.yml: PYTHON_VERSION: "3.9"
.github/workflows/test.yml: - name: py39_conda_homebrew_libomp
.github/workflows/test.yml: PYTHON_VERSION: "3.9"
.github/workflows/test.yml: - name: py39_ubuntu_atlas_gcc_gcc
.github/workflows/test.yml: PYTHON_VERSION: "3.9"
.github/workflows/test.yml: - name: py39_ubuntu_openblas_gcc_gcc
.github/workflows/test.yml: PYTHON_VERSION: "3.9"
.github/workflows/test.yml: # Linux + Python 3.9 and homogeneous runtime nesting.
.github/workflows/test.yml: - name: py39_conda_openblas_clang_clang
.github/workflows/test.yml: PYTHON_VERSION: "3.9"
CHANGES.md:3.5.0 (2024-04-29)
continuous_integration/install.sh: # https://github.com/scikit-learn/scikit-learn/pull/13934
pyproject.toml:requires-python = ">=3.9"
pyproject.toml: "Programming Language :: Python :: 3.9",
pyproject.toml:target_version = ['py39', 'py310', 'py311', 'py312', 'py313']
Python 3.9 security support has ended in October 2025
cc @DeaMariaLeon