Python 3.5 Readiness

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

What is this about?

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

  1. 340 green packages (94.4%) have dropped support for Python 3.5;
  2. 20 uncolored packages (5.6%) still support Python 3.5.

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

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

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

How do you identify Python 3.5 support?

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

Top 120

boto3 ✓ urllib3 ✓ packaging ✓ setuptools ✓ botocore ✓ certifi ✓ requests ✓ typing-extensions ✓ idna ✓ charset-normalizer ✓ aiobotocore ✓ python-dateutil ✗ six ✓ cryptography ✓ grpcio-status ✓ cffi ✓ s3transfer ✓ pyyaml ✓ numpy ✓ pycparser ✓ s3fs ✓ pip ✓ pydantic ✓ fsspec ✓ protobuf ✓ click ✓ pluggy ✓ pandas ✓ attrs ✓ pydantic-core ✓ pygments ✓ markupsafe ✓ anyio ✓ platformdirs ✓ jmespath ✓ h11 ✓ wheel ✓ annotated-types ✓ filelock ✓ jinja2 ✓ pathspec ✓ importlib-metadata ✓ pytest ✓ rsa ✓ pyjwt ✓ awscli ✓ httpx ✓ pytz ✗ zipp ✓ httpcore ✓ typing-inspection ✓ pyasn1 ✓ iniconfig ✓ python-dotenv ✓ aiohttp ✓ grpcio ✓ jsonschema ✓ rich ✓ google-auth ✓ multidict ✓ tzdata ✓ google-api-core ✓ yarl ✓ tqdm ✓ virtualenv ✓ colorama ✓ googleapis-common-protos ✓ tomli ✓ frozenlist ✓ propcache ✓ referencing ✓ rpds-py ✓ pyasn1-modules ✓ wrapt ✓ requests-oauthlib ✗ markdown-it-py ✓ aiosignal ✓ trove-classifiers ✓ sqlalchemy ✓ greenlet ✓ pyarrow ✓ jsonschema-specifications ✓ mdurl ✓ scipy ✓ pillow ✓ yandexcloud ✓ google-genai ✓ uvicorn ✓ aiohappyeyeballs ✓ psutil ✓ opentelemetry-proto ✓ pyparsing ✓ oauthlib ✓ grpcio-tools ✓ starlette ✓ fastapi ✓ openpyxl ✓ et-xmlfile ✓ opentelemetry-semantic-conventions ✓ tomlkit ✓ cachetools ✓ tenacity ✓ opentelemetry-sdk ✓ opentelemetry-exporter-otlp-proto-grpc ✓ regex ✓ opentelemetry-api ✓ lxml ✓ shellingham ✓ beautifulsoup4 ✓ soupsieve ✓ sniffio ✓ requests-toolbelt ✗ distlib ✓ langchain ✓ more-itertools ✓ hatchling ✓ docutils ✓ annotated-doc ✓ websocket-client ✓ exceptiongroup ✓

Top 120 - 240

pyopenssl ✓ typer ✓ proto-plus ✓ flask ✓ mypy-extensions ✓ google-cloud-storage ✓ opentelemetry-exporter-otlp-proto-http ✓ werkzeug ✓ websockets ✓ coverage ✓ pynacl ✓ psycopg2-binary ✓ pydantic-settings ✓ msgpack ✓ isodate ✓ sortedcontainers ✗ huggingface-hub ✓ wcwidth ✓ openai ✓ decorator ✓ textual ✓ dnspython ✓ networkx ✓ opentelemetry-exporter-otlp-proto-common ✓ azure-identity ✓ azure-core ✓ opentelemetry-exporter-otlp ✓ distro ✓ scikit-learn ✓ snowflake-connector-python ✓ msal ✓ poetry-core ✓ joblib ✓ python-multipart ✓ redis ✓ gitpython ✓ keyring ✓ bcrypt ✓ ruff ✓ async-timeout ✓ matplotlib ✓ tabulate ✓ fonttools ✓ ruamel-yaml ✓ google-cloud-core ✓ itsdangerous ✓ pexpect ✓ types-requests ✓ threadpoolctl ✓ ptyprocess ✓ jaraco-classes ✓ secretstorage ✓ jiter ✓ google-cloud-aiplatform ✓ alembic ✓ jeepney ✓ asn1crypto ✗ zstandard ✓ smmap ✓ prompt-toolkit ✓ deprecated ✗ kiwisolver ✓ gitdb ✓ editables ✓ google-crc32c ✓ opentelemetry-instrumentation ✓ google-resumable-media ✓ pytest-cov ✓ jaraco-context ✓ chardet ✓ jaraco-functools ✓ rapidfuzz ✓ blinker ✓ orjson ✓ kubernetes ✓ defusedxml ✗ tzlocal ✓ paramiko ✓ prometheus-client ✓ pyproject-hooks ✓ backoff ✓ contourpy ✓ google-api-python-client ✓ dill ✓ build ✓ pytest-asyncio ✓ fastjsonschema ✗ cycler ✓ google-cloud-bigquery ✓ gcsfs ✓ setuptools-scm ✓ email-validator ✓ opensearch-py ✓ msal-extensions ✓ mako ✓ watchfiles ✓ google-auth-oauthlib ✓ azure-storage-blob ✓ uritemplate ✓ httplib2 ✓ docker ✓ google-auth-httplib2 ✓ marshmallow ✓ uv ✓ sqlparse ✓ tokenizers ✓ babel ✓ requests-aws4auth ✓ cloudpickle ✓ google-cloud-secret-manager ✓ transformers ✓ aliyun-python-sdk-core ✓ nodeenv ✓ hf-xet ✓ ipython ✓ aiofiles ✓ docstring-parser ✓ opentelemetry-exporter-prometheus ✓ sympy ✓ google-cloud-batch ✓

Top 240 - 360

xmltodict ✓ jsonpointer ✓ grpcio-health-checking ✓ mypy ✓ py4j ✓ uvloop ✓ parso ✓ traitlets ✓ pre-commit ✓ black ✓ tornado ✓ google-analytics-admin ✓ opentelemetry-util-http ✓ jedi ✓ mpmath ✗ identify ✓ cython ✓ importlib-resources ✓ executing ✓ gunicorn ✓ events ✗ litellm ✓ cfgv ✓ python-json-logger ✓ typedload ✓ opentelemetry-instrumentation-requests ✓ tiktoken ✓ matplotlib-inline ✓ asttokens ✓ toml ✗ asgiref ✓ dbt-core ✓ mcp ✓ httptools ✓ nest-asyncio ✗ ply ✓ durationpy ✓ grpc-google-iam-v1 ✓ langchain-core ✓ cachecontrol ✓ markdown ✓ sentry-sdk ✓ pytest-xdist ✓ stack-data ✗ pure-eval ✓ typer-slim ✓ webencodings ✗ pandas-stubs ✓ httpx-sse ✓ execnet ✓ pymongo ✓ sse-starlette ✓ awswrangler ✓ databricks-sdk ✓ termcolor ✓ watchdog ✓ typing-inspect ✗ aioitertools ✓ isort ✓ pkginfo ✓ jsonpatch ✓ xxhash ✓ pymysql ✓ authlib ✓ dulwich ✓ debugpy ✓ opensearch-protobufs ✓ h2 ✓ hyperframe ✓ msrest ✓ jsonpath-ng ✓ hpack ✓ dbt-adapters ✓ pyzmq ✓ pytest-mock ✓ cattrs ✓ ruamel-yaml-clib ✓ poetry ✓ tree-sitter ✓ mccabe ✓ snowflake-sqlalchemy ✓ dataclasses-json ✓ pycryptodome ✓ multiprocess ✓ dbt-common ✓ slack-sdk ✓ lz4 ✓ argcomplete ✓ pendulum ✓ databricks-sql-connector ✓ sphinx ✓ requests-file ✓ torch ✓ rich-toolkit ✓ croniter ✗ ray ✓ rfc3339-validator ✗ pygithub ✓ google-cloud-monitoring ✓ cleo ✓ google-cloud-speech ✓ arrow ✓ installer ✓ google-cloud-vision ✓ crashtest ✓ deepdiff ✓ google-cloud-kms ✓ semver ✓ jupyter-core ✓ azure-common ✗ notebook ✓ datadog ✓ smart-open ✓ google-cloud-compute ✓ google-cloud-tasks ✓ ipykernel ✓ google-cloud-dlp ✓ langsmith ✓ tinycss2 ✓ text-unidecode ✗

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.