biopython sat above rdkit although rdkit now has more downloads (ClickPy 2026-10-01), against the downloads-order rule.
Co-Authored-By: Claude <noreply@anthropic.com>
Data Validation omitted great-expectations, the most-installed data quality framework at 19,340,380 downloads/month (pypistats 2026-10-02), more than twice pandera's 8,170,879; the audit left it out only because it requires Python <3.14, which the Python-version rule no longer treats as grounds for exclusion.
Co-Authored-By: Claude <noreply@anthropic.com>
Dashboards and Apps omitted Plotly's dash, which outdraws the listed gradio (6,253,566 vs 5,227,393 downloads/month, pypistats 2026-10-02).
Co-Authored-By: Claude <noreply@anthropic.com>
Removed: pygraphviz (528,553 downloads/month, pypistats 2026-10-02): displaced by graphviz (32,829,050/month, part of it catboost pulling it in), which does the same job of building and rendering Graphviz graphs as pure Python with no C build.
Co-Authored-By: Claude <noreply@anthropic.com>
Removed: pathway (8,449 downloads/month, pypistats 2026-10-02): not open source (Business Source License, converting to Apache 2.0 only after four years, with a cloud-resale ban) and flat downloads, so no adoption trajectory for a challenger slot. Also: openbb's link moves to github.com/openbq-org/OpenBB, where OpenBB-finance/OpenBB now redirects after the company's wind-down handed the code to the non-profit OpenBQ.
Co-Authored-By: Claude <noreply@anthropic.com>
django-mongodb-backend, a Django ORM backend rather than a database driver, sat under Database Drivers. psycopg's line called it "the most popular PostgreSQL adapter", false for psycopg 3 (psycopg2-binary plus psycopg2 total about 268M downloads/month vs psycopg 122.7M). django-cacheops (2,032,868) sat below dogpile.cache (1,913,993) in Caching, and elasticsearch (34,739,455) above opensearch-py (38,565,351) in Search, both against the downloads order.
Co-Authored-By: Claude <noreply@anthropic.com>
Removed: pixeltable (4,356 downloads/month, pypistats 2026-10-02): a data engine that runs an embedded PostgreSQL with one writer process, not an in-process vector database, with no adoption trajectory for a challenger slot. Also: lancedb (7,888,645) moves above chromadb (6,619,378) to follow the downloads order.
Co-Authored-By: Claude <noreply@anthropic.com>
Email had no answer for sending through transactional email services from Django without vendor lock-in.
Co-Authored-By: Claude <noreply@anthropic.com>
Email listed only yagmail, a Gmail-focused wrapper, while aiosmtplib, the general asyncio SMTP client, was missing.
Co-Authored-By: Claude <noreply@anthropic.com>
Removed: html2text (12,324,912 downloads/month, pypistats 2026-10-02): last release 2025-04-15, last commit 2025-10-28, GPL-3.0, and markdownify does the same HTML-to-Markdown job at 52,097,079/month (about 38M after markitdown's dependency pull). Content Extraction now reads markdownify, feedparser, trafilatura.
Co-Authored-By: Claude <noreply@anthropic.com>
httpx held an obvious-choice slot with no stable release since 0.28.1 and its maintainer closed issues and discussions, while httpx2, Pydantic's same-API continuation, sat last despite openai, anthropic, huggingface-hub, mcp and langsmith now requiring it.
Co-Authored-By: Claude <noreply@anthropic.com>
Web Asset Management omitted whitenoise, the standard static-file server for Django and WSGI production setups and the most-installed tool in the use case.
Co-Authored-By: Claude <noreply@anthropic.com>
Web APIs > Flask lacked marshmallow-code's flask-smorest, the second most-installed Flask API framework, so the challenger apiflask sat above a more widely used entry.
Co-Authored-By: Claude <noreply@anthropic.com>
Web APIs > Flask listed only apiflask (172,781 downloads/month) while flask-restx, the most-installed Flask API framework at 1,162,703 (pypistats 2026-10-02), was missing.
Co-Authored-By: Claude <noreply@anthropic.com>
In Web APIs > Framework Agnostic, connexion (4.26M downloads/month) sat above strawberry (5.76M) against the downloads-order rule, and gunicorn's line omitted the native ASGI worker it has shipped stable since 25.1.0. hypercorn stays in Second Tier (last position, unchanged) under the new Python-version rule instead of being dropped.
Co-Authored-By: Claude <noreply@anthropic.com>
The OCR list had pytesseract and easyocr but omitted PaddleOCR, which led 2026 open-source OCR benchmarks on multilingual text and complex layouts.
Co-Authored-By: Claude <noreply@anthropic.com>
Time Series Forecasting listed only timesfm, while prophet, the most-installed forecasting library, was missing.
Co-Authored-By: Claude <noreply@anthropic.com>
The tensorflow line called it "the most popular Deep Learning framework", false by downloads (torch 59.8M/month vs tensorflow 11.4M on pypistats, 2026-10-02), and the Frameworks tiers no longer matched the evidence: tensorflow 2.21.0 still ships no cp314 wheels (tensorflow/tensorflow#102890) and its releases now focus on security and bug fixes, while keras's 11.76M is mostly tensorflow pulling it in (requires keras>=3.12.0). Both move to Second Tier; jax (8.0M, Google's own successor) and pytorch-lightning (10.1M) become obvious choices.
Co-Authored-By: Claude <noreply@anthropic.com>
The AI and Agents section carried two Speech entries that fail admission, its tier order no longer matched downloads, LiteLLM was not listed under its PyPI name, and unsloth's line missed its desktop app. Downloads are PyPI last-30-day via ClickPy, fetched 2026-09-26.
Removed:
- vibevoice (440/month): the only PyPI release is 0.0.1 from 2025-09-26; the TTS-1.5B model is disabled after misuse and the ASR model now ships in transformers, so nothing pip-installable is maintained.
- kittentts (1,917/month): the README marks it "Developer preview" (fails Stable), and PyPI kittentts is a third-party upload while the project installs from its GitHub release wheel.
Also:
- pydantic-ai promoted to obvious choice above crewai (5.37M vs 2.48M); crewai's pypistats monthly series swung from 28.5M in Aug to 2.4M in Sep and it requires_python <3.14, so it is now a Second Tier challenger.
- claude-agent-sdk reordered above openai-agents (29.1M vs 12.1M).
- LiteLLM renamed to litellm, its canonical PyPI name.
- unsloth description now mentions the desktop app.
- gTTS reordered above funasr by downloads (1.14M vs 282K).
Co-Authored-By: Claude <noreply@anthropic.com>
awesome-pyramid last pushed 2021-07-08 and awesome-fasthtml 2024-09-08, both stale (checked via GitHub API 2026-09-27).
Co-Authored-By: Claude <noreply@anthropic.com>
18 entry descriptions overstated, understated, or misattributed their projects, checked against upstream on 2026-09-27 and approved row by row.
- django: "most popular" contradicted by the 2024 JetBrains/PSF survey, where FastAPI leads overall; now uses Django's own tagline.
- joblib: described as pipelining; its docs say parallel computing and disk caching.
- huey: called only "multi-threaded"; it also supports multi-process and greenlet workers.
- numba: updated to its current NumPy-aware wording.
- pytesseract: credited Google as Tesseract's developer, which ended in 2017.
- pennylane: description was narrower than its quantum computing/QML/chemistry scope.
- channels: didn't mention WebSocket support.
- justhtml: left out that it sanitizes untrusted HTML by default.
- akshare: left out its academic-research-only data terms.
- timesfm: left out its non-commercial default weights.
- pyvips: used libvips's own tagline instead of describing it as a binding.
- ultralytics: dropped an unverifiable SOTA claim and added its tracking capability.
- pandera: listed only 3 of its supported dataframe backends.
- sentry-skills: claimed a Python focus and debugging scope; it's the Sentry team's own skill set.
- trailofbits-skills: claimed to be Python-friendly, but only 2 of 85 skills are Python-specific.
- mysqlclient: fork link pointed to SourceForge mysql-python instead of MySQLdb1, and it now notes MariaDB support.
- charset-normalizer: called "the default" of requests, which prefers chardet when installed.
- pynacl: described as binding NaCl directly; it binds libsodium, a NaCl fork.
Co-Authored-By: Claude <noreply@anthropic.com>
Computer Vision's description said nothing; Template Engines claimed lexing; Email claimed parsing and mail server management though yagmail only sends; Build Tools said "compile software" though Invoke and doit are task runners; File Format Processing said "text formats" though it covers ELF, xlsx, docx, and PDF; Package Repositories left out mirrors like bandersnatch. These descriptions show on the category pages.
Co-Authored-By: Claude <noreply@anthropic.com>
langchain used an old composability tagline; transformers named only NLP/vision/audio though it now covers text, vision, audio, video, and multimodal; pgmpy left out its causal reasoning scope; uvicorn listed uvloop/httptools though both are optional extras; django-oauth-toolkit's "goodies" undersold an OAuth 2.0 authorization server; django-unfold used marketing copy instead of a description; pyparsing didn't match its repo's PEG parser description; pdfminer.six didn't say what it does; pyyaml's "implementations" was vague; whenever didn't reflect its Rust-or-pure-Python support; itsdangerous used an outdated upstream tagline; winpython's "Windows 10/11" will go stale; mssql-python's "low memory usage" claim has no upstream source; diskcache repeated the project's own speed benchmark instead of describing it; hishel left out its server-side support; jupyter used IPython's tagline instead of its own; ray used an old tagline; wxPython's sentence was garbled; kivy referenced outdated "NUI" and "Mac OS X" terms.
Co-Authored-By: Claude <noreply@anthropic.com>
funasr: dropped stale 170x realtime and 50+ languages claims
easyocr: language count was stale at 40+, verified 80+
apiflask: said Marshmallow-only, missing its Pydantic support
urllib3: "A HTTP" grammar and awkward phrasing
django.db.models: linked to /en/dev/ instead of /en/stable/
pymysql: grammar slip "compatible to mysql-python", a phrase upstream dropped
zvec: unsourced "SQLite of vector databases" superlative
elasticsearch: linked to a redirected elastic.co/products/elasticsearch URL
matplotlib: called "2D" only, ignoring its animated/interactive support
geodjango: linked to /en/dev/ instead of /en/stable/
scipy: retired "ecosystem" tagline
mypy: "compile time" is wrong, Python has no compile-time type checking
tox: missing trailing period
schemathesis: described as OpenAPI/Swagger only, misses GraphQL schema support
polyfactory: grammar slip "support to classes"
mimesis: grammar slip "is a Python library that help you"
pdoc: outdated "Epydoc replacement" framing
pyinfra: grammar slip "A versatile CLI tools and python libraries"
typer: wrongly claimed to be built on Pydantic
copier: "projects templates" grammar slip
pygobject: said GTK+3 only, it now supports GTK 4
dearpygui: grammar slip and missing period
PySide6: claimed to be "same as PyQt6", it's not fully API-compatible
markupsafe: grammar slip in description
python-docx: outdated "Word 2007/2008" framing
mistune: grammar slip "Fastest and full featured pure Python parsers"
pillow: PIL link 404s
wand: MagickWand link went through two redirects to a stub page
vidgear: unverifiable "Most Powerful" superlative
tinytag: format list stale, missing supported formats
panda3d: said "developed by Disney", no longer Disney-only
micropython: vague description, missing microcontroller target
dateparser: language count was vague "dozens", verified 200+ locales
warehouse: outdated "Next generation" tagline
Nuitka: wrongly claimed to support all Python versions
cx-Freeze: grammar slip "It is a Python tool that converts"
dynaconf: wrongly claimed a FastAPI plugin
pip-audit: wrong database name
uv-audit: wrongly claimed malware scanning
pyenv-win: wrongly credited pyenv instead of rbenv-win as its fork origin
Co-Authored-By: Claude <noreply@anthropic.com>
Keep the docs link inline in the description instead of as the primary entry link, matching the format used by other entries.
Co-Authored-By: Claude <noreply@anthropic.com>
django.db.models, geodjango, httpx.URL and uv audit were rendering
"Not on PyPI" alongside eighteen genuinely standalone projects that
simply are not packaged on PyPI, conflating two different reasons for
a missing download count.
These four entries now carry a "(part of X)" description prefix in
README.md, mirroring the existing "(Python standard library)"
convention. build.py reads that prefix into a bundled flag that both
templates render as a "Bundled" badge.
The prefix approach was chosen over a separate data file so README.md
stays the single source of content truth, and over inferring from the
entry name because geodjango is neither dotted nor spaced and would
have been missed. Redundant tail wording was trimmed from the
httpx.URL, geodjango and uv audit descriptions now that the prefix
names the parent.
The new entry format is documented in CONTRIBUTING.md and the
vocabulary in CONTEXT.md.
Co-Authored-By: Claude <noreply@anthropic.com>
Material for MkDocs went into maintenance mode on 2025-11-05 and its
own team called upstream mkdocs unmaintained since 2024-08 and a
supply chain risk; the mkdocs repo was last pushed 2025-10-20. Since
mkdocs-material hard-depends on mkdocs, mkdocs' download count is
almost entirely mkdocs-material pulling it in (18,360,677/month vs
mkdocs-material's 18,167,775/month, ~1% delta), so dropping the
redundant direct entry costs little. zensical is a clean replacement
with no mkdocs dependency, built by the same Material for MkDocs
team, at 1,585,786 downloads/month and 5,540 stars, pushed
2026-08-21. Added as a challenger, placed last below pdoc, keeping
the section at 5 of 5. Approved via verdict preview.
Co-Authored-By: Claude <noreply@anthropic.com>