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. 146 green packages (40.6%) have dropped support for Python 3.9;
  2. 214 uncolored packages (59.4%) 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 ✗ setuptools ✓ urllib3 ✗ certifi ✗ charset-normalizer ✗ typing-extensions ✗ requests ✗ idna ✗ botocore ✗ cryptography ✗ python-dateutil ✗ six ✓ aiobotocore ✗ numpy ✓ cffi ✗ pyyaml ✗ grpcio-status ✗ pycparser ✓ pydantic ✗ pluggy ✗ s3transfer ✗ pygments ✗ click ✓ attrs ✗ pydantic-core ✗ protobuf ✓ anyio ✗ fsspec ✓ h11 ✗ pandas ✓ pytest ✓ markupsafe ✓ annotated-types ✗ platformdirs ✓ iniconfig ✓ pip ✗ wheel ✗ jinja2 ✓ pyjwt ✗ s3fs ✓ pathspec ✗ importlib-metadata ✓ httpx ✗ typing-inspection ✗ jmespath ✗ python-dotenv ✓ filelock ✓ httpcore ✗ zipp ✓ rich ✗ pytz ✗ awscli ✗ pyasn1 ✗ jsonschema ✓ yarl ✓ multidict ✗ uvicorn ✓ aiohttp ✗ markdown-it-py ✓ google-auth ✗ tqdm ✗ starlette ✓ mdurl ✗ trove-classifiers ✓ tzdata ✓ google-api-core ✗ googleapis-common-protos ✗ virtualenv ✗ fastapi ✓ tomli ✓ frozenlist ✗ pillow ✓ propcache ✗ colorama ✗ rpds-py ✓ referencing ✓ aiosignal ✓ wrapt ✗ jsonschema-specifications ✗ pyasn1-modules ✗ greenlet ✓ sqlalchemy ✗ annotated-doc ✗ scipy ✓ requests-oauthlib ✗ pyparsing ✗ pyarrow ✓ opentelemetry-api ✗ aiohappyeyeballs ✗ grpcio ✗ hatchling ✓ tenacity ✓ regex ✓ cachetools ✓ opentelemetry-semantic-conventions ✗ psutil ✓ rsa ✗ soupsieve ✗ oauthlib ✗ sniffio ✓ websockets ✓ shellingham ✗ typer ✓ opentelemetry-sdk ✗ more-itertools ✗ exceptiongroup ✓ docutils ✗ beautifulsoup4 ✓ lxml ✗ tomlkit ✗ requests-toolbelt ✗ openpyxl ✗ et-xmlfile ✗ pydantic-settings ✓ distlib ✗ networkx ✓ python-multipart ✓ dnspython ✓ websocket-client ✗

Top 120 - 240

coverage ✓ mypy-extensions ✗ grpcio-tools ✓ google-genai ✓ proto-plus ✗ pyopenssl ✗ opentelemetry-proto ✗ werkzeug ✓ openai ✗ langchain ✓ distro ✗ msgpack ✓ google-cloud-storage ✓ tabulate ✓ keyring ✓ psycopg2-binary ✗ smmap ✗ huggingface-hub ✗ flask ✓ pynacl ✗ wcwidth ✗ jaraco-classes ✓ sortedcontainers ✓ watchfiles ✗ secretstorage ✓ jeepney ✓ opentelemetry-exporter-otlp-proto-http ✗ fonttools ✓ decorator ✗ isodate ✗ scikit-learn ✓ jaraco-context ✓ jiter ✗ joblib ✗ matplotlib ✓ redis ✓ jaraco-functools ✓ ruff ✗ opentelemetry-exporter-otlp-proto-common ✗ kiwisolver ✓ sse-starlette ✓ opentelemetry-exporter-otlp-proto-grpc ✗ azure-core ✗ mcp ✓ pexpect ✓ bcrypt ✗ editables ✗ gitpython ✗ python-discovery ✗ ptyprocess ✓ email-validator ✗ itsdangerous ✓ zstandard ✗ types-requests ✓ ruamel-yaml ✗ sympy ✗ pytest-cov ✗ poetry-core ✓ alembic ✓ msal ✗ google-cloud-core ✗ threadpoolctl ✗ azure-identity ✗ prompt-toolkit ✗ orjson ✓ mpmath ✗ async-timeout ✓ opentelemetry-instrumentation ✗ snowflake-connector-python ✗ pytest-asyncio ✓ docstring-parser ✗ contourpy ✓ docker ✗ gitdb ✗ deprecated ✗ blinker ✓ defusedxml ✗ cycler ✗ google-crc32c ✓ rapidfuzz ✓ tzlocal ✗ google-resumable-media ✗ google-cloud-aiplatform ✗ chardet ✓ google-api-python-client ✗ pyproject-hooks ✓ dill ✗ mako ✗ kubernetes ✗ hf-xet ✗ asn1crypto ✗ build ✗ tokenizers ✗ setuptools-scm ✗ backoff ✗ paramiko ✗ prometheus-client ✗ fastjsonschema ✗ uv ✗ transformers ✓ uritemplate ✓ marshmallow ✓ google-auth-oauthlib ✗ google-auth-httplib2 ✗ textual ✗ uvloop ✗ google-cloud-bigquery ✗ httplib2 ✓ sqlparse ✗ mypy ✗ authlib ✗ opentelemetry-exporter-otlp ✗ toml ✗ nodeenv ✗ tiktoken ✓ ipython ✓ babel ✗ jsonpointer ✓ msal-extensions ✗ azure-storage-blob ✗

Top 240 - 360

httptools ✓ cython ✗ yandexcloud ✗ gunicorn ✓ xmltodict ✗ tornado ✗ httpx-sse ✗ cloudpickle ✗ pre-commit ✓ black ✓ identify ✓ asgiref ✗ sentry-sdk ✗ databricks-sdk ✗ opentelemetry-util-http ✗ aiofiles ✗ opentelemetry-instrumentation-requests ✗ multiprocess ✗ parso ✗ traitlets ✓ executing ✗ cfgv ✓ jedi ✗ importlib-resources ✓ asttokens ✗ google-cloud-secret-manager ✗ cachecontrol ✓ pytest-xdist ✗ jsonschema-path ✓ flatbuffers ✓ python-json-logger ✗ matplotlib-inline ✗ execnet ✗ grpc-google-iam-v1 ✗ markdown ✓ py4j ✗ xxhash ✗ webencodings ✓ durationpy ✓ stack-data ✗ pure-eval ✗ pathable ✓ langchain-core ✓ h2 ✗ typing-inspect ✗ hyperframe ✗ hpack ✗ watchdog ✗ nest-asyncio ✗ jsonpatch ✗ litellm ✗ zarr ✓ termcolor ✓ pyperclip ✗ pytest-mock ✗ dulwich ✓ onnxruntime ✓ pymupdf ✓ pkginfo ✗ dbt-core ✓ isort ✓ google-cloud-batch ✗ pymongo ✗ beartype ✓ debugpy ✗ anthropic ✗ jsonref ✓ aioitertools ✓ grpcio-health-checking ✗ cyclopts ✓ google-analytics-admin ✗ poetry ✓ dbt-adapters ✓ torch ✓ jsonpath-ng ✓ fastmcp ✓ awswrangler ✓ slack-sdk ✗ gcsfs ✓ dataclasses-json ✗ pymysql ✓ mccabe ✗ pydantic-ai-slim ✓ rich-rst ✗ pyzmq ✗ tree-sitter ✓ installer ✓ ruamel-yaml-clib ✗ typedload ✓ cleo ✗ pycryptodome ✗ lz4 ✗ crashtest ✗ langsmith ✓ pygithub ✗ dbt-common ✓ datasets ✓ msrest ✗ rfc3339-validator ✓ deepdiff ✗ pandas-stubs ✓ cattrs ✓ safetensors ✗ tinycss2 ✓ py-key-value-aio ✓ librt ✗ xlsxwriter ✗ wsproto ✓ backports-tarfile ✓ semver ✗ arrow ✗ pycodestyle ✓ smart-open ✓ faker ✓ narwhals ✗ loguru ✗ requests-file ✓ invoke ✗ future ✗ pendulum ✗

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.