Python 3.1 Readiness

Python 3.1 support graph for the 360 most popular Python packages!

What is this about?

Python 3.1 is a version of Python that is past its End Of Life. This site shows Python 3.1 support for the 360 most downloaded packages on PyPI:

  1. 359 green packages (99.7%) have dropped support for Python 3.1;
  2. 1 uncolored packages (0.3%) still support Python 3.1.

Package 'x' is uncolored. What can I do?

There can be many reasons a package is still supporting Python 3.1:

  • 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.1 support.

How do you identify Python 3.1 support?

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

Top 120 - 240

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

Top 240 - 360

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

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.