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. 127 green packages (35.3%) have dropped support for Python 3.8;
  2. 233 uncolored packages (64.7%) 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 ✗ urllib3 ✓ botocore ✗ setuptools ✓ requests ✗ aiobotocore ✗ certifi ✗ charset-normalizer ✗ idna ✗ typing-extensions ✗ grpcio-status ✓ packaging ✗ python-dateutil ✗ s3transfer ✗ s3fs ✓ six ✓ numpy ✓ pyyaml ✗ fsspec ✗ google-api-core ✗ cryptography ✗ pip ✗ pydantic ✗ cffi ✗ attrs ✗ pandas ✓ pycparser ✗ jinja2 ✓ markupsafe ✓ rsa ✗ protobuf ✓ pyasn1 ✗ jmespath ✗ importlib-metadata ✓ platformdirs ✗ wheel ✗ click ✓ pytz ✗ awscli ✗ zipp ✓ aiohttp ✓ googleapis-common-protos ✗ pydantic-core ✓ filelock ✓ colorama ✗ virtualenv ✗ cachetools ✗ pluggy ✗ pyjwt ✓ google-auth ✗ wrapt ✗ tzdata ✓ jsonschema ✗ pytest ✗ pyasn1-modules ✗ tomli ✓ annotated-types ✗ sniffio ✓ pygments ✗ h11 ✗ anyio ✓ psutil ✓ httpx ✗ rich ✗ pyarrow ✓ sqlalchemy ✗ iniconfig ✗ requests-oauthlib ✗ yarl ✓ multidict ✗ grpcio ✓ httpcore ✗ requests-toolbelt ✗ docutils ✓ tomlkit ✗ pyparsing ✓ frozenlist ✗ aiosignal ✓ pillow ✓ tqdm ✗ oauthlib ✗ distlib ✗ exceptiongroup ✓ werkzeug ✓ scipy ✓ pathspec ✗ beautifulsoup4 ✓ google-cloud-storage ✗ more-itertools ✓ greenlet ✗ soupsieve ✗ pyopenssl ✗ deprecated ✗ propcache ✓ openpyxl ✗ rpds-py ✓ et-xmlfile ✗ isodate ✗ trove-classifiers ✓ async-timeout ✓ referencing ✓ lxml ✗ jsonschema-specifications ✗ aiohappyeyeballs ✓ msgpack ✗ proto-plus ✗ python-dotenv ✗ decorator ✗ grpcio-tools ✓ markdown-it-py ✗ google-cloud-core ✗ flask ✓ sortedcontainers ✓ pynacl ✗ websocket-client ✗ poetry-core ✓ gitpython ✗ coverage ✓ mypy-extensions ✗ mdurl ✗

Top 120 - 240

shellingham ✗ azure-core ✗ psycopg2-binary ✗ asn1crypto ✗ keyring ✓ tenacity ✗ msal ✗ itsdangerous ✓ scikit-learn ✓ langsmith ✓ opentelemetry-api ✗ google-resumable-media ✗ gitdb ✗ smmap ✗ bcrypt ✗ regex ✗ jeepney ✓ typedload ✓ pexpect ✓ alembic ✓ jaraco-classes ✓ dill ✗ ptyprocess ✓ matplotlib ✓ wcwidth ✗ rapidfuzz ✓ secretstorage ✗ fastjsonschema ✗ tabulate ✗ google-crc32c ✓ build ✗ opentelemetry-sdk ✗ paramiko ✗ snowflake-connector-python ✗ blinker ✓ pyproject-hooks ✓ opentelemetry-semantic-conventions ✗ networkx ✓ importlib-resources ✓ threadpoolctl ✓ huggingface-hub ✗ chardet ✗ ruamel-yaml ✗ starlette ✓ google-cloud-bigquery ✗ joblib ✗ backoff ✗ pkginfo ✗ kiwisolver ✓ poetry-plugin-export ✓ sqlparse ✗ fonttools ✗ asgiref ✗ fastapi ✗ google-api-python-client ✗ cycler ✗ dnspython ✓ cachecontrol ✗ py4j ✗ prompt-toolkit ✗ google-auth-oauthlib ✗ xmltodict ✗ defusedxml ✗ docker ✗ awswrangler ✓ poetry ✓ httplib2 ✗ azure-identity ✗ uritemplate ✗ types-requests ✓ azure-storage-blob ✗ marshmallow ✓ gunicorn ✗ msal-extensions ✗ google-auth-httplib2 ✗ dulwich ✓ pytest-cov ✓ cython ✗ babel ✗ cloudpickle ✗ portalocker ✓ tzlocal ✓ langchain ✓ crashtest ✗ cleo ✗ uvicorn ✓ setuptools-scm ✗ grpc-google-iam-v1 ✗ jaraco-functools ✓ contourpy ✓ installer ✓ distro ✗ jaraco-context ✓ openai ✗ ipython ✓ redis ✗ ruamel-yaml-clib ✓ hatchling ✗ toml ✗ pymysql ✗ opentelemetry-proto ✗ nest-asyncio ✗ traitlets ✓ transformers ✓ zstandard ✗ jedi ✗ py ✗ isort ✓ pycodestyle ✓ mccabe ✗ markdown ✗ kubernetes ✗ black ✓ parso ✗ jsonpointer ✗ sentry-sdk ✗ termcolor ✓ opentelemetry-exporter-otlp-proto-common ✗ pendulum ✗ websockets ✓

Top 240 - 360

mako ✗ tornado ✗ webencodings ✓ matplotlib-inline ✗ typer ✗ prometheus-client ✗ opentelemetry-exporter-otlp-proto-http ✗ pyrsistent ✗ asttokens ✗ executing ✗ tokenizers ✓ pyzmq ✗ python-json-logger ✗ multiprocess ✗ types-python-dateutil ✓ orjson ✗ typing-inspect ✗ sympy ✗ stack-data ✗ pure-eval ✗ ply ✓ pygithub ✗ pycryptodome ✗ torch ✓ arrow ✗ argcomplete ✗ scramp ✗ pymongo ✓ opentelemetry-exporter-otlp-proto-grpc ✗ future ✗ thriftpy2 ✗ rich-toolkit ✓ smart-open ✗ ruff ✗ aioitertools ✓ datadog ✗ mypy ✓ mpmath ✗ aiofiles ✗ opentelemetry-instrumentation ✗ nodeenv ✗ python-slugify ✗ pycryptodomex ✗ shapely ✗ backports-tarfile ✓ jsonpatch ✗ identify ✓ google-cloud-pubsub ✗ debugpy ✗ pytest-xdist ✗ google-cloud-secret-manager ✗ snowflake-sqlalchemy ✗ requests-aws4auth ✗ pyspark ✗ mysql-connector-python ✓ requests-file ✓ msrest ✗ pre-commit ✓ opensearch-py ✗ jupyter-core ✓ jupyter-client ✓ setproctitle ✗ slack-sdk ✗ pyflakes ✓ cfgv ✓ lz4 ✓ jiter ✗ croniter ✗ ipykernel ✓ redshift-connector ✗ azure-common ✗ execnet ✗ watchdog ✓ jupyterlab ✗ jsonpath-ng ✗ semver ✗ typeguard ✓ opentelemetry-util-http ✗ rfc3339-validator ✗ tinycss2 ✗ flake8 ✓ elasticsearch ✗ uv ✗ bleach ✓ mistune ✗ nbconvert ✓ comm ✓ opentelemetry-exporter-otlp ✗ tiktoken ✓ notebook ✓ nbformat ✗ xlsxwriter ✗ pytzdata ✗ langchain-core ✓ text-unidecode ✓ safetensors ✗ colorlog ✗ pg8000 ✗ toolz ✗ jupyter-server ✓ pytest-mock ✗ findpython ✗ nbclient ✓ tb-nightly ✓ editables ✗ pbs-installer ✓ cattrs ✗ zope-interface ✗ db-dtypes ✗ google-pasta ✗ ordered-set ✗ sphinx ✓ xlrd ✗ nltk ✗ humanfriendly ✗ dataclasses-json ✗ overrides ✗ argon2-cffi ✗ pytest-asyncio ✓ altair ✓

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.