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

Top 120 - 240

openai ✓ redis ✓ openpyxl ✓ et-xmlfile ✓ editables ✓ sse-starlette ✓ websocket-client ✓ werkzeug ✓ textual ✓ grpcio-tools ✓ jiter ✓ mypy-extensions ✓ distro ✓ opentelemetry-exporter-otlp-proto-http ✓ langchain ✓ google-cloud-storage ✓ networkx ✓ async-timeout ✓ coverage ✓ dnspython ✓ wcwidth ✓ huggingface-hub ✓ msgpack ✓ pyopenssl ✓ uvloop ✓ psycopg2-binary ✓ google-genai ✓ sglang ✓ pynacl ✓ smmap ✓ decorator ✓ ptyprocess ✓ fonttools ✓ python-discovery ✓ httpx-sse ✓ gitpython ✓ pexpect ✓ httptools ✓ opentelemetry-exporter-otlp-proto-common ✓ tabulate ✓ opentelemetry-exporter-otlp-proto-grpc ✓ sortedcontainers ✗ matplotlib ✓ flask ✓ docker ✓ scikit-learn ✓ kiwisolver ✓ isodate ✓ keyring ✓ google-cloud-core ✓ ruff ✓ gitdb ✓ prompt-toolkit ✓ docstring-parser ✓ jaraco-classes ✓ joblib ✓ contourpy ✓ azure-identity ✓ opentelemetry-instrumentation ✓ secretstorage ✓ jeepney ✓ itsdangerous ✓ bcrypt ✓ azure-core ✓ alembic ✓ multiprocess ✓ pytest-cov ✓ google-crc32c ✓ threadpoolctl ✓ google-resumable-media ✓ jaraco-context ✓ msal ✓ jaraco-functools ✓ deprecated ✗ chardet ✓ dill ✓ blinker ✓ orjson ✓ snowflake-connector-python ✓ defusedxml ✗ ruamel-yaml ✓ zstandard ✓ pytest-asyncio ✓ cycler ✓ hf-xet ✓ email-validator ✓ tzlocal ✓ pydantic-ai-slim ✓ kubernetes ✓ types-requests ✓ mako ✓ sympy ✓ toml ✗ uv ✓ ipython ✓ rapidfuzz ✓ tree-sitter ✓ google-api-python-client ✓ opentelemetry-exporter-otlp ✓ mpmath ✓ prometheus-client ✓ nodeenv ✓ tokenizers ✓ asn1crypto ✗ poetry-core ✓ setuptools-scm ✓ pyproject-hooks ✓ paramiko ✓ mypy ✓ google-cloud-bigquery ✓ google-auth-oauthlib ✓ uritemplate ✓ backoff ✓ google-auth-httplib2 ✓ tiktoken ✓ build ✓ identify ✓ traitlets ✓ pytest-json-ctrf ✓ pyee ✓

Top 240 - 360

google-cloud-aiplatform ✓ fastjsonschema ✗ pytest-xdist ✓ parso ✓ transformers ✓ httplib2 ✓ pre-commit ✓ marshmallow ✓ jedi ✓ sqlparse ✓ cfgv ✓ opentelemetry-util-http ✓ executing ✓ opentelemetry-instrumentation-requests ✓ execnet ✓ playwright ✓ tornado ✓ xxhash ✓ jsonpointer ✓ matplotlib-inline ✓ tree-sitter-languages ✓ msal-extensions ✓ google-cloud-secret-manager ✓ asttokens ✓ gunicorn ✓ babel ✓ cloudpickle ✓ grpc-google-iam-v1 ✓ h2 ✓ cython ✓ aiofiles ✓ hyperframe ✓ hpack ✓ azure-storage-blob ✓ authlib ✓ pure-eval ✓ stack-data ✗ google-cloud-batch ✓ weaviate-client ✓ xmltodict ✓ asgiref ✓ durationpy ✓ ujson ✓ py4j ✓ markdown ✓ databricks-sdk ✓ black ✓ webencodings ✗ vcs-versioning ✓ nest-asyncio ✗ sentry-sdk ✓ google-analytics-admin ✓ importlib-resources ✓ termcolor ✓ datasets ✓ langchain-core ✓ anthropic ✓ python-json-logger ✓ dbt-core ✓ cachecontrol ✓ debugpy ✓ gcsfs ✓ google-cloud-compute ✓ dacite ✓ google-cloud-kms ✓ jsonpatch ✓ pymongo ✓ librt ✓ ydb ✓ typing-inspect ✗ dbt-adapters ✓ pyzmq ✓ watchdog ✓ iso8601 ✓ aioitertools ✓ pandas-stubs ✓ google-cloud-dlp ✓ jsonschema-path ✓ databricks-sql-connector ✓ pytest-mock ✓ grpcio-health-checking ✓ tinycss2 ✓ lz4 ✓ pymysql ✓ pycryptodome ✓ google-cloud-speech ✓ awswrangler ✓ flatbuffers ✓ pyhumps ✓ isort ✓ dulwich ✓ google-cloud-pubsub ✓ pkginfo ✓ slack-sdk ✓ deepdiff ✓ joserfc ✓ torch ✓ jupyter-core ✓ pathable ✓ dataclasses-json ✓ msrest ✓ mccabe ✓ narwhals ✓ dbt-common ✓ axiom-py ✓ sphinx ✓ google-cloud-monitoring ✓ invoke ✓ loguru ✗ jsonpath-ng ✓ jupyter-client ✓ pyperclip ✗ ipykernel ✓ pymupdf ✓ langsmith ✓ rich-toolkit ✓ opentelemetry-exporter-prometheus ✓ smart-open ✓ rfc3339-validator ✗ pygithub ✓

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.