SQL Server / ODBC standard for two decades, 42,911,527 downloads/month (pepy.tech, fetched 2026-08-16). Its absence was a gap in the list from the Database & Storage audit, not a verdict on the project. Listed as obvious choice #1, before mssql-python (3.3M/month challenger), per entry-ordering rule.
Co-Authored-By: Claude <noreply@anthropic.com>
Database & Storage audit (2026-08-16): official ClickHouse client at 31,797,323 downloads/month has overtaken community clickhouse-driver at 18,405,937/month (pepy.tech, same source, fetched 2026-08-16). Listed first per entry-ordering rule; clickhouse-driver stays second tier.
Co-Authored-By: Claude <noreply@anthropic.com>
MagicStack's asyncio PostgreSQL driver, 122,401,686 downloads/month
(pepy.tech, fetched 2026-08-16). Verified as obvious choice #2 behind
psycopg (130.8M downloads/month, same source) in the Database & Storage
audit; last push 2026-02, inside the 12-month Active rule. Its absence
was a gap in the list.
Co-Authored-By: Claude <noreply@anthropic.com>
Database & Storage audit (maintainer adjudicated 2026-08-16), format-only outcome, no removals:
- Mint a ClickHouse subcategory between SQLite and Other Relational Databases, moving clickhouse-driver into it; two ClickHouse clients justify their own use case (official clickhouse-connect lands next as its own add commit).
- Rename entry redis-py to redis per the PyPI-package-name naming rule in CONTRIBUTING.md; also fixes a NOT_FOUND row in every downloads sweep.
- Reorder MySQL (pymysql 96.4M downloads/month before mysqlclient 20.4M) and NoSQL Databases (redis 277M pepy, pymongo 116.6M, cassandra-driver 8.0M, then django-mongodb-backend 31K as challenger) per the entry-ordering rule.
Co-Authored-By: Claude <noreply@anthropic.com>
Relational Databases had 7 entries against the cap of 5. Removed:
- dataset (2,316,477 downloads/month) - dict-store convenience wrapper, not the ORM job
- pony (653,675 downloads/month) - fading mindshare, no successor trajectory; repo still active, this is a cap call not an abandonment call
- tortoise-orm (599,872 downloads/month, flat) - async niche now served by SQLAlchemy asyncio and sqlmodel
Downloads are PyPI last-30-day via ClickPy fetched 2026-08-16.
Both subcategories reordered per entry-ordering rule: obvious choices by
downloads descending (sqlalchemy 423.9M, django.db.models riding django
56.1M, peewee 50.8M; pynamodb 4.1M, mongoengine 2.5M) then challengers
(sqlmodel 22.3M; beanie 1.6M).
Co-Authored-By: Claude <noreply@anthropic.com>
Maintainer follow-up to the 2026-08-16 HTTP & Scraping Audit:
"HTTP Clients / General" read redundant next to URL Manipulation.
Co-Authored-By: Claude <noreply@anthropic.com>
First Audit of the section; maintainer adjudicated 2026-08-16. yagmail
(346K/month, last push 2026-05) stays as the sole entry - the Cap is a
ceiling, not a floor.
Removed (downloads are PyPI last-30-day via ClickPy, fetched 2026-08-16):
- modoboa (7.6K/month): mail-hosting platform application, not a
library (ajenti/indico precedent); deployments do not flow through
pip - judgment call
Co-Authored-By: Claude <noreply@anthropic.com>
First Audit of the section; maintainer adjudicated 2026-08-16. Both
Subcategories reordered by downloads/month (Frameworks: browser-use,
scrapy, crawl4ai; Content Extraction: feedparser, html2text with a
watch - repo quiet since 2025-10 - and trafilatura).
Removed (downloads are PyPI last-30-day via ClickPy, fetched 2026-08-16):
- mechanicalsoup (162K/month): stateful-browsing era superseded by
browser automation
- crawlberg (10.6K/month): xberg-io coordinated self-promotion (the
org behind the standing rejection rule); repo created 2026-03,
155 stars
- website-downloader (352/month): hobby mirroring script, 174 stars
- micawber (209K/month): oEmbed extraction, small audience next to
the kept three
- sumy (168K/month): summarization, not content extraction - wrong
job for the Subcategory
Co-Authored-By: Claude <noreply@anthropic.com>
First Audit of the section. Restructure first, maintainer-chosen at the
preview review: the flat section splits into Clients and a minted URL
Manipulation Subcategory holding yarl (661.9M/month via BigQuery,
aio-libs, active 2026-08) and httpx.URL as a no-signal pointer to the
URL class bundled with the kept httpx. Client tiers: requests, httpx,
aiohttp Obvious; urllib3 in the Challenger slot by structure (transport
layer under requests, count inflated by that), ordered by
downloads/month. Maintainer-adjudicated 2026-08-16.
Removed (downloads are PyPI last-30-day via ClickPy, fetched 2026-08-16):
- furl (6.3M/month via BigQuery, same source as the yarl comparison):
URL manipulation, not an HTTP client; stdlib urllib.parse covers
parsing/joining/encoding and the minted Subcategory carries the
ergonomic successors - yarl outpulls it 105x; repo quiet since
2026-02
- httptap (1.7K/month): CLI diagnostic tool, repo created 2025-10,
790 stars; no adoption
Co-Authored-By: Claude <noreply@anthropic.com>
Format-only outcomes of the 2026-08-16 Web Development Audit (no
removals): OAuth entries reordered by downloads/month (oauthlib,
authlib, django-allauth Obvious; django-oauth-toolkit Challenger),
Web Asset Management reordered (django-storages, django-compressor)
and its description gains "storing" to cover django-storages'
actual job. Template Engines, JWT, Permissions, WebSocket keeps
already sat in rule order.
Co-Authored-By: Claude <noreply@anthropic.com>
First Audit of the section; maintainer adjudicated 2026-08-16.
Reordered by downloads/month (pelican, nikola).
Removed (downloads are PyPI last-30-day via BigQuery, fetched 2026-08-16):
- lektor (12.5K/month): maintained (pushed 2026-08) but never named
unprompted; close call vs nikola - judgment call
Co-Authored-By: Claude <noreply@anthropic.com>
First Audit of the section; maintainer adjudicated 2026-08-16.
Reordered by downloads/month (wagtail, django-cms).
Removed (downloads are PyPI last-30-day via BigQuery, fetched 2026-08-16):
- indico (3.2K/month): event-management application (CERN), not a CMS
library; readers under CMS want wagtail/django-cms - judgment call
Co-Authored-By: Claude <noreply@anthropic.com>
First Audit of the section (flat Section = one Use Case, 7 entries over
the cap). Restructure first: flower is the Celery monitoring dashboard,
not an admin-panel library - it re-homes to Task Queues as a sub-item
under celery (outside the cap, aws-sdk-pandas precedent; Task Queues
sits at the hard max 5). Kept: flask-admin, django-unfold (Obvious),
django-grappelli (Challenger), ordered by downloads/month.
Maintainer-adjudicated 2026-08-16.
Removed (downloads are PyPI last-30-day via BigQuery, fetched 2026-08-16):
- ajenti (4.5K/month; its ajenti-panel package adds 4.5K): Linux server
control panel application, not a Python admin library
- func-to-web (3.5K/month): repo created 2025-10, 425 stars; no adoption
- jet-bridge (3.7K/month): bridge into the Jet Admin SaaS, not a library
readers seek here
Co-Authored-By: Claude <noreply@anthropic.com>
First Audit of the section; maintainer adjudicated 2026-08-16 at the
preview review, flipping autobahn-python to keep (enters as the
Challenger; Obvious slots are websockets, channels, flask-socketio).
Reordered by downloads/month within tiers.
Removed (downloads are PyPI last-30-day via BigQuery, fetched 2026-08-16):
- picows (66.3K/month): 290 stars; Challenger bar (adoption
trajectory) not met
Co-Authored-By: Claude <noreply@anthropic.com>
First Audit of the section. Restructure first: the RPC Subcategory is
not an "ASGI and WSGI compatible web server" - it moves to Web APIs,
whose description gains RPC; grpcio rides the move. ASGI reordered by
downloads/month (uvicorn Obvious; granian, hypercorn Challengers -
hypercorn kept with a watch, repo quiet since 2025-11).
Maintainer-adjudicated 2026-08-16.
Removed (downloads are PyPI last-30-day via BigQuery, fetched 2026-08-16):
- daphne (6.5M/month): installed as Django Channels' dependency, not
chosen standalone; judgment call
- uwsgi (2.0M/month): officially in maintenance mode; repo quiet since
2025-10
- rpyc (1.6M/month): repo last push 2025-08-14, exactly 12 months -
at the abandonment line
Co-Authored-By: Claude <noreply@anthropic.com>
First Audit of the section; maintainer adjudicated 2026-08-16 at the
preview review, flipping django-modern-rest to keep (enters as the
Django Challenger; Obvious slots stay django-rest-framework,
django-ninja, strawberry-django). Tiers reordered by downloads/month.
Removed (downloads are PyPI last-30-day via BigQuery, fetched 2026-08-16):
- falcon (1.8M/month): active, but not named unprompted since
fastapi/litestar; judgment call
- sanic (1.8M/month): same judgment as falcon - declining mindshare,
successor to nothing
- webargs (3.8M/month): request-parsing helper, not an API framework;
wrong job for the section
Co-Authored-By: Claude <noreply@anthropic.com>
First Audit of the section; maintainer adjudicated 2026-08-16 at the
preview review, flipping pyramid to keep (enters as Synchronous
Challenger beside fasthtml; the three Obvious slots stay flask, django,
bottle). Both tiers reordered by downloads/month per the ordering rule.
Removed (downloads are PyPI last-30-day via BigQuery, fetched 2026-08-16):
- masonite (26.4K/month): no adoption; Laravel-style niche
- microdot (10.4K/month): MicroPython-targeted, genuinely small audience
- robyn (50.9K/month): installs never followed the buzz
Co-Authored-By: Claude <noreply@anthropic.com>
Apply the new ordering rule (downloads/month descending within each
tier, no-signal entries last alphabetically) to all ten swept sections.
Sixteen use cases change order: Vendor Agent SDKs, LLM Inference and
Serving, Speech, File Conversion, PDF, Markdown, Data Visualization
Specialized and Dashboards, Testing Frameworks and Mock, Financial
Data, Data Validation, Geolocation, Science Core and Simulation and
Modeling, Quantum Computing challengers. Unswept sections keep their
current order until their own sweeps. Bundled as a single
categorization commit per the Key Rules bundling exception.
Co-Authored-By: Claude <noreply@anthropic.com>
Per ADR-0001, maintainer-adjudicated at the Data & Science preview
review (2026-08-15). No removals — all four entries keep: qiskit and
qutip as Obvious Choices (circuit SDK and quantum physics simulation,
distinct jobs), cirq and pennylane as Challengers, ordered per the
Challenger-ordering rule. Format fixes bundled per the Key Rules
bundling exception: three em-dash separators normalized to hyphens,
Cirq lowercased to its PyPI name.
Co-Authored-By: Claude <noreply@anthropic.com>
Per ADR-0001, maintainer-adjudicated at the Data & Science preview
review (2026-08-15, all rows live-verified). Restructure first: Core
narrows to numba, numpy, scipy; mint Symbolic Mathematics (sympy),
Statistics (statsmodels), Graphs and Networks (networkx), and
Computational Geometry (shapely) — five co-obvious tools doing five
different jobs, the decision-13 pattern. Other shrinks to a two-entry
grab-bag; colour renamed to colour-science per the PyPI-name convention
(bare 'colour' on PyPI is an unrelated color-conversion library). Then
cap.
Removed (downloads are PyPI last-30-days via BigQuery, 2026-08-15):
- cclib (29.7K/month): computational-chemistry log parsing, small
audience
- openbabel (54.9K/month pip; conda-forge adds only 1.8M all-time):
legacy toolbox next to rdkit
- pydy (1.2K/month): near-zero usage
- PythonRobotics: educational algorithm compilation ("sample codes and
textbook" per its own description), not a library; not on PyPI
- pathsim (6.3K/month): no adoption
Co-Authored-By: Claude <noreply@anthropic.com>
Per ADR-0001, maintainer-adjudicated at the Data & Science preview
review (2026-08-15, all rows live-verified). Keeps geojson, geopandas,
and geopy as Obvious Choices; geodjango kept by maintainer flip and
listed last as Challenger (the cap allows three obvious choices).
Removed (downloads are PyPI last-30-days via BigQuery, 2026-08-15):
- django-countries (2.3M/month): country choices for Django forms and
models — Django form tooling, not geolocation work
Co-Authored-By: Claude <noreply@anthropic.com>
Per ADR-0001, maintainer-adjudicated at the Data & Science preview
review (2026-08-15, all rows live-verified). Keeps jsonschema, pandera,
and pydantic as Obvious Choices for their distinct validation jobs.
Removed (downloads are PyPI last-30-days via BigQuery, 2026-08-15):
- cerberus (6.7M/month): pre-pydantic era passed; repo alive but slow
- voluptuous (8.0M/month): pre-pydantic era passed; repo description
opens with "CONTRIBUTIONS ONLY" (maintenance mode)
Co-Authored-By: Claude <noreply@anthropic.com>
Per ADR-0001, maintainer-adjudicated at the Data & Science preview
review (2026-08-15, all rows live-verified). General keeps dlt (sole
entry). Financial Data keeps akshare and yfinance as Obvious Choices
with edgartools and openbb as Challengers (openbb on the platform
judgment: 71.9K stars against 132K pip installs).
Removed (downloads are PyPI last-30-days via BigQuery, 2026-08-15):
- lumibot (168.2K/month): algorithmic trading and backtesting framework
with broker execution — not financial data; vertical app
(TradingAgents precedent)
Co-Authored-By: Claude <noreply@anthropic.com>
Per ADR-0001, maintainer-adjudicated at the Data & Science preview
review (2026-08-15, all rows live-verified). Keeps: pandas and polars
as Obvious Choices, ibis as Challenger — renamed to ibis-framework per
the PyPI-name convention (maintainer-confirmed; bare 'ibis' on PyPI is
an unrelated template engine). aws-sdk-pandas returns as a sub-item
under pandas per maintainer direction (sub-items sit outside the cap,
awesome-pytest pattern).
Removed (downloads are PyPI last-30-days via BigQuery, 2026-08-15):
- data-profiling (18.2K/month under fg-data-profiling): YData's
profiler, but the listed name is not on PyPI and a profiling layer is
not an obvious choice for this use case
- datasette (178.6K/month): data publishing and exploration tool, a
different job
- desbordante (3.4K/month): no adoption
- modin (1.6M/month): the pandas-at-scale job moved to polars and dask;
repo quiet since 2026-02
- pathway (16.5K/month): stars far ahead of usage (62.5K stars); ETL
job, mis-homed here
- percentify (182.2K/month): personal project, 11-month-old repo, 418
stars — count not credible against the footprint
Co-Authored-By: Claude <noreply@anthropic.com>
The maintainer re-verified all 36 removals from the committed-drops audit against live data on 2026-08-15 and flipped bokeh back: 8.4M downloads/month, 20.4K stars, repo pushed the same day, the healthiest project among all audited drops. Placed as the second Challenger after altair, bringing Plotting to the hard max of 5 entries.
Co-Authored-By: Claude <noreply@anthropic.com>
Re-added as a Challenger alongside pydantic-ai. The maintainer reviewed the committed-drops audit (all 36 removals re-verified against live data 2026-08-15) and flipped crewai back: 19.4M downloads/month, 57.1K stars, repo active same-day. The original 'buzz peaked' drop was judgment the audit data did not support.
Co-Authored-By: Claude <noreply@anthropic.com>
Per ADR-0001, restructure first: split GUI / Web Testing into Browser
Automation (playwright-python, selenium), Load Testing (locust), and
API Testing (schemathesis). Then cap. Maintainer-adjudicated 2026-08-15
at the preview review: robotframework, schemathesis, respx, vcrpy, and
mimesis keep against the old dry-run verdicts; respx and vcrpy take the
two Mock Challenger slots, nox stays the Test Runners Challenger
(listed after tox per the Challenger-ordering rule).
Removed (downloads are PyPI last-month, fetched 2026-08-15):
- scanapi (3.3K/month): near-zero usage
- unittest: stdlib rule - a stdlib module survives only where it is
itself the Obvious Choice; for test frameworks that is pytest
- pyautogui (2.5M/month): desktop GUI automation, not web testing; no
Use Case slot after the Split
- mocket (273K/month): socket-level mocking; small audience next to
responses
Co-Authored-By: Claude <noreply@anthropic.com>
Per ADR-0001. No restructure needed: Plotting caps to matplotlib,
plotly, seaborn plus altair as Challenger (listed last per the
Challenger-ordering rule); Specialized (cartopy, graphify, pygraphviz)
and Dashboards and Apps (gradio, streamlit) already fit.
Removed (downloads are PyPI last-month via pypistats, 2026-08-14/15):
- bokeh (8.4M/month): Plotting at cap; interactive plotting job covered
by plotly
- plotnine (3.1M/month): below the shortlist bar
- vispy (1.4M/month): below the shortlist bar
- pyqtgraph (1.0M/month): below the shortlist bar
- bqplot (381K/month): below the shortlist bar
- pygal: legacy; downloads fetch failed
- ultraplot (3.9K/month): no adoption
Co-Authored-By: Claude <noreply@anthropic.com>
Per ADR-0001, restructure first: split MS Office into Excel, Word, and
PowerPoint; mint File Conversion (docling re-homed from General,
markitdown re-homed from Markdown) and HTML-to-PDF (weasyprint re-homed
from PDF). Then cap. xlsxwriter and weasyprint keep their slots via the
Splits (decision reversing their earlier drop verdicts).
Removed (downloads are PyPI last-month via pypistats, 2026-08-14/15):
- xberg (26K/month): xberg-io coordinated self-promotion plant
- xlwings (941K/month): different job (calling Python from Excel), not
the Excel file-format use case
- docxtpl: templating layer over python-docx, which holds the Word slot
- pyexcel (2.2M/month): abstraction over the per-format libraries that
hold the slots
- pikepdf (10.6M/month): PDF use case at cap; pypdf, reportlab, and
pdfminer.six are the obvious choices
- pdf_oxide (142K/month): no adoption evidence against the incumbents
- csvkit (506K/month): not the obvious choice for CSV work
Co-Authored-By: Claude <noreply@anthropic.com>
Anthropic's Python SDK for building AI agents on Claude Code's harness.
~32.6M downloads/month (pepy, 2026-08-15; approximate, includes
mirrors — pypistats was rate-limited). Lands beside openai-agents in
the Vendor Agent SDKs use case minted in the AI and Agents sweep.
Co-Authored-By: Claude <noreply@anthropic.com>
Per ADR-0001, restructure first: split Pre-trained Models and Inference
into Pre-trained Models, LLM Inference and Serving, and LLM Gateways;
mint Vendor Agent SDKs, Personal Assistants, Prompt Optimization, Image
and Video Generation, and Fine-tuning subcategories. Re-home
openai-agents (Vendor Agent SDKs), hermes-agent (Personal Assistants,
description reworded to personal assistant), dspy (Prompt Optimization),
diffusers (Image and Video Generation), unsloth (Fine-tuning), and
graphify (Data Visualization > Specialized). Then cap.
Removed (downloads are PyPI last-month via pypistats, 2026-08-14/15):
- nuwa-skill: persona prompts, not engineering
- crewai (19.4M/month): buzz peaked; no longer named unprompted
- autogen (1.1M/month): fork war with ag2 split its community
- ag2 (441K/month): other half of the same fork war
- smolagents (651K/month): Hugging Face ecosystem niche
- TradingAgents (11.9K/month): vertical trading app, not general
orchestration
- bub (5.6K/month): no adoption
- bindu (210/month): no adoption
- livetalking: no PyPI presence, no adoption evidence
- bernstein: no PyPI presence, no adoption evidence
- promptise: no PyPI presence, no adoption evidence
- OpenChronicle: no PyPI presence, no adoption evidence
- outlines (2.5M/month): same job as instructor, which holds the slot
- entroly (3.1K/month): no adoption
- lumen (1.8K/month): no adoption
- liter-llm (3.5K/month): xberg-io coordinated self-promotion plant
- SenseVoice: whisper wins the use case
- voxcpm (101K/month): no track record
Co-Authored-By: Claude <noreply@anthropic.com>
Land the shortlist-reform rules approved by the maintainer (rules
first; entry sweeps are not authorized yet).
- CONTRIBUTING.md: replace the Industry Standard / Rising Star / Hidden
Gem lanes with a single admission rule per use case (up to 3 obvious
choices + up to 2 challengers, hard max 5), add Displacement, the
stdlib rule, and editorial-judgment-as-final evidence guidance; scope
test becomes Serves Python Developers; document entry ordering
(obvious choices then challengers, each alphabetical).
- README.md: add the shortlist promise paragraph pointing rejected
contributors to linked awesome-* catalogs and to CONTRIBUTING.md.
- CLAUDE.md: sync Key Rules with the new ordering and shortlist cap,
and add the prune-sweep one-commit-per-section exception.
- docs/adr/0001-shortlist-not-catalog.md: flip status from proposed to
accepted.
Co-Authored-By: Claude <noreply@anthropic.com>