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

Top 120 - 240

python-dotenv ✓ pathspec ✓ bcrypt ✗ gitpython ✗ tenacity ✓ regex ✓ poetry-core ✓ mypy-extensions ✗ rich ✗ httpcore ✓ httpx ✓ poetry-plugin-export ✓ py ✗ threadpoolctl ✓ paramiko ✗ google-auth-oauthlib ✗ ruamel-yaml ✗ dill ✓ joblib ✓ gitdb ✗ keyring ✓ smmap ✗ snowflake-connector-python ✓ networkx ✓ kiwisolver ✗ markdown-it-py ✓ sortedcontainers ✗ google-crc32c ✗ cycler ✓ portalocker ✓ azure-storage-blob ✓ mdurl ✗ build ✓ shellingham ✗ pymysql ✗ py4j ✗ sqlparse ✓ tzlocal ✓ jaraco-classes ✓ nest-asyncio ✗ fonttools ✓ secretstorage ✗ fastjsonschema ✗ pytest-cov ✓ jeepney ✓ msal-extensions ✗ awswrangler ✓ google-api-python-client ✗ grpcio-tools ✓ marshmallow ✓ pkginfo ✗ trove-classifiers ✓ cython ✗ prompt-toolkit ✗ pyproject-hooks ✓ xmltodict ✗ rapidfuzz ✓ azure-identity ✓ google-cloud-bigquery ✗ scramp ✓ cloudpickle ✓ toml ✗ uritemplate ✗ ruamel-yaml-clib ✗ traitlets ✓ httplib2 ✗ distro ✗ ipython ✓ pyrsistent ✓ defusedxml ✗ google-auth-httplib2 ✗ termcolor ✓ ply ✓ docker ✓ dnspython ✓ blinker ✓ cachecontrol ✗ requests-aws4auth ✗ mccabe ✗ markdown ✓ tornado ✓ babel ✓ msrest ✗ azure-common ✗ gunicorn ✗ contourpy ✓ alembic ✓ jedi ✗ jsonpointer ✗ poetry ✓ redis ✗ redshift-connector ✗ matplotlib-inline ✓ webencodings ✓ future ✗ toolz ✗ parso ✗ pycryptodomex ✗ tb-nightly ✓ huggingface-hub ✓ pg8000 ✓ prometheus-client ✓ isort ✓ crashtest ✗ jsonpath-ng ✗ pycodestyle ✓ dulwich ✗ pygithub ✗ typedload ✓ pendulum ✓ cleo ✗ pyzmq ✗ datadog ✗ mako ✓ black ✓ fastapi ✓ kubernetes ✗ retry ✓ grpc-google-iam-v1 ✗ pkgutil-resolve-name ✓

Top 240 - 360

installer ✓ types-requests ✓ python-json-logger ✗ google-pasta ✗ jupyter-core ✓ pycryptodome ✗ jsonpatch ✗ multiprocess ✓ sentry-sdk ✗ tensorboard ✓ argcomplete ✗ arrow ✓ progressbar2 ✓ opensearch-py ✗ torch ✓ jupyter-client ✓ aioitertools ✓ asttokens ✗ pyspark ✓ pytzdata ✗ ipykernel ✓ executing ✗ pymongo ✗ transformers ✓ pytest-runner ✓ setuptools-scm ✓ appdirs ✗ typing-inspect ✗ stack-data ✗ sagemaker ✓ pure-eval ✗ jupyter-server ✓ websockets ✓ asgiref ✓ types-python-dateutil ✓ elasticsearch ✗ absl-py ✗ debugpy ✓ oscrypto ✗ python-utils ✓ pyodbc ✓ bs4 ✓ nbformat ✓ nbconvert ✓ starlette ✓ typer ✗ aenum ✗ uvicorn ✓ zope-interface ✗ pyflakes ✓ loguru ✗ tokenizers ✗ rfc3339-validator ✗ smart-open ✗ google-cloud-pubsub ✗ notebook ✓ shapely ✗ altair ✓ adal ✓ opentelemetry-api ✓ snowflake-sqlalchemy ✓ google-cloud-secret-manager ✗ orjson ✓ flake8 ✓ apache-airflow ✓ humanfriendly ✗ mistune ✗ orbax-checkpoint ✓ tensorflow ✓ tinycss2 ✓ h5py ✓ xlrd ✗ requests-file ✓ comm ✓ imageio ✓ sentencepiece ✓ asynctest ✗ typeguard ✓ openai ✗ structlog ✓ bleach ✓ astroid ✓ jupyterlab-server ✓ mysql-connector-python ✓ pysocks ✓ nltk ✗ nbclient ✓ sympy ✓ mpmath ✗ pylint ✓ pytest-xdist ✓ cattrs ✓ gremlinpython ✓ great-expectations ✓ argon2-cffi ✗ pbr ✗ tensorstore ✓ send2trash ✗ watchdog ✓ jupyterlab ✓ oauth2client ✓ gast ✗ flatbuffers ✓ argon2-cffi-bindings ✗ xgboost ✓ xlsxwriter ✗ execnet ✓ slack-sdk ✗ setproctitle ✗ overrides ✗ google-cloud-bigquery-storage ✗ json5 ✓ notebook-shim ✗ mypy ✓ croniter ✗ monotonic ✓ opentelemetry-sdk ✓ contextlib2 ✗ text-unidecode ✗ responses ✓

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.