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

Top 120 - 240

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

Top 240 - 360

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