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

Top 120 - 240

google-cloud-bigquery ✓ openpyxl ✗ editables ✗ et-xmlfile ✗ oauthlib ✗ more-itertools ✓ opentelemetry-exporter-otlp-proto-grpc ✓ coverage ✓ tomlkit ✓ mcp ✓ exceptiongroup ✓ distlib ✗ grpcio-tools ✓ dnspython ✓ rsa ✗ requests-toolbelt ✗ google-genai ✓ ruff ✗ sse-starlette ✓ wcwidth ✗ mypy-extensions ✗ pyopenssl ✓ python-discovery ✗ pytest-json-ctrf ✓ networkx ✓ psycopg2-binary ✓ sortedcontainers ✓ msgpack ✓ google-cloud-storage ✓ redis ✓ werkzeug ✓ docstring-parser ✗ gitpython ✗ pytest-asyncio ✓ hf-xet ✗ weaviate-client ✓ httpx-sse ✓ httptools ✓ pynacl ✗ azure-identity ✓ smmap ✗ azure-core ✓ scikit-learn ✓ keyring ✓ uvloop ✗ isodate ✗ ydb ✓ defusedxml ✗ jaraco-functools ✓ docutils ✓ decorator ✗ websocket-client ✓ prompt-toolkit ✗ fonttools ✓ gitdb ✗ tiktoken ✓ jaraco-classes ✓ tabulate ✓ itsdangerous ✓ jeepney ✓ tokenizers ✓ matplotlib ✓ secretstorage ✓ orjson ✓ pytest-cov ✓ email-validator ✗ tzlocal ✓ opentelemetry-instrumentation-requests ✓ joblib ✓ bcrypt ✗ flask ✓ alembic ✓ msal ✓ google-cloud-core ✓ jaraco-context ✓ opentelemetry-util-http ✓ threadpoolctl ✓ dill ✓ mako ✗ ruamel-yaml ✓ kiwisolver ✓ zstandard ✓ google-api-python-client ✗ snowflake-connector-python ✓ google-cloud-aiplatform ✓ blinker ✓ opentelemetry-instrumentation-threading ✓ google-crc32c ✓ google-resumable-media ✓ ptyprocess ✓ deprecated ✗ google-cloud-secret-manager ✓ uv ✗ uritemplate ✓ nodeenv ✗ mypy ✓ pexpect ✓ chardet ✓ httplib2 ✓ multiprocess ✓ langchain-core ✓ google-auth-httplib2 ✓ contourpy ✓ docker ✗ google-auth-oauthlib ✓ transformers ✓ cycler ✗ ghapi ✓ opentelemetry-exporter-otlp ✓ xxhash ✗ prometheus-client ✓ asn1crypto ✗ anthropic ✓ google-cloud-batch ✓ sympy ✓ hpack ✓ identify ✓ pre-commit ✓ jsonpointer ✓ mpmath ✓

Top 240 - 360

pydantic-ai-slim ✓ cfgv ✓ pyproject-hooks ✓ rapidfuzz ✓ ipython ✓ aiofiles ✓ gcsfs ✓ h2 ✓ black ✓ google-cloud-kms ✓ hyperframe ✓ google-analytics-admin ✓ paramiko ✓ toml ✗ backoff ✗ async-timeout ✓ google-cloud-compute ✓ narwhals ✓ build ✓ pytest-xdist ✓ sentry-sdk ✗ msal-extensions ✗ joserfc ✓ fastjsonschema ✗ cloudpickle ✗ execnet ✗ authlib ✓ sqlparse ✗ poetry-core ✓ traitlets ✓ asgiref ✓ webencodings ✓ datasets ✓ google-cloud-dlp ✓ babel ✗ databricks-sdk ✓ google-cloud-texttospeech ✓ azure-storage-blob ✓ executing ✗ jsonpatch ✗ gunicorn ✓ librt ✓ types-requests ✓ jedi ✓ google-cloud-speech ✓ dbt-core ✓ asttokens ✓ parso ✗ setuptools-scm ✗ grpc-google-iam-v1 ✓ tornado ✓ python-json-logger ✓ databricks-sql-connector ✗ cython ✗ cachecontrol ✓ dbt-adapters ✓ xmltodict ✓ matplotlib-inline ✓ marshmallow ✓ google-cloud-pubsub ✓ vcs-versioning ✗ markdown ✓ stack-data ✗ pure-eval ✗ pymongo ✓ isort ✓ pandas-stubs ✓ py4j ✗ pypdf ✓ kubernetes ✓ tinycss2 ✓ langsmith ✓ psycopg ✓ asyncpg ✓ pydantic-graph ✓ structlog ✓ google-cloud-tasks ✓ watchdog ✓ google-cloud-logging ✓ snowflake-snowpark-python ✓ importlib-resources ✓ torch ✓ pyzmq ✗ lz4 ✓ pyperclip ✗ xlsxwriter ✗ tomli-w ✓ psycopg-binary ✓ termcolor ✓ pycryptodome ✗ debugpy ✗ safetensors ✓ aioitertools ✓ deprecation ✓ google-cloud-monitoring ✓ nest-asyncio ✗ python-docx ✗ opentelemetry-exporter-prometheus ✓ slack-sdk ✗ pytokens ✗ typedload ✓ fastuuid ✗ pymupdf ✓ llama-parse ✓ pytest-mock ✓ pymysql ✓ llama-cloud-services ✓ sphinx ✓ jupyter-core ✓ jsonschema-path ✓ google-cloud-bigtable ✓ griffelib ✓ dulwich ✓ numba ✓ mdit-py-plugins ✗ dbt-common ✓ playwright ✓ beartype ✓ google-cloud-vision ✓ brotli ✓

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.