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

Top 120 - 240

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

Top 240 - 360

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

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.