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 ✓ typing-extensions ✓ idna ✓ certifi ✓ urllib3 ✓ charset-normalizer ✓ requests ✓ cryptography ✓ pluggy ✓ pyyaml ✓ cffi ✓ python-dateutil ✓ pygments ✓ pydantic ✓ pycparser ✓ numpy ✓ pydantic-core ✓ click ✓ anyio ✓ botocore ✓ setuptools ✓ typing-inspection ✓ annotated-types ✓ pytest ✓ h11 ✓ iniconfig ✓ six ✓ attrs ✓ markupsafe ✓ httpx ✓ httpcore ✓ protobuf ✓ python-dotenv ✓ s3transfer ✓ pyjwt ✓ pillow ✓ tzdata ✓ opentelemetry-api ✓ starlette ✓ pandas ✓ jinja2 ✓ uvicorn ✓ rpds-py ✓ jsonschema ✓ aiobotocore ✓ referencing ✓ jsonschema-specifications ✓ platformdirs ✓ pip ✓ pathspec ✓ jmespath ✓ fsspec ✓ filelock ✓ markdown-it-py ✓ tomlkit ✓ multidict ✓ rich ✓ yarl ✓ mdurl ✓ annotated-doc ✓ aiohttp ✓ fastapi ✓ propcache ✓ websockets ✓ frozenlist ✓ aiosignal ✓ aiohappyeyeballs ✓ sniffio ✓ python-multipart ✓ googleapis-common-protos ✓ tqdm ✓ pydantic-settings ✓ truststore ✓ pyasn1 ✓ httpx2 ✓ httpcore2 ✓ pytz ✗ wrapt ✓ jiter ✓ trove-classifiers ✓ google-auth ✓ ruff ✓ tenacity ✓ lxml ✓ hatchling ✓ sqlalchemy ✓ scipy ✓ pyarrow ✓ psutil ✓ greenlet ✓ regex ✓ pyasn1-modules ✓ pyparsing ✓ grpcio-status ✓ zipp ✓ openai ✓ importlib-metadata ✓ openpyxl ✓ watchfiles ✓ sse-starlette ✓ grpcio ✓ et-xmlfile ✓ opentelemetry-semantic-conventions ✓ wheel ✓ google-api-core ✓ opentelemetry-sdk ✓ mcp ✓ soupsieve ✓ distro ✓ coverage ✓ shellingham ✓ typer ✓ beautifulsoup4 ✓ mypy-extensions ✓ huggingface-hub ✓ editables ✓ networkx ✓ uvloop ✓ docstring-parser ✓

Top 120 - 240

dnspython ✓ defusedxml ✓ wcwidth ✓ opentelemetry-proto ✓ s3fs ✓ colorama ✓ proto-plus ✓ pytest-asyncio ✓ httptools ✓ cachetools ✓ requests-oauthlib ✓ oauthlib ✓ opentelemetry-exporter-otlp-proto-common ✓ fonttools ✓ sortedcontainers ✓ hf-xet ✓ pytest-cov ✓ redis ✓ virtualenv ✓ werkzeug ✓ tomli ✓ more-itertools ✓ opentelemetry-exporter-otlp-proto-http ✓ psycopg2-binary ✓ mako ✓ alembic ✓ psycopg ✓ exceptiongroup ✓ distlib ✓ msgpack ✓ tiktoken ✓ cloudpickle ✓ tabulate ✓ psycopg-binary ✓ execnet ✓ tokenizers ✓ pytest-xdist ✓ scikit-learn ✓ orjson ✓ requests-toolbelt ✓ prompt-toolkit ✓ threadpoolctl ✓ anthropic ✓ itsdangerous ✓ uv ✓ hpack ✓ h2 ✓ hyperframe ✓ joblib ✓ pypdf ✓ email-validator ✓ isodate ✓ mypy ✓ matplotlib ✓ httpx-sse ✓ pymupdf ✓ nodeenv ✓ python-discovery ✓ azure-core ✓ tzlocal ✓ zstandard ✓ kiwisolver ✓ rsa ✓ opentelemetry-instrumentation ✓ sympy ✓ contourpy ✓ pyopenssl ✓ google-cloud-core ✓ cycler ✓ msal ✓ flask ✓ mpmath ✓ websocket-client ✓ ruamel-yaml ✓ prometheus-client ✓ blinker ✓ bcrypt ✓ xlsxwriter ✓ google-genai ✓ librt ✓ pynacl ✓ jsonpointer ✓ google-cloud-bigquery ✓ google-crc32c ✓ google-cloud-storage ✓ langchain-core ✓ xxhash ✓ google-resumable-media ✓ flatbuffers ✓ mcp-types ✓ langchain ✓ dill ✓ onnxruntime ✓ docker ✓ asgiref ✓ chardet ✓ toml ✓ identify ✓ webencodings ✓ pre-commit ✓ jaraco-functools ✓ grpcio-tools ✓ cfgv ✓ deprecated ✓ backoff ✓ sentry-sdk ✓ keyring ✓ asyncpg ✓ python-docx ✓ azure-identity ✓ narwhals ✓ jaraco-classes ✓ traitlets ✓ decorator ✓ rapidfuzz ✓ jeepney ✓ opentelemetry-util-http ✓ uritemplate ✓ pytest-json-ctrf ✓ asn1crypto ✓

Top 240 - 360

secretstorage ✓ gitpython ✓ authlib ✓ playwright ✓ msal-extensions ✓ jaraco-context ✓ docutils ✓ ptyprocess ✓ jsonpatch ✓ joserfc ✓ smmap ✓ gitdb ✓ aiofiles ✓ structlog ✓ google-api-python-client ✓ pytest-timeout ✓ pexpect ✓ pypdfium2 ✓ fastjsonschema ✓ httplib2 ✓ python-pptx ✓ google-auth-httplib2 ✓ executing ✓ opentelemetry-exporter-otlp-common ✓ markdown ✓ opentelemetry-exporter-otlp-proto-grpc ✓ tinycss2 ✓ babel ✓ sqlparse ✓ brotli ✓ gunicorn ✓ google-auth-oauthlib ✓ tornado ✓ transformers ✓ grpc-google-iam-v1 ✓ async-timeout ✓ pyzmq ✓ ipython ✓ jedi ✓ xmltodict ✓ parso ✓ pyee ✓ griffelib ✓ ast-serialize ✓ asttokens ✓ opentelemetry-exporter-http-transport ✓ watchdog ✓ azure-storage-blob ✓ paramiko ✓ matplotlib-inline ✓ pure-eval ✓ snowflake-connector-python ✓ stack-data ✓ aioitertools ✓ cachecontrol ✓ litellm ✓ python-json-logger ✓ black ✓ jupyter-core ✓ nbformat ✓ croniter ✓ pyproject-hooks ✓ cython ✓ sqlglot ✓ lark ✓ types-pyyaml ✓ beartype ✓ build ✓ debugpy ✓ databricks-sdk ✓ fastuuid ✓ cyclopts ✓ langsmith ✓ safetensors ✓ reportlab ✓ uuid-utils ✓ jupyter-client ✓ isort ✓ marshmallow ✓ opentelemetry-instrumentation-asgi ✓ pdfminer-six ✓ awswrangler ✓ pytest-mock ✓ google-cloud-aiplatform ✓ slack-sdk ✓ awscli ✓ argon2-cffi-bindings ✓ opentelemetry-instrumentation-fastapi ✓ pycryptodome ✓ pathable ✓ tomli-w ✓ xlrd ✓ jsonschema-path ✓ argon2-cffi ✓ multiprocess ✓ nest-asyncio ✓ jsonref ✓ lz4 ✓ pymysql ✓ kubernetes ✓ cbor2 ✓ text-unidecode ✓ rfc3339-validator ✓ loguru ✓ graphql-core ✓ deprecation ✓ duckdb ✓ rich-rst ✓ pyperclip ✓ python-slugify ✓ pymupdf4llm ✓ ipython-pygments-lexers ✓ mdit-py-plugins ✓ termcolor ✓ semver ✓ shapely ✓ py-key-value-aio ✓ pdfplumber ✓ types-requests ✓ opentelemetry-instrumentation-requests ✓

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.