Python 3.7 Readiness

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

What is this about?

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

  1. 238 green packages (66.1%) have dropped support for Python 3.7;
  2. 122 white packages (33.9%) still support Python 3.7.

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

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

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

How do you identify Python 3.7 support?

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

Top 120

boto3 ✓ botocore ✓ urllib3 ✓ requests ✓ setuptools ✓ certifi ✗ idna ✗ charset-normalizer ✗ packaging ✓ typing-extensions ✓ python-dateutil ✗ aiobotocore ✓ grpcio-status ✓ s3transfer ✓ six ✓ pyyaml ✓ fsspec ✓ numpy ✓ s3fs ✓ wheel ✓ cryptography ✗ pip ✓ pydantic ✓ google-api-core ✗ pandas ✓ cffi ✓ attrs ✗ awscli ✓ importlib-metadata ✓ pycparser ✓ rsa ✗ jmespath ✗ pyasn1 ✓ click ✓ zipp ✓ protobuf ✓ rich ✓ markupsafe ✓ pytz ✗ platformdirs ✓ jinja2 ✓ colorama ✗ aiohttp ✓ tomli ✓ pyjwt ✓ pydantic-core ✓ pytest ✓ pluggy ✓ virtualenv ✓ jsonschema ✓ googleapis-common-protos ✗ google-auth ✗ filelock ✓ cachetools ✗ pyarrow ✓ wrapt ✓ sqlalchemy ✗ docutils ✓ pyasn1-modules ✓ pygments ✓ annotated-types ✓ greenlet ✗ requests-oauthlib ✗ yarl ✓ requests-toolbelt ✗ iniconfig ✗ tzdata ✓ psutil ✓ pyparsing ✓ multidict ✓ werkzeug ✓ exceptiongroup ✓ soupsieve ✓ oauthlib ✗ beautifulsoup4 ✓ frozenlist ✓ aiosignal ✗ distlib ✗ grpcio ✓ more-itertools ✓ async-timeout ✓ isodate ✗ tomlkit ✓ scipy ✓ tqdm ✗ pillow ✓ pathspec ✓ deprecated ✗ decorator ✗ anyio ✓ sortedcontainers ✗ openpyxl ✗ markdown-it-py ✓ httpx ✓ et-xmlfile ✓ pyopenssl ✗ flask ✓ sniffio ✓ rpds-py ✓ proto-plus ✗ h11 ✗ coverage ✓ httpcore ✓ jsonschema-specifications ✓ lxml ✗ mypy-extensions ✗ dill ✓ mdurl ✗ python-dotenv ✓ propcache ✓ azure-core ✓ google-cloud-storage ✗ referencing ✓ gitpython ✗ asn1crypto ✗ msgpack ✓ tenacity ✓ pexpect ✓ pynacl ✗ aiohappyeyeballs ✓

Top 120 - 240

ptyprocess ✓ msal ✗ asgiref ✓ websocket-client ✓ itsdangerous ✓ poetry-core ✓ google-cloud-core ✗ opentelemetry-sdk ✓ alembic ✓ psycopg2-binary ✓ gitdb ✗ smmap ✗ keyring ✓ google-resumable-media ✗ importlib-resources ✓ trove-classifiers ✓ scikit-learn ✓ pycodestyle ✓ snowflake-connector-python ✓ regex ✓ blinker ✓ fastapi ✓ opentelemetry-api ✓ bcrypt ✗ wcwidth ✗ shellingham ✗ jaraco-classes ✓ chardet ✗ pkginfo ✓ backoff ✗ jeepney ✓ secretstorage ✗ ruamel-yaml ✗ google-crc32c ✓ py4j ✗ mccabe ✗ tabulate ✗ matplotlib ✓ poetry-plugin-export ✓ paramiko ✗ isort ✓ fastjsonschema ✗ pytest-cov ✓ build ✓ azure-storage-blob ✓ grpcio-tools ✓ cloudpickle ✓ portalocker ✓ google-cloud-bigquery ✗ gunicorn ✗ dnspython ✓ google-api-python-client ✗ pyproject-hooks ✓ networkx ✓ mock ✗ azure-identity ✓ sqlparse ✓ py ✗ threadpoolctl ✓ httplib2 ✗ marshmallow ✓ rapidfuzz ✓ prompt-toolkit ✗ msal-extensions ✗ google-auth-oauthlib ✗ joblib ✓ awswrangler ✓ kiwisolver ✓ docker ✓ termcolor ✓ typedload ✓ cython ✗ ipython ✓ fonttools ✓ nest-asyncio ✗ argcomplete ✗ starlette ✓ babel ✓ cycler ✓ ply ✓ redis ✓ ruamel-yaml-clib ✓ tzlocal ✓ xmltodict ✗ defusedxml ✗ uritemplate ✗ pymysql ✗ opentelemetry-semantic-conventions ✓ black ✓ sentry-sdk ✗ mako ✓ types-requests ✓ setuptools-scm ✓ pendulum ✓ google-auth-httplib2 ✗ cachecontrol ✓ traitlets ✓ markdown ✓ tornado ✓ pyflakes ✓ pyrsistent ✓ huggingface-hub ✓ jedi ✗ distro ✗ nodeenv ✗ uvicorn ✓ poetry ✓ prometheus-client ✓ openai ✓ flake8 ✓ transformers ✓ toml ✗ kubernetes ✗ contourpy ✓ scramp ✓ pyzmq ✗ dulwich ✓ parso ✗ croniter ✗ grpc-google-iam-v1 ✗

Top 240 - 360

debugpy ✓ crashtest ✗ pymongo ✓ cleo ✗ matplotlib-inline ✓ typer ✗ python-slugify ✗ webencodings ✓ installer ✓ websockets ✓ multiprocess ✓ jsonpointer ✗ pycryptodomex ✗ sphinx ✓ orjson ✓ pycryptodome ✗ requests-aws4auth ✗ stack-data ✗ asttokens ✓ pytest-mock ✓ mypy ✓ typing-inspect ✗ hatchling ✓ executing ✓ arrow ✓ ipykernel ✓ zope-interface ✓ redshift-connector ✗ opentelemetry-proto ✓ python-json-logger ✗ loguru ✗ lazy-object-proxy ✓ aiofiles ✓ pytzdata ✗ jupyter-core ✓ colorlog ✗ pure-eval ✗ jupyter-client ✓ aioitertools ✓ datadog ✗ types-python-dateutil ✓ identify ✓ setproctitle ✓ smart-open ✗ pre-commit ✓ bs4 ✓ pytest-runner ✓ astroid ✓ msrest ✗ elasticsearch ✓ pygithub ✓ azure-common ✗ jupyterlab ✓ opentelemetry-exporter-otlp-proto-grpc ✓ future ✗ jsonpath-ng ✓ opentelemetry-exporter-otlp ✓ rfc3339-validator ✗ pg8000 ✓ opentelemetry-exporter-otlp-proto-http ✓ nbconvert ✓ nbformat ✓ retry ✓ shapely ✗ google-cloud-secret-manager ✗ tokenizers ✗ mysql-connector-python ✓ google-cloud-pubsub ✗ torch ✓ hypothesis ✓ ordered-set ✗ pylint ✓ nbclient ✓ apache-airflow ✓ responses ✓ comm ✓ cfgv ✓ snowflake-sqlalchemy ✓ opensearch-py ✓ bleach ✓ requests-file ✓ mdit-py-plugins ✓ jupyter-server ✓ pydantic-settings ✓ jsonpatch ✗ appdirs ✗ pyspark ✓ jaraco-functools ✓ flask-caching ✓ notebook ✓ snowballstemmer ✗ mistune ✗ tinycss2 ✓ sympy ✓ opentelemetry-exporter-otlp-proto-common ✓ pkgutil-resolve-name ✓ slack-sdk ✗ google-pasta ✗ oscrypto ✗ tox ✓ pytest-xdist ✓ toolz ✓ jupyterlab-server ✓ jaraco-context ✓ ruff ✗ watchdog ✓ xlrd ✗ langchain-core ✓ humanfriendly ✗ flask-wtf ✓ aenum ✗ lz4 ✓ django ✓ connexion ✓ imagesize ✗ db-dtypes ✗ typeguard ✓ google-cloud-aiplatform ✓ tensorboard ✓ alabaster ✓

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.