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

Top 120 - 240

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

Top 240 - 360

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

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.