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

Top 120 - 240

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

Top 240 - 360

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

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.