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. 233 green packages (64.7%) have dropped support for Python 3.9;
  2. 127 uncolored packages (35.3%) 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 ✗ urllib3 ✓ certifi ✗ charset-normalizer ✗ requests ✓ cryptography ✗ cffi ✓ pyyaml ✗ pygments ✗ python-dateutil ✗ six ✓ setuptools ✓ pycparser ✓ pydantic ✗ click ✓ pluggy ✗ numpy ✓ botocore ✓ pydantic-core ✓ anyio ✓ annotated-types ✓ pytest ✓ h11 ✗ typing-inspection ✓ iniconfig ✓ attrs ✗ markupsafe ✓ httpx ✗ s3transfer ✓ httpcore ✗ python-dotenv ✓ aiobotocore ✓ protobuf ✓ pyjwt ✗ fsspec ✓ pandas ✓ platformdirs ✓ jinja2 ✓ starlette ✓ opentelemetry-api ✓ uvicorn ✓ pathspec ✗ filelock ✓ rpds-py ✓ jsonschema ✓ pillow ✓ jmespath ✗ multidict ✓ rich ✗ markdown-it-py ✓ referencing ✓ jsonschema-specifications ✗ yarl ✓ tomlkit ✗ aiohttp ✓ propcache ✓ mdurl ✗ googleapis-common-protos ✓ websockets ✓ annotated-doc ✗ fastapi ✓ tqdm ✗ frozenlist ✗ tzdata ✓ pytz ✗ aiohappyeyeballs ✓ aiosignal ✓ pyasn1 ✗ sniffio ✓ pip ✓ wrapt ✗ pydantic-settings ✓ trove-classifiers ✓ python-multipart ✓ google-auth ✓ pyarrow ✓ zipp ✓ importlib-metadata ✓ tenacity ✓ lxml ✗ hatchling ✓ greenlet ✓ sqlalchemy ✓ pyasn1-modules ✗ grpcio-status ✓ pyparsing ✗ wheel ✗ regex ✓ jiter ✓ ruff ✗ watchfiles ✓ grpcio ✓ s3fs ✓ openai ✓ google-api-core ✓ psutil ✓ scipy ✓ soupsieve ✓ openpyxl ✗ et-xmlfile ✗ beautifulsoup4 ✓ distro ✗ opentelemetry-semantic-conventions ✓ coverage ✓ opentelemetry-sdk ✓ truststore ✓ shellingham ✗ httpx2 ✓ httpcore2 ✓ proto-plus ✓ typer ✓ sse-starlette ✓ mypy-extensions ✗ huggingface-hub ✓ mcp ✓ uvloop ✗ colorama ✗

Top 120 - 240

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

Top 240 - 360

httplib2 ✓ google-auth-oauthlib ✓ pexpect ✓ narwhals ✓ opentelemetry-exporter-otlp-proto-grpc ✓ asyncpg ✗ rapidfuzz ✓ authlib ✓ async-timeout ✓ fastjsonschema ✓ msal-extensions ✗ black ✓ opentelemetry-util-http ✓ transformers ✓ playwright ✓ joserfc ✓ sqlparse ✓ executing ✗ jsonpatch ✗ snowflake-connector-python ✓ python-docx ✗ babel ✗ pyee ✓ paramiko ✗ gunicorn ✓ grpc-google-iam-v1 ✓ tinycss2 ✓ litellm ✓ tornado ✗ ipython ✓ parso ✗ structlog ✓ asttokens ✗ pyproject-hooks ✓ markdown ✓ jedi ✓ azure-storage-blob ✓ typedload ✓ xmltodict ✗ matplotlib-inline ✗ pyzmq ✓ pytest-json-ctrf ✓ pure-eval ✗ google-cloud-aiplatform ✓ mcp-types ✓ python-json-logger ✓ isort ✓ pytest-timeout ✗ ast-serialize ✗ cachecontrol ✓ build ✓ aioitertools ✓ stack-data ✗ multiprocess ✗ awscli ✓ flatbuffers ✓ awswrangler ✓ nbformat ✓ databricks-sdk ✓ pymupdf ✓ brotli ✓ python-pptx ✗ watchdog ✗ griffelib ✓ marshmallow ✓ onnxruntime ✓ safetensors ✓ pytest-mock ✓ jupyter-core ✓ nest-asyncio ✗ lz4 ✗ langsmith ✓ pytokens ✗ types-pyyaml ✓ croniter ✗ beartype ✓ cyclopts ✓ jsonref ✓ debugpy ✓ setuptools-scm ✗ sqlglot ✓ tomli-w ✓ kubernetes ✓ fastuuid ✗ poetry-core ✓ pyperclip ✗ pymysql ✓ mdit-py-plugins ✗ slack-sdk ✗ jupyter-client ✓ lark ✓ pathable ✓ jsonschema-path ✓ opentelemetry-instrumentation-fastapi ✓ termcolor ✓ linkify-it-py ✓ cbor2 ✓ rich-rst ✗ cython ✗ pypdfium2 ✓ datasets ✓ types-requests ✓ uuid-utils ✓ py-key-value-aio ✓ vcs-versioning ✗ opentelemetry-instrumentation-asgi ✓ reportlab ✓ mistune ✗ py4j ✗ argon2-cffi-bindings ✓ xlrd ✗ loguru ✗ text-unidecode ✓ bleach ✓ deprecation ✓ python-slugify ✓ pycryptodome ✗ argon2-cffi ✗ opentelemetry-instrumentation-requests ✓ 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.