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

Top 120 - 240

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

Top 240 - 360

identify ✓ fastjsonschema ✓ durationpy ✓ msal-extensions ✓ google-cloud-secret-manager ✓ parso ✓ google-cloud-batch ✓ traitlets ✓ pre-commit ✓ opentelemetry-instrumentation-requests ✓ cfgv ✓ httptools ✓ mypy ✓ jsonpointer ✓ tree-sitter ✓ executing ✓ jedi ✓ azure-storage-blob ✓ gunicorn ✓ opentelemetry-util-http ✓ google-analytics-admin ✓ xxhash ✓ grpc-google-iam-v1 ✓ babel ✓ asttokens ✓ aiofiles ✓ matplotlib-inline ✓ authlib ✓ h2 ✓ cython ✓ tornado ✓ hyperframe ✓ hpack ✓ py4j ✓ black ✓ langchain-core ✓ pure-eval ✓ stack-data ✓ vcs-versioning ✓ xmltodict ✓ pytest-xdist ✓ importlib-resources ✓ weaviate-client ✓ termcolor ✓ asgiref ✓ python-json-logger ✓ markdown ✓ execnet ✓ sentry-sdk ✓ webencodings ✓ dbt-core ✓ nest-asyncio ✓ anthropic ✓ pandas-stubs ✓ pytest-json-ctrf ✓ datasets ✓ pydantic-graph ✓ typing-inspect ✓ cachecontrol ✓ grpcio-health-checking ✓ pymongo ✓ jsonpatch ✓ jsonschema-path ✓ tree-sitter-languages ✓ pymysql ✓ awswrangler ✓ aioitertools ✓ dbt-adapters ✓ databricks-sql-connector ✓ torch ✓ gcsfs ✓ debugpy ✓ lz4 ✓ watchdog ✓ pathable ✓ pyperclip ✓ pycryptodome ✓ dataclasses-json ✓ pyzmq ✓ jsonpath-ng ✓ rich-toolkit ✓ slack-sdk ✓ typedload ✓ google-cloud-monitoring ✓ google-cloud-compute ✓ pytest-mock ✓ flatbuffers ✓ google-cloud-kms ✓ isort ✓ pymupdf ✓ dulwich ✓ google-cloud-speech ✓ pkginfo ✓ msrest ✓ langsmith ✓ deepdiff ✓ dbt-common ✓ smart-open ✓ pygithub ✓ google-cloud-dlp ✓ google-cloud-vision ✓ narwhals ✓ jsonref ✓ beartype ✓ google-cloud-tasks ✓ sphinx ✓ google-cloud-bigtable ✓ pendulum ✓ tinycss2 ✓ notebook ✓ mccabe ✓ loguru ✓ xlsxwriter ✓ cattrs ✓ google-cloud-language ✓ google-cloud-videointelligence ✓ sqlalchemy-bigquery ✓ google-cloud-workflows ✓ rfc3339-validator ✓ invoke ✓

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.