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

Top 120 - 240

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

Top 240 - 360

backoff ✓ deprecated ✗ sympy ✓ rapidfuzz ✓ google-cloud-secret-manager ✓ pypdf ✓ mpmath ✓ awscli ✓ narwhals ✓ msal-extensions ✓ librt ✓ asn1crypto ✗ langchain-core ✓ executing ✓ cloudpickle ✓ jsonpointer ✓ aiofiles ✓ asttokens ✓ fastuuid ✓ paramiko ✓ jedi ✓ parso ✓ authlib ✓ google-cloud-aiplatform ✓ google-cloud-batch ✓ matplotlib-inline ✓ pytest-xdist ✓ isort ✓ pyproject-hooks ✓ sqlparse ✓ joserfc ✓ gunicorn ✓ stack-data ✗ fastjsonschema ✓ pure-eval ✓ execnet ✓ azure-storage-blob ✓ asgiref ✓ gcsfs ✓ webencodings ✗ poetry-core ✓ pydantic-ai-slim ✓ databricks-sdk ✓ build ✓ grpc-google-iam-v1 ✓ google-cloud-kms ✓ google-analytics-admin ✓ mdit-py-plugins ✓ truststore ✓ google-cloud-compute ✓ termcolor ✓ psycopg ✓ jsonpatch ✓ linkify-it-py ✓ babel ✓ uc-micro-py ✓ psycopg-binary ✓ markdown ✓ xmltodict ✓ google-cloud-dlp ✓ cbor2 ✓ weaviate-client ✓ cachecontrol ✓ cython ✓ asyncpg ✓ python-json-logger ✓ safetensors ✓ google-cloud-speech ✓ python-docx ✓ setuptools-scm ✓ marshmallow ✓ google-cloud-texttospeech ✓ langsmith ✓ dbt-adapters ✓ google-cloud-pubsub ✓ watchdog ✓ tornado ✓ httpx2 ✓ types-toml ✓ pytokens ✓ pydantic-graph ✓ tree-sitter ✓ vcs-versioning ✓ types-requests ✓ httpcore2 ✓ pymongo ✓ tinycss2 ✓ structlog ✓ kubernetes ✓ grpclib ✓ types-certifi ✓ pymupdf ✓ aioitertools ✓ lz4 ✓ xlsxwriter ✓ playwright ✓ cfn-lint ✓ fastmcp ✓ google-cloud-logging ✓ modal ✓ py4j ✓ opentelemetry-exporter-prometheus ✓ synchronicity ✓ pymysql ✓ pyperclip ✗ pyzmq ✓ flatbuffers ✓ dbt-core ✓ fastapi-cli ✓ griffelib ✓ google-cloud-monitoring ✓ beartype ✓ croniter ✓ tomli-w ✓ llama-cloud-services ✓ llama-parse ✓ pytest-mock ✓ google-cloud-tasks ✓ pyee ✓ brotli ✗

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.