Python 3.9 Readiness

Python 3.9 support graph for the 360 most popular Python packages!

What is this about?

Python 3.9 is a version of Python that is past its End Of Life. This site shows Python 3.9 support for the 360 most downloaded packages on PyPI:

  1. 230 green packages (63.9%) have dropped support for Python 3.9;
  2. 130 uncolored packages (36.1%) still support Python 3.9.

Package 'x' is uncolored. What can I do?

There can be many reasons a package is still supporting Python 3.9:

  • If you are package maintainer, it's time to start dropping support (if you haven't already). Here is an in-depth guide to Dropping support for older Python versions. If you are not able to give the time needed, please seek for help from the community.

  • If you are user of the package, send a friendly note to the package maintainer. Or fork it, and send a pull request to help move the project towards dropping Python 3.9 support.

How do you identify Python 3.9 support?

We look for the Programming Language :: Python :: 3.9 classifier on the latest release of the project, via PyPI's JSON API.

Top 120

boto3 ✓ packaging ✗ typing-extensions ✗ idna ✗ certifi ✗ urllib3 ✓ requests ✓ charset-normalizer ✗ cryptography ✗ setuptools ✓ pygments ✗ cffi ✓ pyyaml ✗ python-dateutil ✗ pluggy ✗ six ✓ botocore ✓ pydantic ✗ pycparser ✓ anyio ✓ click ✓ pydantic-core ✓ numpy ✓ pytest ✓ iniconfig ✓ annotated-types ✓ h11 ✗ attrs ✗ typing-inspection ✓ s3transfer ✓ aiobotocore ✓ protobuf ✓ httpx ✗ httpcore ✗ markupsafe ✓ fsspec ✓ python-dotenv ✓ platformdirs ✓ pyjwt ✗ jinja2 ✓ pandas ✓ jmespath ✗ pathspec ✗ filelock ✓ starlette ✓ uvicorn ✓ multidict ✓ rpds-py ✓ jsonschema ✓ tomlkit ✗ aiohttp ✓ rich ✗ yarl ✓ markdown-it-py ✓ propcache ✓ referencing ✓ jsonschema-specifications ✗ mdurl ✗ opentelemetry-api ✓ frozenlist ✗ pillow ✓ googleapis-common-protos ✓ tqdm ✗ aiosignal ✓ pip ✓ aiohappyeyeballs ✓ pyasn1 ✗ ghapi ✓ websockets ✓ annotated-doc ✗ sniffio ✓ wrapt ✗ pytz ✗ google-auth ✓ greenlet ✓ fastapi ✓ zipp ✓ importlib-metadata ✓ pydantic-settings ✓ wheel ✗ tzdata ✓ tenacity ✓ grpcio-status ✓ pyasn1-modules ✗ python-multipart ✓ trove-classifiers ✓ pyarrow ✓ opentelemetry-semantic-conventions ✓ sqlalchemy ✗ hatchling ✓ s3fs ✓ grpcio ✓ pyparsing ✗ regex ✓ beautifulsoup4 ✓ jiter ✓ lxml ✗ soupsieve ✓ watchfiles ✓ ruff ✗ openai ✓ google-api-core ✓ scipy ✓ coverage ✓ tomli ✓ openpyxl ✗ et-xmlfile ✗ psutil ✓ distro ✗ shellingham ✗ opentelemetry-sdk ✓ virtualenv ✗ mypy-extensions ✗ proto-plus ✓ exceptiongroup ✓ colorama ✗ typer ✓ requests-oauthlib ✗ mcp ✓ cachetools ✓

Top 120 - 240

wcwidth ✗ sse-starlette ✓ huggingface-hub ✓ distlib ✗ editables ✗ pytest-asyncio ✓ more-itertools ✓ truststore ✓ dnspython ✓ oauthlib ✗ opentelemetry-proto ✓ psycopg2-binary ✓ sortedcontainers ✓ httptools ✓ uvloop ✗ pytest-cov ✗ httpx2 ✓ httpcore2 ✓ requests-toolbelt ✗ docstring-parser ✗ networkx ✓ redis ✓ fonttools ✓ opentelemetry-exporter-otlp-proto-common ✓ defusedxml ✗ rsa ✗ hf-xet ✗ msgpack ✓ scikit-learn ✓ prompt-toolkit ✓ nodeenv ✗ tiktoken ✓ alembic ✓ isodate ✗ mako ✓ python-discovery ✗ orjson ✓ pyopenssl ✗ werkzeug ✓ opentelemetry-exporter-otlp-proto-http ✓ gitpython ✗ chardet ✓ threadpoolctl ✗ langchain ✓ opentelemetry-instrumentation ✓ joblib ✓ pynacl ✗ websocket-client ✓ tokenizers ✓ cloudpickle ✗ tzlocal ✓ azure-core ✓ smmap ✗ identify ✓ matplotlib ✓ pre-commit ✓ dill ✗ cfgv ✓ kiwisolver ✓ gitdb ✗ ruamel-yaml ✗ bcrypt ✗ h2 ✓ email-validator ✗ google-cloud-core ✓ hpack ✓ httpx-sse ✗ multiprocess ✗ msal ✗ langchain-core ✓ hyperframe ✗ tabulate ✓ zstandard ✗ keyring ✓ google-cloud-storage ✓ toml ✗ itsdangerous ✓ mypy ✓ cycler ✗ jaraco-classes ✓ jeepney ✓ anthropic ✓ jaraco-functools ✓ google-cloud-bigquery ✓ secretstorage ✓ decorator ✗ jaraco-context ✓ contourpy ✓ google-genai ✓ docker ✗ docutils ✗ google-resumable-media ✓ pytest-xdist ✗ prometheus-client ✗ asn1crypto ✗ google-crc32c ✓ execnet ✗ deprecated ✗ backoff ✗ xxhash ✗ jsonpointer ✓ sympy ✗ uv ✗ uritemplate ✓ mpmath ✗ flask ✓ async-timeout ✓ grpcio-tools ✓ pytest-json-ctrf ✓ google-api-python-client ✓ ptyprocess ✓ psycopg ✓ google-auth-httplib2 ✓ pexpect ✓ opentelemetry-util-http ✓ rapidfuzz ✓ pypdf ✗ sentry-sdk ✗ asgiref ✓ psycopg-binary ✓

Top 240 - 360

aiofiles ✗ azure-identity ✗ httplib2 ✓ blinker ✓ librt ✗ msal-extensions ✗ narwhals ✓ traitlets ✓ google-auth-oauthlib ✓ webencodings ✓ black ✓ jsonpatch ✗ authlib ✓ sqlparse ✓ typedload ✓ asyncpg ✗ fastjsonschema ✓ paramiko ✗ babel ✗ opentelemetry-exporter-otlp-proto-grpc ✓ snowflake-connector-python ✓ executing ✗ joserfc ✓ gunicorn ✓ structlog ✓ ipython ✓ azure-storage-blob ✗ grpc-google-iam-v1 ✓ jedi ✓ parso ✗ playwright ✓ asttokens ✗ python-docx ✗ pyee ✓ awscli ✓ xmltodict ✗ markdown ✓ matplotlib-inline ✗ transformers ✓ opentelemetry-instrumentation-requests ✓ google-cloud-aiplatform ✓ tornado ✗ pure-eval ✗ pytest-timeout ✗ stack-data ✗ isort ✓ pyproject-hooks ✓ tinycss2 ✓ build ✓ setuptools-scm ✗ marshmallow ✓ xlsxwriter ✗ aioitertools ✓ awswrangler ✓ pytest-mock ✗ litellm ✓ pymupdf ✓ python-json-logger ✓ watchdog ✗ databricks-sdk ✓ cachecontrol ✓ langsmith ✓ mcp-types ✓ reportlab ✓ datasets ✓ griffelib ✓ poetry-core ✓ vcs-versioning ✗ croniter ✗ pyzmq ✓ flatbuffers ✓ brotli ✓ ast-serialize ✗ cbor2 ✓ cython ✗ nest-asyncio ✗ types-requests ✓ slack-sdk ✗ psycopg2 ✓ uuid-utils ✓ pymysql ✓ termcolor ✓ debugpy ✗ kubernetes ✓ lz4 ✗ cyclopts ✓ types-pyyaml ✓ pyperclip ✗ sqlglot ✓ mdit-py-plugins ✗ opentelemetry-instrumentation-fastapi ✓ onnxruntime ✓ pytokens ✗ beartype ✓ linkify-it-py ✓ opentelemetry-instrumentation-asgi ✓ jsonref ✓ grpclib ✓ nbformat ✓ fastuuid ✗ jupyter-core ✓ xlrd ✗ safetensors ✓ types-toml ✓ py4j ✗ types-protobuf ✓ pathable ✓ pycryptodome ✗ jsonschema-path ✓ text-unidecode ✓ tomli-w ✓ wsproto ✓ python-slugify ✓ importlib-resources ✓ typing-inspect ✗ requests-file ✓ mccabe ✗ loguru ✗ jupyter-client ✓ semver ✓

Thanks

This is derivative work from py3readiness.org, a site that previously tracked general compatibility with Python 3, which in turn was a derivative of pythonwheels.com, a site that tracks which Python distributions ship the wheel distribution.