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

Top 120 - 240

backoff ✗ scikit-learn ✓ sortedcontainers ✗ markdown-it-py ✓ tabulate ✗ itsdangerous ✓ chardet ✗ poetry-core ✓ mypy-extensions ✗ poetry-plugin-export ✓ gitpython ✗ bcrypt ✗ mdurl ✗ future ✗ matplotlib ✓ py ✗ shellingham ✗ snowflake-connector-python ✓ paramiko ✗ wcwidth ✗ gitdb ✗ opentelemetry-sdk ✓ smmap ✗ keyring ✓ dill ✓ regex ✓ azure-storage-blob ✓ pytest-cov ✓ google-crc32c ✗ sqlparse ✓ threadpoolctl ✓ grpcio-tools ✓ ruamel-yaml ✗ portalocker ✓ google-auth-oauthlib ✗ trove-classifiers ✓ pkginfo ✓ py4j ✗ networkx ✓ secretstorage ✗ jaraco-classes ✓ joblib ✓ build ✓ awswrangler ✓ jeepney ✓ fastjsonschema ✗ google-cloud-bigquery ✗ kiwisolver ✗ blinker ✓ rapidfuzz ✓ msal-extensions ✗ dnspython ✓ fonttools ✓ cycler ✓ pyproject-hooks ✓ marshmallow ✓ cloudpickle ✓ azure-identity ✓ gunicorn ✗ google-api-python-client ✗ prompt-toolkit ✗ xmltodict ✗ alembic ✓ pymysql ✗ asgiref ✓ docker ✓ termcolor ✓ tzlocal ✓ distro ✗ toml ✗ ruamel-yaml-clib ✗ opentelemetry-api ✓ ipython ✓ cython ✗ mccabe ✗ nest-asyncio ✗ cachecontrol ✗ defusedxml ✗ uritemplate ✗ babel ✓ huggingface-hub ✓ scramp ✓ httplib2 ✗ tornado ✓ traitlets ✓ types-requests ✓ google-auth-httplib2 ✗ argcomplete ✗ redis ✗ markdown ✓ pyrsistent ✓ poetry ✓ pycodestyle ✓ isort ✓ jsonpointer ✗ ply ✓ contourpy ✓ pygithub ✗ msrest ✗ mako ✓ grpc-google-iam-v1 ✗ datadog ✗ dulwich ✗ crashtest ✗ jedi ✗ azure-common ✗ fastapi ✓ cleo ✗ black ✓ pycryptodomex ✗ webencodings ✓ parso ✗ matplotlib-inline ✓ pytest-runner ✓ retry ✓ installer ✓ prometheus-client ✓ loguru ✗ redshift-connector ✗ bs4 ✓

Top 240 - 360

tb-nightly ✓ websockets ✓ pendulum ✓ kubernetes ✗ requests-aws4auth ✗ opentelemetry-semantic-conventions ✓ toolz ✗ typer ✗ jsonpath-ng ✗ pyzmq ✗ pycryptodome ✗ pg8000 ✓ orjson ✓ sentry-sdk ✗ uvicorn ✓ transformers ✓ google-cloud-pubsub ✗ typing-inspect ✗ python-json-logger ✗ pyspark ✓ starlette ✓ setuptools-scm ✓ pkgutil-resolve-name ✓ pymongo ✓ asttokens ✗ executing ✗ jsonpatch ✗ sagemaker ✓ jupyter-core ✓ arrow ✓ aioitertools ✓ python-slugify ✗ stack-data ✗ snowflake-sqlalchemy ✓ google-cloud-secret-manager ✗ ipykernel ✓ nbconvert ✓ torch ✓ shapely ✗ pyflakes ✓ croniter ✗ jupyter-client ✓ pure-eval ✗ pytzdata ✗ debugpy ✓ multiprocess ✓ types-python-dateutil ✓ elasticsearch ✗ flake8 ✓ s2sphere ✓ email-validator ✓ pyodbc ✓ opensearch-py ✓ requests-file ✓ apache-airflow ✓ openai ✗ zope-interface ✗ oscrypto ✗ nbformat ✓ smart-open ✗ mysql-connector-python ✓ lazy-object-proxy ✓ google-pasta ✗ tokenizers ✗ progressbar2 ✓ astroid ✓ rfc3339-validator ✗ jupyter-server ✓ notebook ✓ absl-py ✗ opentelemetry-proto ✓ structlog ✓ pylint ✓ humanfriendly ✗ adal ✓ aenum ✗ typeguard ✓ sympy ✓ tensorboard ✓ cattrs ✓ pysocks ✓ click-man ✓ mypy ✓ pytest-xdist ✓ text-unidecode ✗ xlrd ✗ slack-sdk ✗ python-utils ✓ comm ✓ tinycss2 ✓ mistune ✗ bleach ✓ xlsxwriter ✗ google-cloud-aiplatform ✓ altair ✓ lz4 ✓ watchdog ✓ opentelemetry-exporter-otlp-proto-http ✓ execnet ✓ monotonic ✓ nbclient ✓ mpmath ✗ pre-commit ✓ nodeenv ✗ jupyterlab-server ✓ opentelemetry-exporter-otlp-proto-grpc ✓ google-cloud-bigquery-storage ✗ pbr ✗ asynctest ✗ pytest-mock ✓ argon2-cffi ✗ jupyterlab ✓ identify ✓ ujson ✓ appdirs ✗ db-dtypes ✗ h5py ✓ imageio ✓ aiofiles ✓ google-cloud-appengine-logging ✗

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.