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. 125 green packages (34.7%) have dropped support for Python 3.9;
  2. 235 uncolored packages (65.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 ✗ urllib3 ✗ setuptools ✓ botocore ✗ aiobotocore ✗ certifi ✗ typing-extensions ✗ requests ✗ idna ✗ charset-normalizer ✗ python-dateutil ✗ grpcio-status ✗ six ✓ numpy ✓ s3transfer ✗ cryptography ✗ pyyaml ✗ cffi ✗ s3fs ✓ fsspec ✓ pydantic ✗ pycparser ✓ pluggy ✗ pandas ✓ click ✓ pygments ✗ attrs ✗ pydantic-core ✗ protobuf ✗ h11 ✗ jmespath ✗ markupsafe ✓ anyio ✗ pip ✗ platformdirs ✓ pytest ✓ wheel ✗ annotated-types ✗ jinja2 ✓ iniconfig ✓ importlib-metadata ✓ pytz ✗ filelock ✓ rsa ✗ awscli ✗ httpx ✗ zipp ✓ httpcore ✗ pyasn1 ✗ pyjwt ✗ typing-inspection ✗ aiohttp ✗ pathspec ✗ tzdata ✓ jsonschema ✓ python-dotenv ✗ google-api-core ✗ multidict ✗ colorama ✗ yarl ✗ google-auth ✗ virtualenv ✗ googleapis-common-protos ✗ pyarrow ✓ wrapt ✗ langchain ✓ propcache ✗ frozenlist ✗ sqlalchemy ✗ requests-oauthlib ✗ rich ✗ greenlet ✓ rpds-py ✓ aiosignal ✓ tqdm ✗ pyasn1-modules ✗ referencing ✓ tomli ✓ jsonschema-specifications ✗ pillow ✓ psutil ✓ markdown-it-py ✓ pyparsing ✗ opentelemetry-proto ✗ starlette ✓ opentelemetry-semantic-conventions ✗ scipy ✓ trove-classifiers ✓ grpcio ✗ aiohappyeyeballs ✗ mdurl ✗ oauthlib ✗ opentelemetry-sdk ✗ tomlkit ✗ uvicorn ✓ fastapi ✗ openpyxl ✗ et-xmlfile ✗ soupsieve ✗ beautifulsoup4 ✓ distlib ✗ cachetools ✗ tenacity ✗ lxml ✗ websocket-client ✗ regex ✗ sniffio ✓ requests-toolbelt ✗ opentelemetry-exporter-otlp-proto-http ✗ huggingface-hub ✗ grpcio-tools ✓ pyopenssl ✗ google-cloud-storage ✗ opentelemetry-api ✗ sortedcontainers ✓ opentelemetry-exporter-otlp-proto-grpc ✗ werkzeug ✓ shellingham ✗ opentelemetry-exporter-otlp-proto-common ✗

Top 120 - 240

docutils ✗ psycopg2-binary ✗ proto-plus ✗ mypy-extensions ✗ websockets ✓ exceptiongroup ✓ isodate ✗ decorator ✗ pynacl ✗ networkx ✓ more-itertools ✗ msgpack ✓ flask ✓ wcwidth ✗ azure-core ✗ scikit-learn ✓ coverage ✓ hatchling ✓ msal ✗ openai ✗ opentelemetry-exporter-otlp ✗ joblib ✗ bcrypt ✗ distro ✗ pexpect ✓ ptyprocess ✓ google-cloud-core ✗ ruamel-yaml ✗ poetry-core ✓ asn1crypto ✗ python-multipart ✓ async-timeout ✓ threadpoolctl ✗ dnspython ✓ tabulate ✗ gitpython ✗ opentelemetry-instrumentation ✗ snowflake-connector-python ✗ pydantic-settings ✓ matplotlib ✓ redis ✓ prompt-toolkit ✗ deprecated ✗ fonttools ✓ itsdangerous ✓ paramiko ✗ cloudpickle ✗ google-resumable-media ✗ tzlocal ✗ alembic ✓ keyring ✓ google-crc32c ✓ azure-identity ✗ smmap ✗ gitdb ✗ jiter ✗ blinker ✓ google-genai ✓ typer ✗ ruff ✗ langsmith ✓ kiwisolver ✓ chardet ✗ zstandard ✗ rapidfuzz ✓ annotated-doc ✗ google-api-python-client ✗ backoff ✗ jaraco-classes ✓ secretstorage ✓ cycler ✗ dill ✗ msal-extensions ✗ jeepney ✓ kubernetes ✗ defusedxml ✗ prometheus-client ✗ orjson ✗ build ✗ pytest-asyncio ✓ fastjsonschema ✗ types-requests ✓ google-cloud-bigquery ✗ yandexcloud ✗ pyproject-hooks ✓ setuptools-scm ✗ pytest-cov ✗ azure-storage-blob ✗ google-auth-oauthlib ✗ docker ✗ contourpy ✓ transformers ✓ nodeenv ✗ ipython ✓ sympy ✗ httplib2 ✓ uritemplate ✓ google-auth-httplib2 ✗ jaraco-context ✓ editables ✗ opentelemetry-instrumentation-requests ✗ jaraco-functools ✓ tornado ✗ jedi ✗ tokenizers ✗ sqlparse ✗ mako ✗ marshmallow ✓ traitlets ✓ identify ✓ mpmath ✗ py4j ✗ parso ✗ pre-commit ✓ importlib-resources ✓ opentelemetry-util-http ✗ xmltodict ✗ cython ✗ cfgv ✓ babel ✗

Top 240 - 360

hf-xet ✗ nest-asyncio ✗ jsonpointer ✗ matplotlib-inline ✗ executing ✗ asttokens ✗ toml ✗ aiofiles ✗ uv ✗ mypy ✗ ply ✓ langchain-core ✓ dbt-core ✓ watchfiles ✗ sentry-sdk ✗ stack-data ✗ pure-eval ✗ typedload ✓ gunicorn ✓ docstring-parser ✗ awswrangler ✓ botocore-stubs ✗ markdown ✓ tiktoken ✓ python-json-logger ✗ types-awscrt ✗ uvloop ✗ grpc-google-iam-v1 ✗ black ✓ webencodings ✓ cachecontrol ✓ types-s3transfer ✗ boto3-stubs ✗ asgiref ✗ watchdog ✗ dbt-adapters ✓ pyzmq ✗ google-cloud-aiplatform ✗ email-validator ✗ aioitertools ✓ mcp ✓ debugpy ✗ termcolor ✓ pkginfo ✗ gcsfs ✓ pymysql ✓ datasets ✗ ruamel-yaml-clib ✗ torch ✓ dulwich ✓ dbt-common ✓ durationpy ✓ httptools ✓ databricks-sdk ✗ jsonpath-ng ✗ typing-inspect ✗ msrest ✗ jsonpatch ✗ tree-sitter ✓ sse-starlette ✗ pymongo ✗ mypy-boto3-s3 ✗ httpx-sse ✗ pycryptodome ✗ isort ✓ poetry ✓ h2 ✗ google-cloud-secret-manager ✗ hyperframe ✗ hpack ✗ shapely ✓ multiprocess ✗ execnet ✗ jupyter-core ✓ notebook ✗ pytest-xdist ✗ pysocks ✓ mccabe ✗ lz4 ✗ azure-common ✗ requests-file ✓ ipykernel ✓ jupyter-client ✓ comm ✓ datadog ✗ future ✗ cleo ✗ installer ✓ poetry-plugin-export ✓ arrow ✗ crashtest ✗ pendulum ✗ slack-sdk ✗ wsproto ✓ invoke ✗ deepdiff ✗ smart-open ✗ rfc3339-validator ✓ scramp ✓ loguru ✗ tinycss2 ✓ pytest-mock ✗ safetensors ✗ xxhash ✗ simplejson ✗ narwhals ✗ pycodestyle ✓ dataclasses-json ✗ mistune ✗ humanfriendly ✗ selenium ✓ snowflake-sqlalchemy ✗ py ✗ xlsxwriter ✗ litellm ✗ pygithub ✗ argcomplete ✗ nvidia-nccl-cu12 ✗ tree-sitter-languages ✓ zope-interface ✓

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.