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

Top 120 - 240

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

Top 240 - 360

identify ✓ pexpect ✓ mpmath ✓ cfgv ✓ asn1crypto ✗ rapidfuzz ✓ google-cloud-secret-manager ✓ awscli ✓ msal-extensions ✗ pypdf ✓ narwhals ✓ jsonpointer ✓ aiofiles ✓ async-timeout ✓ librt ✓ pytest-xdist ✓ paramiko ✓ webencodings ✓ cloudpickle ✗ authlib ✓ ipython ✓ execnet ✗ sqlparse ✓ pydantic-ai-slim ✓ fastjsonschema ✓ google-cloud-batch ✓ pyproject-hooks ✓ datasets ✓ grpc-google-iam-v1 ✓ joserfc ✓ asgiref ✓ databricks-sdk ✓ traitlets ✓ gcsfs ✓ google-cloud-aiplatform ✓ isort ✓ build ✓ psycopg ✓ poetry-core ✓ azure-storage-blob ✓ gunicorn ✓ jsonpatch ✗ google-cloud-kms ✓ google-analytics-admin ✓ babel ✗ google-cloud-compute ✓ psycopg-binary ✓ executing ✗ langsmith ✓ cython ✗ setuptools-scm ✗ cachecontrol ✓ parso ✗ jedi ✓ asyncpg ✓ markdown ✓ pydantic-graph ✓ asttokens ✓ xmltodict ✓ marshmallow ✓ google-cloud-dlp ✓ google-cloud-speech ✓ vcs-versioning ✗ sglang ✓ safetensors ✓ watchdog ✓ google-cloud-pubsub ✓ python-docx ✗ python-json-logger ✓ tornado ✓ matplotlib-inline ✓ playwright ✓ google-cloud-texttospeech ✓ dbt-adapters ✓ structlog ✓ stack-data ✗ tinycss2 ✓ pure-eval ✗ fastuuid ✗ pytokens ✗ fastmcp ✓ kubernetes ✓ pymupdf ✓ google-cloud-logging ✓ weaviate-client ✓ pyee ✓ lz4 ✓ pymongo ✓ aioitertools ✓ py4j ✗ xlsxwriter ✗ tree-sitter ✓ pymysql ✓ dbt-core ✓ flatbuffers ✓ nest-asyncio ✗ mdit-py-plugins ✗ termcolor ✓ tomli-w ✓ brotli ✓ google-cloud-monitoring ✓ croniter ✓ pyzmq ✗ pyperclip ✗ griffelib ✓ google-cloud-tasks ✓ opentelemetry-exporter-prometheus ✓ slack-sdk ✗ opentelemetry-instrumentation-fastapi ✓ pytest-timeout ✗ fastmcp-slim ✓ linkify-it-py ✓ importlib-resources ✓ pycryptodome ✗ pytest-mock ✓ torch ✓ deprecation ✓ debugpy ✗ uc-micro-py ✓ reportlab ✓

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.