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

Top 120 - 240

multiprocess ✓ more-itertools ✓ docutils ✓ google-cloud-storage ✓ openpyxl ✓ tomlkit ✓ et-xmlfile ✓ huggingface-hub ✓ requests-toolbelt ✗ gitpython ✓ mypy-extensions ✓ grpcio-tools ✓ wcwidth ✓ werkzeug ✓ networkx ✓ editables ✓ docker ✓ langchain ✓ watchfiles ✓ opentelemetry-exporter-otlp-proto-http ✓ ptyprocess ✓ pyopenssl ✓ smmap ✓ decorator ✓ msgpack ✓ pexpect ✓ python-discovery ✓ matplotlib ✓ psycopg2-binary ✓ dnspython ✓ coverage ✓ fonttools ✓ pynacl ✓ mcp ✓ google-cloud-core ✓ sortedcontainers ✗ kiwisolver ✓ tabulate ✓ opentelemetry-instrumentation ✓ gitdb ✓ scikit-learn ✓ google-genai ✓ opentelemetry-exporter-otlp-proto-common ✓ docstring-parser ✓ opentelemetry-exporter-otlp-proto-grpc ✓ contourpy ✓ prompt-toolkit ✓ flask ✓ hf-xet ✓ google-crc32c ✓ google-resumable-media ✓ itsdangerous ✓ pydantic-ai-slim ✓ sse-starlette ✓ dill ✓ isodate ✓ joblib ✓ ruff ✓ keyring ✓ redis ✓ chardet ✓ tokenizers ✓ async-timeout ✓ bcrypt ✓ azure-identity ✓ toml ✗ threadpoolctl ✓ cycler ✓ azure-core ✓ jaraco-classes ✓ jeepney ✓ secretstorage ✓ orjson ✓ blinker ✓ kubernetes ✓ alembic ✓ transformers ✓ zstandard ✓ msal ✓ snowflake-connector-python ✓ pytest-asyncio ✓ pytest-cov ✓ ipython ✓ jaraco-context ✓ deprecated ✗ ruamel-yaml ✓ tzlocal ✓ jaraco-functools ✓ defusedxml ✗ xxhash ✓ google-cloud-bigquery ✓ tiktoken ✓ nodeenv ✓ email-validator ✓ mako ✓ google-api-python-client ✓ uv ✓ uvloop ✓ mypy ✓ traitlets ✓ asn1crypto ✗ httptools ✓ rapidfuzz ✓ identify ✓ parso ✓ pre-commit ✓ google-auth-oauthlib ✓ databricks-sql-connector ✓ jedi ✓ pytest-json-ctrf ✓ executing ✓ httpx-sse ✓ prometheus-client ✓ cfgv ✓ uritemplate ✓ grpc-google-iam-v1 ✓ h2 ✓ sympy ✓ hyperframe ✓ paramiko ✓

Top 240 - 360

google-auth-httplib2 ✓ hpack ✓ asttokens ✓ matplotlib-inline ✓ pyproject-hooks ✓ google-cloud-aiplatform ✓ poetry-core ✓ httplib2 ✓ opentelemetry-instrumentation-requests ✓ datasets ✓ mpmath ✓ opentelemetry-exporter-otlp ✓ opentelemetry-util-http ✓ build ✓ pure-eval ✓ stack-data ✗ backoff ✓ durationpy ✓ setuptools-scm ✓ aiofiles ✓ types-requests ✓ google-cloud-secret-manager ✓ sqlparse ✓ fastjsonschema ✗ marshmallow ✓ cloudpickle ✓ termcolor ✓ jsonpointer ✓ msal-extensions ✓ tree-sitter ✓ pytest-xdist ✓ google-cloud-batch ✓ anthropic ✓ azure-storage-blob ✓ gunicorn ✓ babel ✓ execnet ✓ py4j ✓ weaviate-client ✓ tornado ✓ cython ✓ markdown ✓ asgiref ✓ sentry-sdk ✓ xmltodict ✓ ydb ✓ nest-asyncio ✗ webencodings ✗ librt ✓ databricks-sdk ✓ vcs-versioning ✓ google-analytics-admin ✓ authlib ✓ black ✓ google-cloud-compute ✓ dbt-core ✓ gcsfs ✓ importlib-resources ✓ google-cloud-kms ✓ cachecontrol ✓ pyzmq ✓ python-json-logger ✓ pydantic-graph ✓ debugpy ✓ langchain-core ✓ jsonpatch ✓ pymongo ✓ typing-inspect ✗ watchdog ✓ google-cloud-pubsub ✓ google-cloud-dlp ✓ aioitertools ✓ google-cloud-speech ✓ joserfc ✓ slack-sdk ✓ lz4 ✓ flatbuffers ✓ dulwich ✓ pytest-mock ✓ dbt-adapters ✓ pycryptodome ✓ pandas-stubs ✓ safetensors ✓ tinycss2 ✓ awswrangler ✓ torch ✓ google-cloud-texttospeech ✓ jsonschema-path ✓ pymysql ✓ pymupdf ✓ cbor2 ✓ msrest ✓ pkginfo ✓ jupyter-core ✓ tree-sitter-languages ✓ deepdiff ✓ isort ✓ typedload ✓ narwhals ✓ google-cloud-monitoring ✓ xlsxwriter ✓ dataclasses-json ✓ google-cloud-logging ✓ asyncpg ✓ jupyter-client ✓ mdit-py-plugins ✓ cyclopts ✓ invoke ✓ types-toml ✓ dbt-common ✓ grpcio-health-checking ✓ semver ✓ rich-toolkit ✓ ipykernel ✓ langsmith ✓ cattrs ✓ structlog ✓ google-cloud-tasks ✓ loguru ✗ poetry ✓

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.