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

Top 120 - 240

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

Top 240 - 360

jupyter-core ✓ sagemaker ✓ grpc-google-iam-v1 ✗ setuptools-scm ✓ tensorboard ✓ pytest-runner ✓ arrow ✓ multiprocess ✓ pendulum ✓ jupyter-client ✓ sentry-sdk ✗ pycryptodome ✗ jsonpatch ✗ aioitertools ✓ pyspark ✓ bs4 ✓ torch ✓ asttokens ✗ argcomplete ✗ executing ✗ opensearch-py ✗ mpmath ✗ sympy ✓ progressbar2 ✓ absl-py ✗ stack-data ✗ oscrypto ✗ pyodbc ✓ loguru ✗ pure-eval ✗ jupyter-server ✓ ipykernel ✓ asgiref ✓ pymongo ✗ transformers ✓ apache-airflow ✓ pyflakes ✓ nbconvert ✓ types-python-dateutil ✓ elasticsearch ✗ starlette ✓ rfc3339-validator ✗ nbformat ✓ debugpy ✓ zope-interface ✗ types-requests ✓ python-utils ✓ websockets ✓ flake8 ✓ notebook ✓ aenum ✗ kubernetes ✗ uvicorn ✓ asynctest ✗ altair ✓ smart-open ✗ adal ✓ tensorflow ✓ mistune ✗ humanfriendly ✗ pytzdata ✗ tokenizers ✗ pygithub ✗ xlrd ✗ imageio ✓ google-cloud-pubsub ✗ snowflake-sqlalchemy ✓ contextlib2 ✗ tinycss2 ✗ shapely ✗ opentelemetry-api ✓ sentencepiece ✓ google-cloud-secret-manager ✗ requests-file ✓ bleach ✓ comm ✓ retry ✓ typer ✗ pysocks ✓ cinemagoer ✗ imdbpy ✓ openai ✗ h5py ✓ jupyterlab-server ✓ typeguard ✓ astroid ✓ pylint ✓ send2trash ✗ nbclient ✓ gast ✗ mysql-connector-python ✓ pbr ✗ great-expectations ✓ gremlinpython ✓ cattrs ✓ orjson ✓ jupyterlab ✓ argon2-cffi ✗ xgboost ✓ nltk ✗ oauth2client ✓ overrides ✗ notebook-shim ✗ json5 ✓ watchdog ✓ simplejson ✗ slack-sdk ✗ argon2-cffi-bindings ✗ xlsxwriter ✗ tensorflow-estimator ✗ flatbuffers ✓ setproctitle ✗ text-unidecode ✗ google-cloud-bigquery-storage ✗ backports-zoneinfo ✗ seaborn ✓ keras ✓ pandocfilters ✗ pathos ✓ webcolors ✗

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.