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 ✓ pydantic-core ✓ botocore ✓ anyio ✓ annotated-types ✓ pytest ✓ h11 ✗ typing-inspection ✓ iniconfig ✓ attrs ✗ markupsafe ✓ python-dotenv ✓ httpx ✗ httpcore ✗ s3transfer ✓ aiobotocore ✓ protobuf ✓ pyjwt ✗ fsspec ✓ pandas ✓ platformdirs ✓ jinja2 ✓ starlette ✓ opentelemetry-api ✓ uvicorn ✓ pathspec ✗ filelock ✓ rpds-py ✓ pillow ✓ jsonschema ✓ jmespath ✗ rich ✗ multidict ✓ markdown-it-py ✓ referencing ✓ jsonschema-specifications ✗ yarl ✓ tomlkit ✗ aiohttp ✓ propcache ✓ mdurl ✗ websockets ✓ annotated-doc ✗ googleapis-common-protos ✓ fastapi ✓ tqdm ✗ tzdata ✓ frozenlist ✗ aiohappyeyeballs ✓ pytz ✗ aiosignal ✓ pyasn1 ✗ sniffio ✓ pip ✓ pydantic-settings ✓ wrapt ✗ trove-classifiers ✓ python-multipart ✓ pyarrow ✓ google-auth ✓ zipp ✓ importlib-metadata ✓ tenacity ✓ hatchling ✓ greenlet ✓ lxml ✗ sqlalchemy ✓ pyasn1-modules ✗ pyparsing ✗ ruff ✗ wheel ✗ jiter ✓ grpcio-status ✓ regex ✓ watchfiles ✓ grpcio ✓ s3fs ✓ openai ✓ google-api-core ✓ psutil ✓ scipy ✓ soupsieve ✓ openpyxl ✗ et-xmlfile ✗ beautifulsoup4 ✓ opentelemetry-semantic-conventions ✓ distro ✗ coverage ✓ opentelemetry-sdk ✓ truststore ✓ shellingham ✗ httpx2 ✓ httpcore2 ✓ typer ✓ sse-starlette ✓ proto-plus ✓ uvloop ✗ mcp ✓ mypy-extensions ✗ huggingface-hub ✓ colorama ✗

Top 120 - 240

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

Top 240 - 360

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