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. 246 green packages (68.3%) have dropped support for Python 3.7;
  2. 114 uncolored packages (31.7%) still support Python 3.7.

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

Top 120 - 240

itsdangerous ✓ poetry-core ✓ google-cloud-core ✗ gitdb ✗ psycopg2-binary ✓ smmap ✗ sortedcontainers ✗ opentelemetry-api ✓ httplib2 ✗ mdurl ✗ google-resumable-media ✗ shellingham ✗ alembic ✓ pexpect ✓ asgiref ✓ dill ✓ ptyprocess ✓ scikit-learn ✓ keyring ✓ blinker ✓ tabulate ✗ fastapi ✓ mypy-extensions ✗ typedload ✓ regex ✓ backoff ✗ bcrypt ✗ importlib-resources ✓ grpcio-tools ✓ google-crc32c ✓ wcwidth ✗ snowflake-connector-python ✓ paramiko ✗ isort ✓ azure-storage-blob ✓ jaraco-classes ✓ fastjsonschema ✗ sqlparse ✓ jeepney ✓ pycodestyle ✓ secretstorage ✗ matplotlib ✓ ruamel-yaml ✓ chardet ✗ awswrangler ✓ portalocker ✓ opentelemetry-sdk ✓ build ✓ azure-identity ✓ gunicorn ✗ google-cloud-bigquery ✗ pytest-cov ✓ pyproject-hooks ✓ threadpoolctl ✓ rapidfuzz ✓ pkginfo ✓ networkx ✓ dnspython ✓ starlette ✓ google-api-python-client ✗ marshmallow ✓ types-requests ✓ msal-extensions ✗ prompt-toolkit ✗ opentelemetry-semantic-conventions ✓ google-auth-oauthlib ✗ kiwisolver ✓ joblib ✓ fonttools ✓ nest-asyncio ✗ cycler ✓ babel ✓ pymysql ✗ ipython ✓ cachecontrol ✓ defusedxml ✗ xmltodict ✗ argcomplete ✗ py ✗ distro ✗ uvicorn ✓ pendulum ✓ docker ✓ tzlocal ✓ cython ✗ traitlets ✓ uritemplate ✗ poetry-plugin-export ✓ poetry ✓ ruamel-yaml-clib ✓ google-auth-httplib2 ✗ termcolor ✓ thriftpy2 ✗ jedi ✗ hatchling ✓ redis ✓ fastavro ✓ dulwich ✓ prometheus-client ✓ python-slugify ✗ scramp ✓ croniter ✗ openai ✓ kubernetes ✗ grpc-google-iam-v1 ✗ crashtest ✗ cleo ✗ parso ✗ matplotlib-inline ✓ toml ✗ mako ✓ tornado ✓ installer ✓ websockets ✓ webencodings ✓ setuptools-scm ✓ contourpy ✓ jaraco-functools ✓ sentry-sdk ✗ pyzmq ✗

Top 240 - 360

orjson ✓ jaraco-context ✓ ply ✓ pyrsistent ✓ markdown ✓ jsonpointer ✗ huggingface-hub ✓ black ✓ requests-aws4auth ✗ asttokens ✓ opentelemetry-exporter-otlp ✓ typer ✗ opentelemetry-proto ✓ pycryptodome ✗ pygithub ✓ mccabe ✗ loguru ✗ python-json-logger ✓ avro-python3 ✗ executing ✓ apache-beam ✓ langchain-community ✓ transformers ✓ redshift-connector ✗ stack-data ✗ jsonpath-ng ✓ pymongo ✓ setproctitle ✓ opentelemetry-exporter-otlp-proto-grpc ✓ pure-eval ✗ lazy-object-proxy ✓ msrest ✗ opensearch-py ✓ azure-common ✗ bs4 ✓ future ✗ aioitertools ✓ colorlog ✗ arrow ✓ opentelemetry-exporter-otlp-proto-http ✓ debugpy ✓ pg8000 ✓ python-daemon ✓ types-python-dateutil ✓ pytest-runner ✓ pycryptodomex ✗ mdit-py-plugins ✓ opentelemetry-exporter-otlp-proto-common ✓ smart-open ✗ pytzdata ✗ rfc3339-validator ✗ flask-caching ✓ jupyter-client ✓ jupyter-core ✓ datadog ✗ tb-nightly ✓ typing-inspect ✗ tokenizers ✗ ipykernel ✓ retry ✓ pyspark ✓ shapely ✗ google-cloud-pubsub ✗ toolz ✓ jsonpatch ✗ slack-sdk ✗ multiprocess ✓ mysql-connector-python ✓ mypy ✓ elasticsearch ✓ pemja ✓ apache-flink ✓ apache-flink-libraries ✓ structlog ✓ langchain ✓ google-cloud-secret-manager ✗ backports-tarfile ✓ notebook ✓ nbformat ✓ snowflake-sqlalchemy ✓ nbconvert ✓ jupyterlab ✓ comm ✓ sympy ✓ torch ✓ nbclient ✓ text-unidecode ✗ rich-argparse ✓ ruff ✗ aiofiles ✓ nodeenv ✗ jupyter-server ✓ pytest-xdist ✓ mistune ✓ requests-file ✓ bleach ✓ xlsxwriter ✗ ordered-set ✗ execnet ✓ aenum ✗ identify ✓ tinycss2 ✓ xlrd ✗ universal-pathlib ✓ apache-airflow-providers-common-sql ✓ langchain-core ✓ linkify-it-py ✗ pre-commit ✓ connexion ✓ pkgutil-resolve-name ✓ google-pasta ✗ python-multipart ✓ marshmallow-oneofschema ✓ jiter ✓ fastapi-cli ✓ apache-airflow ✓ pyflakes ✓ flask-wtf ✓ cfgv ✓ lz4 ✓

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.