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 ✗ python-dateutil ✗ pygments ✗ six ✓ setuptools ✓ pycparser ✓ pydantic ✗ click ✓ pluggy ✗ botocore ✓ numpy ✓ pydantic-core ✓ anyio ✓ annotated-types ✓ pytest ✓ h11 ✗ typing-inspection ✓ iniconfig ✓ attrs ✗ markupsafe ✓ httpx ✗ s3transfer ✓ httpcore ✗ python-dotenv ✓ pyjwt ✗ aiobotocore ✓ protobuf ✓ pandas ✓ fsspec ✓ platformdirs ✓ jinja2 ✓ starlette ✓ uvicorn ✓ pathspec ✗ opentelemetry-api ✓ filelock ✓ jsonschema ✓ jmespath ✗ rpds-py ✓ pillow ✓ multidict ✓ referencing ✓ rich ✗ markdown-it-py ✓ jsonschema-specifications ✗ yarl ✓ tomlkit ✗ aiohttp ✓ propcache ✓ mdurl ✗ googleapis-common-protos ✓ annotated-doc ✗ websockets ✓ tqdm ✗ fastapi ✓ 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 ✗ pyparsing ✗ grpcio-status ✓ wheel ✗ jiter ✓ regex ✓ ruff ✗ grpcio ✓ watchfiles ✓ s3fs ✓ openai ✓ google-api-core ✓ soupsieve ✓ psutil ✓ scipy ✓ openpyxl ✗ et-xmlfile ✗ beautifulsoup4 ✓ distro ✗ opentelemetry-semantic-conventions ✓ coverage ✓ opentelemetry-sdk ✓ truststore ✓ shellingham ✗ httpx2 ✓ httpcore2 ✓ sse-starlette ✓ proto-plus ✓ typer ✓ mypy-extensions ✗ mcp ✓ huggingface-hub ✓ uvloop ✗ colorama ✗

Top 120 - 240

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

Top 240 - 360

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

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.