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

Top 120 - 240

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

Top 240 - 360

opentelemetry-util-http ✓ pexpect ✓ aiofiles ✓ msal-extensions ✓ google-api-python-client ✓ jsonpatch ✓ pymupdf ✓ playwright ✓ sqlparse ✓ google-auth-httplib2 ✓ executing ✓ python-docx ✓ httplib2 ✓ fastjsonschema ✓ authlib ✓ flatbuffers ✓ babel ✓ pytest-json-ctrf ✓ opentelemetry-exporter-otlp-proto-grpc ✓ pyee ✓ gunicorn ✓ google-auth-oauthlib ✓ mcp-types ✓ joserfc ✓ tornado ✓ grpc-google-iam-v1 ✓ onnxruntime ✓ markdown ✓ structlog ✓ jedi ✓ async-timeout ✓ tinycss2 ✓ black ✓ pytest-timeout ✓ parso ✓ paramiko ✓ asttokens ✓ ipython ✓ brotli ✓ xmltodict ✓ transformers ✓ snowflake-connector-python ✓ pyzmq ✓ matplotlib-inline ✓ ast-serialize ✓ pure-eval ✓ watchdog ✓ azure-storage-blob ✓ stack-data ✓ griffelib ✓ pyproject-hooks ✓ cachecontrol ✓ python-pptx ✓ typedload ✓ aioitertools ✓ python-json-logger ✓ build ✓ types-pyyaml ✓ pypdfium2 ✓ langsmith ✓ debugpy ✓ litellm ✓ jupyter-core ✓ isort ✓ pytest-mock ✓ croniter ✓ google-cloud-aiplatform ✓ uuid-utils ✓ marshmallow ✓ nest-asyncio ✓ cython ✓ sqlglot ✓ lark ✓ slack-sdk ✓ multiprocess ✓ nbformat ✓ safetensors ✓ tomli-w ✓ lz4 ✓ kubernetes ✓ jupyter-client ✓ awscli ✓ awswrangler ✓ opentelemetry-instrumentation-asgi ✓ databricks-sdk ✓ loguru ✓ setuptools-scm ✓ beartype ✓ reportlab ✓ opentelemetry-instrumentation-fastapi ✓ types-requests ✓ pycryptodome ✓ pymysql ✓ pytokens ✓ xlrd ✓ text-unidecode ✓ poetry-core ✓ fastuuid ✓ rfc3339-validator ✓ argon2-cffi-bindings ✓ python-slugify ✓ argon2-cffi ✓ pyperclip ✓ vcs-versioning ✓ opentelemetry-instrumentation-requests ✓ faker ✓ semver ✓ jsonref ✓ shapely ✓ termcolor ✓ mdit-py-plugins ✓ cbor2 ✓ pathable ✓ graphql-core ✓ jsonschema-path ✓ cyclopts ✓ types-protobuf ✓ ipython-pygments-lexers ✓ wsproto ✓ opentelemetry-exporter-otlp-common ✓

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.