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

Top 120 - 240

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

Top 240 - 360

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

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.