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

Top 120 - 240

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

Top 240 - 360

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

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.