{
  "answer": {
    "date": "2025-10-31",
    "sentence": "Python 3.9 reached end of life 11 months ago."
  },
  "data": {
    "cycle": "3.9",
    "dependents": [
      {
        "constraint": ">=3.10",
        "ecosystem": "pypi",
        "latest_version": "1.43.114",
        "minimum": "3.10",
        "name": "boto3",
        "since_date": "2015-06-22",
        "since_version": "1.0.0"
      },
      {
        "constraint": ">=3.10",
        "ecosystem": "pypi",
        "latest_version": "2.8.0",
        "minimum": "3.10",
        "name": "urllib3",
        "since_date": "2026-05-07",
        "since_version": "2.7.0"
      },
      {
        "constraint": ">=3.10",
        "ecosystem": "pypi",
        "latest_version": "2.34.2",
        "minimum": "3.10",
        "name": "requests",
        "since_date": "2013-09-24",
        "since_version": "2.0.0"
      },
      {
        "constraint": ">=3.10",
        "ecosystem": "pypi",
        "latest_version": "84.0.0",
        "minimum": "3.10",
        "name": "setuptools",
        "since_date": "2026-08-08",
        "since_version": "84.0.0"
      },
      {
        "constraint": ">=3.10",
        "ecosystem": "pypi",
        "latest_version": "2.1.1",
        "minimum": "3.10",
        "name": "cffi",
        "since_date": "2026-07-06",
        "since_version": "2.1.0"
      },
      {
        "constraint": ">=3.10",
        "ecosystem": "pypi",
        "latest_version": "8.5.0",
        "minimum": "3.10",
        "name": "click",
        "since_date": "2025-05-10",
        "since_version": "8.2.0"
      },
      {
        "constraint": ">=3.10",
        "ecosystem": "pypi",
        "latest_version": "4.15.1",
        "minimum": "3.10",
        "name": "anyio",
        "since_date": "2026-03-24",
        "since_version": "4.13.0"
      },
      {
        "constraint": ">=3.10",
        "ecosystem": "pypi",
        "latest_version": "9.1.1",
        "minimum": "3.10",
        "name": "pytest",
        "since_date": "2025-11-08",
        "since_version": "9.0.0"
      },
      {
        "constraint": ">=3.10",
        "ecosystem": "pypi",
        "latest_version": "0.8.0",
        "minimum": "3.10",
        "name": "annotated-types",
        "since_date": "2026-07-23",
        "since_version": "0.8.0"
      },
      {
        "constraint": ">=3.10",
        "ecosystem": "pypi",
        "latest_version": "0.4.4",
        "minimum": "3.10",
        "name": "typing-inspection",
        "since_date": "2026-08-10",
        "since_version": "0.4.3"
      },
      {
        "constraint": ">=3.10",
        "ecosystem": "pypi",
        "latest_version": "1.7.0",
        "minimum": "3.10",
        "name": "pluggy",
        "since_date": "2026-10-15",
        "since_version": "1.7.0"
      },
      {
        "constraint": ">=3.10",
        "ecosystem": "pypi",
        "latest_version": "1.43.114",
        "minimum": "3.10",
        "name": "botocore",
        "since_date": "2015-06-22",
        "since_version": "1.0.0"
      },
      {
        "constraint": ">=3.10",
        "ecosystem": "pypi",
        "latest_version": "2.14.1",
        "minimum": "3.10",
        "name": "pydantic",
        "since_date": "2026-10-08",
        "since_version": "2.14.0"
      },
      {
        "constraint": ">=3.10",
        "ecosystem": "pypi",
        "latest_version": "2026.9.0",
        "minimum": "3.10",
        "name": "fsspec",
        "since_date": "2026-01-09",
        "since_version": "2026.1.0"
      },
      {
        "constraint": ">=3.10",
        "ecosystem": "pypi",
        "latest_version": "3.11",
        "minimum": "3.10",
        "name": "pycparser",
        "since_date": "2026-01-21",
        "since_version": "3.0"
      },
      {
        "constraint": ">=3.10",
        "ecosystem": "pypi",
        "latest_version": "2.50.1",
        "minimum": "3.10",
        "name": "pydantic-core",
        "since_date": "2026-05-22",
        "since_version": "2.47.0"
      },
      {
        "constraint": ">=3.10",
        "ecosystem": "pypi",
        "latest_version": "0.19.2",
        "minimum": "3.10",
        "name": "s3transfer",
        "since_date": "2016-01-18",
        "since_version": "0.0.1"
      },
      {
        "constraint": ">=3.12",
        "ecosystem": "pypi",
        "latest_version": "2.5.4",
        "minimum": "3.12",
        "name": "numpy",
        "since_date": "2026-06-21",
        "since_version": "2.5.0"
      },
      {
        "constraint": ">=3.10",
        "ecosystem": "pypi",
        "latest_version": "2.3.1",
        "minimum": "3.10",
        "name": "iniconfig",
        "since_date": "2025-10-18",
        "since_version": "2.2.0"
      },
      {
        "constraint": ">=3.10",
        "ecosystem": "pypi",
        "latest_version": "26.2.1",
        "minimum": "3.10",
        "name": "pip",
        "since_date": "2026-04-26",
        "since_version": "26.1"
      }
    ],
    "eol_date": "2025-10-31",
    "eol_is_bool": null,
    "latest_release_date": "2025-10-31",
    "latest_version": "3.9.25",
    "lts": false,
    "package": {
      "category": "lang",
      "homepage": "https://endoflife.date/python",
      "name": "Python",
      "slug": "python",
      "source": "endoflife",
      "synced_at": "2026-09-09"
    },
    "release_date": "2020-10-05",
    "support_date": "2022-05-17",
    "synced_at": "2026-09-09"
  },
  "description": "Keelbench tracks release, support and end-of-life dates for Python 3.9. Python 3.9 reached end of life on 2025-10-31.",
  "noindex": false,
  "path": "/eol/python/3.9/",
  "schema": "keelbench.page.v1",
  "title": "Python 3.9 end of life",
  "type": "eol-cycle",
  "updated_at": "2025-10-31",
  "url": "https://keelbench.com/eol/python/3.9/"
}