Python 3.8 Readiness

Python 3.8 support graph for the 360 most popular Python packages!

What is this about?

Python 3.8 is a version of Python that is past its End Of Life. This site shows Python 3.8 support for the 360 most downloaded packages on PyPI:

  1. 230 green packages (63.9%) have dropped support for Python 3.8;
  2. 130 uncolored packages (36.1%) still support Python 3.8.

Package 'x' is uncolored. What can I do?

There can be many reasons a package is still supporting Python 3.8:

  • 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.8 support.

How do you identify Python 3.8 support?

We look for the Programming Language :: Python :: 3.8 classifier on the latest release of the project, via PyPI's JSON API.

Top 120

boto3 ✓ packaging ✗ urllib3 ✓ certifi ✗ setuptools ✓ typing-extensions ✓ requests ✓ botocore ✓ idna ✗ charset-normalizer ✗ aiobotocore ✓ python-dateutil ✗ cryptography ✗ six ✓ grpcio-status ✓ cffi ✓ pyyaml ✗ numpy ✓ pycparser ✓ s3transfer ✓ pydantic ✓ pluggy ✓ pygments ✗ click ✓ fsspec ✓ pandas ✓ protobuf ✓ s3fs ✓ pydantic-core ✓ attrs ✓ anyio ✓ pip ✓ h11 ✗ pytest ✓ markupsafe ✓ platformdirs ✓ annotated-types ✗ iniconfig ✓ wheel ✓ jinja2 ✓ jmespath ✓ pathspec ✓ filelock ✓ pytz ✗ httpx ✗ importlib-metadata ✓ httpcore ✗ typing-inspection ✓ python-dotenv ✓ rsa ✗ pyjwt ✓ zipp ✓ pyasn1 ✗ rich ✗ google-auth ✗ yarl ✓ aiohttp ✓ google-api-core ✓ jsonschema ✓ multidict ✓ scipy ✓ tzdata ✓ tqdm ✗ googleapis-common-protos ✗ markdown-it-py ✓ pillow ✓ colorama ✗ grpcio ✓ pyasn1-modules ✗ tomli ✓ mdurl ✗ virtualenv ✗ propcache ✓ frozenlist ✓ uvicorn ✓ trove-classifiers ✓ rpds-py ✓ requests-oauthlib ✗ referencing ✓ fastapi ✓ wrapt ✓ aiosignal ✓ jsonschema-specifications ✓ greenlet ✓ sqlalchemy ✗ starlette ✓ awscli ✓ pyarrow ✓ hatchling ✓ aiohappyeyeballs ✓ pyparsing ✓ oauthlib ✗ cachetools ✓ opentelemetry-sdk ✓ psutil ✓ opentelemetry-semantic-conventions ✓ opentelemetry-api ✓ tenacity ✓ google-genai ✓ regex ✓ annotated-doc ✗ grpcio-tools ✓ sniffio ✓ more-itertools ✓ exceptiongroup ✓ beautifulsoup4 ✓ lxml ✗ soupsieve ✓ shellingham ✗ docutils ✓ tomlkit ✓ openpyxl ✗ et-xmlfile ✗ opentelemetry-proto ✓ requests-toolbelt ✗ websockets ✓ langchain ✓ websocket-client ✓ flask ✓ distlib ✗

Top 120 - 240

msgpack ✓ proto-plus ✗ typer ✓ werkzeug ✓ pyopenssl ✗ pydantic-settings ✓ google-cloud-storage ✗ openai ✓ dnspython ✓ pynacl ✗ mypy-extensions ✗ coverage ✓ opentelemetry-exporter-otlp-proto-http ✓ psycopg2-binary ✓ google-cloud-aiplatform ✓ python-multipart ✓ scikit-learn ✓ opentelemetry-exporter-otlp-proto-grpc ✓ distro ✗ isodate ✗ networkx ✓ matplotlib ✓ keyring ✓ textual ✓ sortedcontainers ✓ fonttools ✓ opentelemetry-exporter-otlp-proto-common ✓ tabulate ✓ wcwidth ✗ decorator ✗ azure-identity ✓ jaraco-classes ✓ yandexcloud ✓ azure-core ✓ huggingface-hub ✓ secretstorage ✓ joblib ✓ jeepney ✓ bcrypt ✗ ruff ✗ redis ✓ msal ✗ editables ✗ kiwisolver ✓ gitpython ✗ jaraco-context ✓ watchfiles ✓ jiter ✓ jaraco-functools ✓ snowflake-connector-python ✓ threadpoolctl ✓ itsdangerous ✓ zstandard ✓ defusedxml ✗ pexpect ✓ types-requests ✓ ptyprocess ✓ google-cloud-core ✗ contourpy ✓ async-timeout ✓ ruamel-yaml ✓ poetry-core ✓ alembic ✓ email-validator ✗ rapidfuzz ✓ smmap ✗ deprecated ✗ gitdb ✗ pytest-cov ✓ python-discovery ✗ opentelemetry-instrumentation ✓ prompt-toolkit ✗ orjson ✓ google-crc32c ✓ kubernetes ✗ google-resumable-media ✗ google-api-python-client ✗ blinker ✓ tzlocal ✓ asn1crypto ✗ paramiko ✓ pytest-asyncio ✓ docker ✗ docstring-parser ✗ opentelemetry-exporter-otlp ✓ uv ✗ sentry-sdk ✗ sse-starlette ✓ chardet ✓ backoff ✗ sympy ✓ prometheus-client ✓ cycler ✗ google-auth-oauthlib ✗ pyproject-hooks ✓ mako ✗ uritemplate ✓ setuptools-scm ✗ google-cloud-bigquery ✓ mcp ✓ marshmallow ✓ dill ✓ build ✓ httplib2 ✓ google-auth-httplib2 ✗ fastjsonschema ✗ msal-extensions ✗ uvloop ✗ sqlparse ✗ azure-storage-blob ✓ google-cloud-secret-manager ✗ mpmath ✓ transformers ✓ google-cloud-batch ✗ hf-xet ✗ tokenizers ✓ gcsfs ✓ xmltodict ✓ babel ✗ mypy ✓

Top 240 - 360

jsonpointer ✗ google-analytics-admin ✗ ipython ✓ nodeenv ✗ aiofiles ✓ httpx-sse ✓ pydantic-ai-slim ✓ databricks-sdk ✗ authlib ✓ cloudpickle ✗ black ✓ httptools ✓ grpcio-health-checking ✓ tiktoken ✓ py4j ✗ asgiref ✓ tornado ✓ toml ✗ gunicorn ✓ opentelemetry-util-http ✓ importlib-resources ✓ parso ✗ traitlets ✓ pre-commit ✓ opentelemetry-instrumentation-requests ✓ executing ✗ cython ✗ durationpy ✓ jedi ✗ aliyun-python-sdk-core ✗ identify ✓ dbt-core ✓ langchain-core ✓ markdown ✓ pytest-xdist ✓ litellm ✓ asttokens ✓ isort ✓ pandas-stubs ✓ cfgv ✓ grpc-google-iam-v1 ✗ matplotlib-inline ✓ webencodings ✓ execnet ✗ python-json-logger ✗ nest-asyncio ✗ cachecontrol ✓ stack-data ✗ jsonschema-path ✓ pure-eval ✗ jsonpatch ✗ typing-inspect ✗ pymongo ✓ awswrangler ✓ cattrs ✓ pydantic-graph ✓ termcolor ✓ xxhash ✗ aioitertools ✓ opensearch-py ✓ h2 ✓ dbt-adapters ✓ pymysql ✓ hyperframe ✓ debugpy ✗ hpack ✓ watchdog ✓ typedload ✓ pkginfo ✗ pyperclip ✗ pytest-mock ✓ dulwich ✓ dataclasses-json ✗ jsonpath-ng ✓ msrest ✗ pathable ✓ dbt-common ✓ torch ✓ pyzmq ✗ slack-sdk ✗ requests-aws4auth ✗ rich-toolkit ✓ pycryptodome ✗ invoke ✗ tree-sitter ✓ google-cloud-monitoring ✗ google-cloud-speech ✗ lz4 ✓ databricks-sql-connector ✗ pygithub ✗ portalocker ✓ google-cloud-compute ✗ google-cloud-vision ✗ google-cloud-kms ✗ ruamel-yaml-clib ✓ semver ✗ google-cloud-tasks ✗ langsmith ✓ sphinx ✓ rfc3339-validator ✗ google-cloud-dlp ✗ poetry ✓ mccabe ✗ opentelemetry-exporter-prometheus ✓ deepdiff ✓ tinycss2 ✓ google-cloud-videointelligence ✗ google-cloud-workflows ✗ pendulum ✓ sqlalchemy-bigquery ✗ snowflake-sqlalchemy ✗ google-cloud-language ✗ anthropic ✓ google-cloud-bigtable ✗ multiprocess ✓ google-cloud-os-login ✗ google-cloud-dataform ✗ azure-common ✗ beartype ✓ arrow ✗

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.