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

Top 120 - 240

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

Top 240 - 360

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

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.