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

Top 120 - 240

requests-oauthlib ✓ editables ✓ hf-xet ✓ openpyxl ✓ exceptiongroup ✓ dnspython ✓ mcp ✓ et-xmlfile ✓ oauthlib ✓ distlib ✓ sse-starlette ✓ opentelemetry-exporter-otlp-proto-grpc ✓ wcwidth ✓ cachetools ✓ ruff ✓ coverage ✓ python-discovery ✓ more-itertools ✓ mypy-extensions ✓ tiktoken ✓ tokenizers ✓ pytest-asyncio ✓ google-genai ✓ docstring-parser ✓ uvloop ✓ rsa ✓ pyopenssl ✓ requests-toolbelt ✓ fonttools ✓ httptools ✓ redis ✓ msgpack ✓ matplotlib ✓ gitpython ✓ prompt-toolkit ✓ networkx ✓ sortedcontainers ✓ psycopg2-binary ✓ langchain ✓ werkzeug ✓ email-validator ✓ grpcio-tools ✓ smmap ✓ google-cloud-storage ✓ opentelemetry-instrumentation-requests ✓ pynacl ✓ defusedxml ✓ chardet ✓ dill ✓ httpx-sse ✓ gitdb ✓ scikit-learn ✓ azure-core ✓ contourpy ✓ tzlocal ✓ azure-identity ✓ orjson ✓ isodate ✓ kiwisolver ✓ pytest-json-ctrf ✓ tabulate ✓ opentelemetry-instrumentation-threading ✓ alembic ✓ joblib ✓ pytest-cov ✓ mako ✓ h2 ✓ opentelemetry-util-http ✓ docker ✓ keyring ✓ nodeenv ✓ websocket-client ✓ mypy ✓ itsdangerous ✓ decorator ✓ threadpoolctl ✓ hpack ✓ msal ✓ anthropic ✓ xxhash ✓ ruamel-yaml ✓ google-cloud-core ✓ jaraco-classes ✓ docutils ✓ cycler ✓ bcrypt ✓ jaraco-functools ✓ jeepney ✓ hyperframe ✓ toml ✓ secretstorage ✓ pre-commit ✓ flask ✓ transformers ✓ identify ✓ cfgv ✓ jaraco-context ✓ ptyprocess ✓ ipython ✓ pexpect ✓ opentelemetry-exporter-otlp ✓ ydb ✓ uv ✓ google-resumable-media ✓ blinker ✓ google-auth-httplib2 ✓ google-api-python-client ✓ sentry-sdk ✓ async-timeout ✓ google-crc32c ✓ uritemplate ✓ black ✓ datasets ✓ snowflake-connector-python ✓ google-cloud-bigquery ✓ zstandard ✓ prometheus-client ✓ google-auth-oauthlib ✓ httplib2 ✓ backoff ✓

Top 240 - 360

pypdf ✓ deprecated ✓ traitlets ✓ narwhals ✓ google-cloud-secret-manager ✓ sympy ✓ rapidfuzz ✓ librt ✓ msal-extensions ✓ mpmath ✓ awscli ✓ asn1crypto ✓ langchain-core ✓ cloudpickle ✓ jsonpointer ✓ aiofiles ✓ paramiko ✓ executing ✓ fastuuid ✓ authlib ✓ asttokens ✓ google-cloud-aiplatform ✓ pytest-xdist ✓ sqlparse ✓ google-cloud-batch ✓ isort ✓ gunicorn ✓ jedi ✓ pyproject-hooks ✓ parso ✓ joserfc ✓ fastjsonschema ✓ azure-storage-blob ✓ execnet ✓ gcsfs ✓ webencodings ✓ grpc-google-iam-v1 ✓ matplotlib-inline ✓ asgiref ✓ databricks-sdk ✓ pydantic-ai-slim ✓ poetry-core ✓ build ✓ stack-data ✓ pure-eval ✓ google-cloud-kms ✓ truststore ✓ psycopg ✓ google-analytics-admin ✓ jsonpatch ✓ google-cloud-compute ✓ babel ✓ mdit-py-plugins ✓ psycopg-binary ✓ markdown ✓ termcolor ✓ xmltodict ✓ linkify-it-py ✓ cachecontrol ✓ cython ✓ asyncpg ✓ google-cloud-dlp ✓ python-docx ✓ python-json-logger ✓ uc-micro-py ✓ google-cloud-speech ✓ safetensors ✓ setuptools-scm ✓ weaviate-client ✓ marshmallow ✓ langsmith ✓ google-cloud-pubsub ✓ dbt-adapters ✓ google-cloud-texttospeech ✓ pydantic-graph ✓ httpx2 ✓ watchdog ✓ tornado ✓ cbor2 ✓ pytokens ✓ vcs-versioning ✓ httpcore2 ✓ types-requests ✓ tinycss2 ✓ structlog ✓ pymongo ✓ kubernetes ✓ playwright ✓ pymupdf ✓ aioitertools ✓ xlsxwriter ✓ tree-sitter ✓ google-cloud-logging ✓ types-toml ✓ lz4 ✓ opentelemetry-exporter-prometheus ✓ py4j ✓ fastmcp ✓ pymysql ✓ pyzmq ✓ dbt-core ✓ google-cloud-monitoring ✓ grpclib ✓ pyperclip ✓ croniter ✓ types-certifi ✓ fastapi-cli ✓ griffelib ✓ pyee ✓ flatbuffers ✓ tomli-w ✓ beartype ✓ brotli ✓ google-cloud-tasks ✓ modal ✓ pytest-mock ✓ pydantic-extra-types ✓ importlib-resources ✓ opentelemetry-instrumentation-fastapi ✓ nest-asyncio ✓

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.