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

Top 120 - 240

distro ✓ jiter ✓ docutils ✓ distlib ✓ websocket-client ✓ opentelemetry-exporter-otlp-proto-http ✓ tomlkit ✓ openpyxl ✓ sse-starlette ✓ et-xmlfile ✓ editables ✓ wcwidth ✓ huggingface-hub ✓ mypy-extensions ✓ grpcio-tools ✓ networkx ✓ langchain ✓ gitpython ✓ google-cloud-storage ✓ werkzeug ✓ pyopenssl ✓ dnspython ✓ opentelemetry-exporter-otlp-proto-common ✓ coverage ✓ msgpack ✓ psycopg2-binary ✓ smmap ✓ python-discovery ✓ ptyprocess ✓ redis ✓ pexpect ✓ multiprocess ✓ pydantic-ai-slim ✓ decorator ✓ google-genai ✓ opentelemetry-exporter-otlp-proto-grpc ✓ pynacl ✓ sortedcontainers ✓ docker ✓ opentelemetry-instrumentation ✓ docstring-parser ✓ keyring ✓ fonttools ✓ ruff ✓ gitdb ✓ tabulate ✓ matplotlib ✓ isodate ✓ httpx-sse ✓ prompt-toolkit ✓ azure-core ✓ async-timeout ✓ hf-xet ✓ scikit-learn ✓ jaraco-classes ✓ azure-identity ✓ uvloop ✓ jeepney ✓ flask ✓ secretstorage ✓ google-cloud-core ✓ itsdangerous ✓ httptools ✓ dill ✓ bcrypt ✓ kiwisolver ✓ jaraco-context ✓ orjson ✓ jaraco-functools ✓ joblib ✓ deprecated ✓ contourpy ✓ tokenizers ✓ msal ✓ alembic ✓ google-resumable-media ✓ ruamel-yaml ✓ pytest-cov ✓ google-crc32c ✓ threadpoolctl ✓ snowflake-connector-python ✓ pytest-asyncio ✓ kubernetes ✓ email-validator ✓ chardet ✓ defusedxml ✓ blinker ✓ xxhash ✓ tiktoken ✓ cycler ✓ mako ✓ tzlocal ✓ google-api-python-client ✓ toml ✓ uv ✓ zstandard ✓ databricks-sql-connector ✓ ipython ✓ nodeenv ✓ asn1crypto ✓ pydantic-graph ✓ opentelemetry-instrumentation-requests ✓ opentelemetry-exporter-otlp ✓ mypy ✓ google-auth-httplib2 ✓ prometheus-client ✓ google-cloud-aiplatform ✓ google-auth-oauthlib ✓ uritemplate ✓ traitlets ✓ opentelemetry-util-http ✓ pyproject-hooks ✓ rapidfuzz ✓ poetry-core ✓ paramiko ✓ jsonpointer ✓ google-cloud-bigquery ✓ types-requests ✓ jedi ✓ httplib2 ✓

Top 240 - 360

parso ✓ transformers ✓ google-cloud-secret-manager ✓ sympy ✓ identify ✓ backoff ✓ build ✓ pre-commit ✓ executing ✓ aiofiles ✓ cfgv ✓ marshmallow ✓ h2 ✓ fastjsonschema ✓ msal-extensions ✓ datasets ✓ hyperframe ✓ hpack ✓ durationpy ✓ sqlparse ✓ google-cloud-batch ✓ mpmath ✓ matplotlib-inline ✓ setuptools-scm ✓ asttokens ✓ azure-storage-blob ✓ ydb ✓ weaviate-client ✓ authlib ✓ gunicorn ✓ babel ✓ cloudpickle ✓ anthropic ✓ stack-data ✓ pure-eval ✓ grpc-google-iam-v1 ✓ dbt-core ✓ tornado ✓ pytest-json-ctrf ✓ google-analytics-admin ✓ asgiref ✓ sentry-sdk ✓ nest-asyncio ✓ xmltodict ✓ webencodings ✓ cython ✓ google-cloud-compute ✓ pytest-xdist ✓ jsonpatch ✓ markdown ✓ google-cloud-kms ✓ black ✓ databricks-sdk ✓ termcolor ✓ execnet ✓ gcsfs ✓ py4j ✓ joserfc ✓ langchain-core ✓ librt ✓ pyee ✓ python-json-logger ✓ importlib-resources ✓ vcs-versioning ✓ pyzmq ✓ pandas-stubs ✓ cachecontrol ✓ debugpy ✓ tree-sitter ✓ typing-inspect ✓ watchdog ✓ playwright ✓ google-cloud-dlp ✓ pymongo ✓ llama-parse ✓ google-cloud-speech ✓ llama-cloud-services ✓ google-cloud-pubsub ✓ aioitertools ✓ mdit-py-plugins ✓ dbt-adapters ✓ pyperclip ✓ tinycss2 ✓ google-cloud-texttospeech ✓ jsonschema-path ✓ torch ✓ pycryptodome ✓ lz4 ✓ slack-sdk ✓ flatbuffers ✓ linkify-it-py ✓ pymysql ✓ uc-micro-py ✓ jupyter-core ✓ grpcio-health-checking ✓ isort ✓ msrest ✓ rich-toolkit ✓ pytest-mock ✓ narwhals ✓ dbt-common ✓ dataclasses-json ✓ ruamel-yaml-clib ✓ dulwich ✓ structlog ✓ asyncpg ✓ jupyter-client ✓ langsmith ✓ typedload ✓ google-cloud-tasks ✓ awswrangler ✓ google-cloud-monitoring ✓ pkginfo ✓ loguru ✓ pathable ✓ xlsxwriter ✓ ipykernel ✓ cyclopts ✓ semver ✓ deepdiff ✓

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.