Commit Graph
2049 Commits
Author SHA1 Message Date
Vinta ChenandClaude cbbbb86d19 style: audit Machine Learning
pgmpy does causal and probabilistic reasoning with graphical models, closer to statistics than to the scikit-learn ecosystem in General, so it moves to Science > Statistics after statsmodels.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-11-08 22:13:28 +08:00
Vinta ChenandClaude 49daf78664 style: audit WebSocket
General held two jobs, so it splits into Servers and Clients (websockets, autobahn-python) and Framework Integrations (channels, flask-socketio), next to WebRTC.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-11-08 22:13:28 +08:00
Vinta Chen 7c7fe7a7e7 reorder 2026-11-08 22:07:23 +08:00
Vinta ChenandClaude 35b1f75f71 feat: add flask-cors to Web Security
CORS for Flask at 39,864,140 downloads/month, twice django-cors-headers; placed first by downloads, which moves secure to challenger.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-11-08 21:58:42 +08:00
Vinta ChenandClaude caf471e4ec feat: add pydantic-monty to AI and Agents
Mints a Code Sandboxes use case for running AI-written code locally; 4,353,276 downloads/month, 1.0.0 and Production/Stable. Hosted-sandbox clients stay out as vendor clients.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-11-08 21:58:42 +08:00
Vinta ChenandClaude 8ce02b5f6d feat: add aiortc to WebSocket
Splits the flat section into General and WebRTC, since a subcategory can't repeat the section name; aiortc is the WebRTC/ORTC stack for asyncio at 1,647,618 downloads/month, nearly all direct.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-11-08 21:58:42 +08:00
Vinta ChenandClaude 53d90ff375 feat: add pytest-benchmark to Testing
Mints a Benchmarking use case, since microbenchmarking isn't profiling; 10,066,606 downloads/month.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-11-08 21:58:42 +08:00
Vinta ChenandClaude da031029ed feat: add fsspec to File Manipulation
The unified filesystem interface that torch, huggingface-hub, and datasets build on, placed first in Remote Files by downloads (556.9M/month, mostly pulled in by those libraries).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-11-08 21:58:42 +08:00
Vinta ChenandClaude f67c3c8c32 feat: add smart-open to File Manipulation
Mints a Remote Files use case for streaming files from cloud and remote storage; about 35.9M of smart-open's 57.5M downloads/month is its own after weasel and gensim.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-11-08 21:58:42 +08:00
Vinta ChenandClaude df518203bc feat: add mlflow to Machine Learning
Mints an Experiment Tracking use case, since General holds modeling libraries; mlflow is its obvious choice at 19,887,934 downloads/month.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-11-08 21:58:42 +08:00
Vinta ChenandClaude 4c06983946 style: audit Data Visualization
Specialized becomes Graphs and Maps for graphviz, cartopy, and graphify. Redirects the old URL.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-11-08 21:34:56 +08:00
Vinta ChenandClaude d4257c44b5 style: audit DevOps Tools
Other, holding only borgbackup, becomes Backup. Redirects the old URL.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-11-08 21:34:56 +08:00
Vinta ChenandClaude 5710d8cf9b style: audit CLI Development
General becomes Argument Parsing for argparse, click, typer, and cyclopts, and prompt_toolkit moves to TUI Frameworks after textual. Redirects the old General URL.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-11-08 21:34:56 +08:00
Vinta ChenandClaude 7e7713f1b1 style: audit File Format Processing
General held two unrelated tools. tablib moves to Data Formats, and General becomes Binary Formats for pyelftools. Redirects the old General URL.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-11-08 21:34:56 +08:00
Vinta ChenandClaude 9789452c33 style: audit Text Processing
General held two unrelated tools. pyfiglet moves to CLI Development > Terminal Rendering as a challenger, and the rest becomes Diffs for difflib. Redirects the old General URL.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-11-08 21:34:56 +08:00
Vinta ChenandClaude d10664c555 style: audit Debugging Tools
Others mixed three jobs. pdb-like Debugger becomes Debuggers and takes debugpy, a new Web Framework Toolbars holds django-debug-toolbar, django-silk, and flask-debugtoolbar, and icecream joins Tracing. Redirects the two old subcategory URLs.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-11-08 21:34:51 +08:00
Vinta ChenandClaude 5e563d62a0 feat: add django-cors-headers to Web Security
18,834,120 downloads/month on pypistats (fetched 2026-11-08), 9x secure; Django REST framework's docs name it as the way to handle CORS.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-11-08 21:25:59 +08:00
Vinta ChenandClaude 65d217b0ea feat: add debugpy to Debugging Tools
78,662,693 downloads/month on pypistats (fetched 2026-11-08), about 24.0M of it its own after subtracting ipykernel, which requires it; VS Code's Python debugging docs tell users to pip install it for remote and attach debugging.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-11-08 21:25:19 +08:00
Vinta ChenandClaude 6b39e514e1 feat: add dataclasses to Built-in Classes Enhancement
Comparisons treat dataclasses as the default for class boilerplate and attrs as the upgrade for validators, converters, and slots.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-11-08 20:41:37 +08:00
Vinta ChenandClaude b23d89509c style: audit Built-in Classes Enhancement
Split the flat list by job, since demoting bidict left 1 obvious choice and 3 challengers, over the 2-challenger cap. Class Boilerplate: attrs. Mappings: python-box promoted to obvious (5,756,670 downloads/month); bidict demoted to Second Tier, since python-socketio hard-depends on it and accounts for 21.4M of its 23.0M on pypistats, leaving about 1.6M of its own. UUID: uuid-utils, kept on judgment (most of its count comes from langsmith and langchain-core depending on it). Description fixes for attrs, bidict, and python-box. No removals. Figures: ClickPy fetched 2026-11-08 unless marked pypistats (same date).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-11-08 20:41:37 +08:00
Vinta ChenandClaude f415b2093a audit: restructure Documentation into use cases
The flat list mixed three jobs, so the tiers ranked diagrams and pdoc against site generators.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-11-08 20:27:52 +08:00
Vinta ChenandClaude 85b5505683 feat: add basedpyright to Type Checkers
Challenger after pyright: 15.7% share in the 2026 Python Typing Survey (up from 10.9% in 2025) and 16.7M downloads/month via ClickPy vs pyrefly's 10.4M. Its only dependency is nodejs-wheel-binaries, so the count is independent demand, and the repo is active (last push 2026-10-28).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-11-08 20:16:09 +08:00
Vinta ChenandClaude eb69d9a6e3 add sponsor: PyUiBuilder
Co-Authored-By: Claude <noreply@anthropic.com>
2026-11-06 10:33:13 +08:00
Iain 9f823f456f docs: update prophet and pyrefly URLs to the meta org 2026-10-29 20:18:31 +00:00
Vinta ChenandClaude 91e199ced6 docs: fix grammar of loguru description
The loguru description broke the Description Style grammar: it lacked an article, used "which" on a restrictive clause, and said "bring ... in" instead of "to".

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-28 09:25:48 +08:00
Vinta ChenandClaude 91479c676e docs: fix grammar and hyphenation in README descriptions
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-28 08:23:50 +08:00
Vinta ChenandClaude 0bc053bdab docs: fix grammar in README descriptions
The Static Site Generators description used "a software", funcy's entry put "A" before plural "tools", and pyarmor's entry lacked an article.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-28 08:21:09 +08:00
Vinta ChenandClaude b23ca01edd docs: use a straight apostrophe in the markdown entry description
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-25 22:48:53 +08:00
Vinta Chen 4c4298751f remove litellm, it got hacked twic 2026-10-22 12:37:01 +08:00
Vinta ChenandClaude e0dd1e7ca4 docs: tighten sponsor copy in README, SPONSORSHIP.md, and sponsorship page
The sponsor copy bolded two phrases in the README call to action, repeated tier prices already in the tier headings, repeated one phrase across three Content tiers, and had a double "or" in the Duration line.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 16:37:36 +08:00
Vinta ChenandClaude 69d35b2462 feat: tag sponsor links with UTM parameters
Sponsor links carried no UTM tags, so sponsors saw awesome-python clicks at best as generic referral traffic and could not tell README clicks from website clicks. README sponsor entries now carry utm_source=awesome-python&utm_medium=sponsorship&utm_campaign=sponsor&utm_content=readme, and the website build rewrites utm_content to website for the sponsor band. New sponsor entries in README.md need the same UTM suffix.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 09:09:22 +08:00
Vinta ChenandClaude 94f70f8425 feat: show lowest sponsor price and link README CTA to the website
The README sponsor CTA linked to SPONSORSHIP.md, so sponsor-page visits from the README never reached GA4.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 09:09:22 +08:00
Vinta ChenandClaude af248d22ce feat: add deepinfer to LLM Serving
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-21 08:02:39 +08:00
Vinta ChenandClaude 4844596cf7 docs: shorten entry descriptions that wrap in the GitHub README
22 entry descriptions ran past the width at which GitHub's README wraps a rendered line onto a second line.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-19 13:02:46 +08:00
Vinta ChenandCodex abfab010e9 docs: restore dogpile.cache in general caching
Replacing framework-independent dogpile.cache with Django-only django-redis removed the shared Redis and Memcached cache use case, and a single Caching group conflated distinct jobs.

Co-Authored-By: Codex <noreply@openai.com>
2026-10-16 19:19:49 +08:00
Vinta ChenandCodex 17fd2e592f docs: move Faiss into vector search
Faiss indexes vectors and integer IDs rather than storing documents and metadata, so its Database placement contradicted the category definition.

Co-Authored-By: Codex <noreply@openai.com>
2026-10-16 19:17:28 +08:00
Vinta ChenandClaude e2ead5fc84 style: capitalize Python in entry descriptions
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 17:35:09 +08:00
Vinta ChenandClaude 3322bb3ce7 feat: add betterleaks to Supply Chain Security > Secret Scanning
Leaked secrets are a supply chain risk that dependency audits don't cover, so Supply Chain Security splits into Dependency Audits and Secret Scanning.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 17:26:54 +08:00
Vinta ChenandClaude cf2667a145 feat: add dill to Serialization > Object Pickling
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 17:26:49 +08:00
Vinta ChenandClaude 7de9a00a67 feat: add cloudpickle to Serialization > Object Pickling
Pickling arbitrary Python objects is a different job from data formats, so Serialization splits into Data Formats and Object Pickling.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 17:26:44 +08:00
Vinta ChenandClaude 3f6ed15ba9 feat: add magika to File Manipulation > File Type Detection
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 17:26:39 +08:00
Vinta ChenandClaude e011e9a1f1 refactor: split File Manipulation into Paths and File Watching and File Type Detection
File type detection is a different job from paths and file watching, and splitting them leaves room for a challenger in each without passing the cap.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 17:26:33 +08:00
Vinta ChenandClaude 3e6e5c1932 feat: add pypandoc to File Format Processing > File Conversion
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 17:26:28 +08:00
Vinta ChenandClaude 9a0040257b feat: add mise to Environment Management
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 17:26:23 +08:00
Vinta ChenandClaude d37b45d037 feat: add django-silk to Debugging Tools > Others
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 17:26:18 +08:00
Vinta ChenandClaude c9095fc74b feat: add ast-grep-cli to Code Analysis > Refactoring
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 17:26:13 +08:00
Vinta ChenandClaude 6084417daf feat: add scrapling to Web Scraping > Frameworks
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 17:26:08 +08:00
Vinta ChenandClaude 187b25bb1d audit: remove jev-ultrafast from Web Scraping > Frameworks
Removed: jev-ultrafast (no PyPI download signal; not published on PyPI): its README calls it an MVP and it needs a hosted API key, so the challenger slot goes to scrapling in the next commit. This overrides the Challenger Exception recorded 2026-10-02.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 17:26:03 +08:00
Vinta ChenandClaude f82dbec298 feat: add django-redis to Caching
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 17:25:58 +08:00
Vinta ChenandClaude 90a809d398 audit: remove dogpile.cache from Caching
Removed: dogpile.cache (about 1.9M downloads/month on ClickPy, 2026-10-16, down from 2.67M a year earlier): falling demand, and its slot goes to django-redis in the next commit.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-16 17:25:53 +08:00