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. 348 green packages (96.7%) have dropped support for Python 3.5;
  2. 12 uncolored packages (3.3%) 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 ✓ packaging ✓ typing-extensions ✓ certifi ✓ urllib3 ✓ idna ✓ requests ✓ charset-normalizer ✓ setuptools ✓ cryptography ✓ botocore ✓ cffi ✓ pluggy ✓ pygments ✓ pyyaml ✓ aiobotocore ✓ numpy ✓ python-dateutil ✗ pydantic ✓ six ✓ click ✓ pytest ✓ anyio ✓ pycparser ✓ iniconfig ✓ pydantic-core ✓ annotated-types ✓ attrs ✓ h11 ✓ fsspec ✓ protobuf ✓ s3transfer ✓ httpx ✓ typing-inspection ✓ httpcore ✓ grpcio-status ✓ pandas ✓ markupsafe ✓ platformdirs ✓ python-dotenv ✓ pip ✓ pathspec ✓ filelock ✓ jinja2 ✓ litellm ✓ s3fs ✓ tqdm ✓ pyjwt ✓ aiohttp ✓ uvicorn ✓ yarl ✓ rich ✓ markdown-it-py ✓ rpds-py ✓ starlette ✓ jsonschema ✓ propcache ✓ multidict ✓ jmespath ✓ fastapi ✓ aiohappyeyeballs ✓ websockets ✓ ghapi ✓ frozenlist ✓ virtualenv ✓ referencing ✓ wheel ✓ mdurl ✓ jsonschema-specifications ✓ aiosignal ✓ google-auth ✓ pytz ✗ pillow ✓ pyasn1 ✓ textual ✓ trove-classifiers ✓ opentelemetry-semantic-conventions ✓ importlib-metadata ✓ annotated-doc ✓ huggingface-hub ✓ zipp ✓ sniffio ✓ googleapis-common-protos ✓ tzdata ✓ opentelemetry-api ✓ soupsieve ✓ hatchling ✓ opentelemetry-sdk ✓ beautifulsoup4 ✓ wrapt ✓ regex ✓ greenlet ✓ google-api-core ✓ tenacity ✓ pydantic-settings ✓ openai ✓ pyarrow ✓ sglang ✓ pyasn1-modules ✓ python-multipart ✓ distro ✓ grpcio ✓ jiter ✓ lxml ✓ scipy ✓ watchfiles ✓ sqlalchemy ✓ opentelemetry-proto ✓ pyparsing ✓ colorama ✓ tomli ✓ opentelemetry-instrumentation ✓ opentelemetry-exporter-otlp-proto-http ✓ typer ✓ multiprocess ✓ psutil ✓ shellingham ✓ mcp ✓ editables ✓ exceptiongroup ✓

Top 120 - 240

requests-oauthlib ✗ dnspython ✓ opentelemetry-exporter-otlp-proto-common ✓ proto-plus ✓ openpyxl ✓ distlib ✓ more-itertools ✓ cachetools ✓ et-xmlfile ✓ python-discovery ✓ oauthlib ✓ tomlkit ✓ sse-starlette ✓ opentelemetry-exporter-otlp-proto-grpc ✓ coverage ✓ hf-xet ✓ ruff ✓ wcwidth ✓ mypy-extensions ✓ gitpython ✓ pytest-asyncio ✓ docstring-parser ✓ networkx ✓ smmap ✓ google-genai ✓ msgpack ✓ rsa ✓ requests-toolbelt ✗ tiktoken ✓ langchain ✓ pyopenssl ✓ psycopg2-binary ✓ tokenizers ✓ redis ✓ uvloop ✓ fonttools ✓ grpcio-tools ✓ sortedcontainers ✗ httptools ✓ email-validator ✓ matplotlib ✓ prompt-toolkit ✓ defusedxml ✗ google-cloud-storage ✓ gitdb ✓ werkzeug ✓ pytest-json-ctrf ✓ opentelemetry-instrumentation-requests ✓ tabulate ✓ dill ✓ chardet ✓ keyring ✓ awscli ✓ ptyprocess ✓ pytest-cov ✓ pynacl ✓ jaraco-functools ✓ pexpect ✓ azure-identity ✓ jaraco-classes ✓ azure-core ✓ contourpy ✓ jeepney ✓ isodate ✓ nodeenv ✓ secretstorage ✓ kiwisolver ✓ scikit-learn ✓ h2 ✓ orjson ✓ websocket-client ✓ hpack ✓ tzlocal ✓ alembic ✓ jaraco-context ✓ httpx-sse ✓ opentelemetry-util-http ✓ toml ✗ docutils ✓ pre-commit ✓ hyperframe ✓ docker ✓ bcrypt ✓ joblib ✓ decorator ✓ itsdangerous ✓ mypy ✓ identify ✓ msal ✓ opentelemetry-exporter-otlp ✓ cfgv ✓ mako ✓ xxhash ✓ google-cloud-core ✓ ydb ✓ threadpoolctl ✓ uv ✓ anthropic ✓ transformers ✓ flask ✓ ruamel-yaml ✓ pytest-xdist ✓ opentelemetry-instrumentation-threading ✓ execnet ✓ cycler ✓ rapidfuzz ✓ google-resumable-media ✓ datasets ✓ google-crc32c ✓ google-api-python-client ✓ ipython ✓ blinker ✓ black ✓ sentry-sdk ✓ snowflake-connector-python ✓ zstandard ✓ async-timeout ✓ uritemplate ✓ deprecated ✗ prometheus-client ✓

Top 240 - 360

google-cloud-bigquery ✓ sympy ✓ httplib2 ✓ mpmath ✓ google-auth-httplib2 ✓ google-cloud-secret-manager ✓ langchain-core ✓ google-auth-oauthlib ✓ backoff ✓ traitlets ✓ asn1crypto ✗ google-cloud-aiplatform ✓ authlib ✓ msal-extensions ✓ jsonpointer ✓ weaviate-client ✓ joserfc ✓ google-cloud-batch ✓ aiofiles ✓ narwhals ✓ paramiko ✓ librt ✓ pyproject-hooks ✓ truststore ✓ fastjsonschema ✓ poetry-core ✓ pytest-timeout ✓ google-cloud-kms ✓ pypdf ✓ cloudpickle ✓ pydantic-ai-slim ✓ asgiref ✓ executing ✓ google-analytics-admin ✓ gcsfs ✓ sqlparse ✓ build ✓ google-cloud-compute ✓ webencodings ✗ parso ✓ jedi ✓ asttokens ✓ isort ✓ databricks-sdk ✓ azure-storage-blob ✓ gunicorn ✓ psycopg ✓ matplotlib-inline ✓ cfn-lint ✓ grpc-google-iam-v1 ✓ babel ✓ jsonpatch ✓ stack-data ✗ pure-eval ✓ httpx2 ✓ cython ✓ google-cloud-dlp ✓ setuptools-scm ✓ httpcore2 ✓ psycopg-binary ✓ markdown ✓ google-cloud-texttospeech ✓ cachecontrol ✓ xmltodict ✓ langsmith ✓ fastuuid ✓ google-cloud-speech ✓ google-cloud-pubsub ✓ pydantic-graph ✓ types-requests ✓ flatbuffers ✓ marshmallow ✓ vcs-versioning ✓ termcolor ✓ pymupdf ✓ dbt-adapters ✓ asyncpg ✓ python-docx ✓ cbor2 ✓ tornado ✓ mdit-py-plugins ✓ safetensors ✓ python-json-logger ✓ cyclopts ✓ pyperclip ✗ griffelib ✓ pytokens ✓ structlog ✓ fastmcp ✓ linkify-it-py ✓ types-toml ✓ beartype ✓ kubernetes ✓ pymongo ✓ watchdog ✓ tinycss2 ✓ jsonschema-path ✓ uc-micro-py ✓ xlsxwriter ✓ py4j ✓ pytest-mock ✓ onnxruntime ✓ aioitertools ✓ opentelemetry-exporter-prometheus ✓ playwright ✓ types-certifi ✓ jsonref ✓ py-key-value-aio ✓ pathable ✓ pyzmq ✓ lz4 ✓ grpclib ✓ fastmcp-slim ✓ google-cloud-logging ✓ rich-rst ✓ modal ✓ google-cloud-tasks ✓ dbt-core ✓ pytest-rerunfailures ✓ synchronicity ✓

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.