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

Top 120 - 240

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

Top 240 - 360

jsonpointer ✓ httptools ✓ nodeenv ✓ black ✓ ipython ✓ authlib ✓ sentry-sdk ✓ cython ✓ tornado ✓ aiofiles ✓ gunicorn ✓ google-cloud-batch ✓ httpx-sse ✓ databricks-sdk ✓ cloudpickle ✓ asgiref ✓ gcsfs ✓ google-analytics-admin ✓ opentelemetry-util-http ✓ opentelemetry-instrumentation-requests ✓ pre-commit ✓ parso ✓ importlib-resources ✓ identify ✓ traitlets ✓ executing ✓ py4j ✓ pytest-xdist ✓ grpc-google-iam-v1 ✓ jedi ✓ pydantic-graph ✓ execnet ✓ asttokens ✓ cfgv ✓ durationpy ✓ markdown ✓ python-json-logger ✓ cachecontrol ✓ matplotlib-inline ✓ grpcio-health-checking ✓ langchain-core ✓ webencodings ✓ typing-inspect ✓ nest-asyncio ✓ xxhash ✓ jsonschema-path ✓ stack-data ✓ pure-eval ✓ jsonpatch ✓ litellm ✓ watchdog ✓ pandas-stubs ✓ aliyun-python-sdk-core ✓ pymongo ✓ h2 ✓ dbt-core ✓ hyperframe ✓ hpack ✓ isort ✓ multiprocess ✓ termcolor ✓ flatbuffers ✓ pytest-mock ✓ pytest-json-ctrf ✓ dulwich ✓ pkginfo ✓ awswrangler ✓ pathable ✓ debugpy ✓ anthropic ✓ torch ✓ aioitertools ✓ pymysql ✓ jsonpath-ng ✓ dataclasses-json ✓ cattrs ✓ dbt-adapters ✓ slack-sdk ✓ poetry ✓ rich-toolkit ✓ pyzmq ✓ pycryptodome ✓ pygithub ✓ msrest ✓ mccabe ✓ pyperclip ✓ sphinx ✓ lz4 ✓ ruamel-yaml-clib ✓ pymupdf ✓ dbt-common ✓ databricks-sql-connector ✓ google-cloud-monitoring ✓ onnxruntime ✓ google-cloud-vision ✓ google-cloud-speech ✓ langsmith ✓ librt ✓ narwhals ✓ installer ✓ google-cloud-compute ✓ cyclopts ✓ cleo ✓ safetensors ✓ tree-sitter ✓ pendulum ✓ crashtest ✓ rfc3339-validator ✓ deepdiff ✓ tinycss2 ✓ opentelemetry-exporter-prometheus ✓ google-cloud-kms ✓ beartype ✓ smart-open ✓ google-cloud-tasks ✓ semver ✓ datasets ✓ google-cloud-bigtable ✓ jsonref ✓ wsproto ✓

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.