2869 Commits
Author SHA1 Message Date
Vinta Chen a14036fa6f Merge branch 'fix/sponsorship' 2026-09-29 22:42:02 +08:00
Vinta Chen a2801e72c0 update docs 2026-09-29 22:40:55 +08:00
Vinta Chen 4a62a22e90 add FUNDING 2026-09-29 22:38:29 +08:00
VRX 29fa24f619 fix: move logfire after loguru following Standard Library first 2026-09-28 13:15:12 +04:00
vikasrana d12af41a48 Add logfire to Logging section 2026-09-28 13:15:12 +04:00
Vinta Chen 104361bccb Merge branch 'audit-log-overrides' 2026-09-27 21:02:23 +08:00
Vinta ChenandClaude 160d9c01f1 docs: record openviking and seleniumbase audit overrides
docs/audit-logs.md claimed every maintainer override is recorded, but the openviking stability override (PR #3302) and the seleniumbase challenger-evidence override (PR #3284) were missing.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 21:01:58 +08:00
Vinta Chen ec4fd5dd7e Merge branch 'code-chip'
Deploy Website / deploy (push) Canceled after 0s
CI / test (push) Canceled after 0s
2026-09-27 15:19:39 +08:00
Vinta ChenandClaude b6748825e6 style: give inline code in intros a chip appearance
Inline code in category intros and guides inherited the body font with no background, so identifiers like INSTALLED_APPS read as ordinary words.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 15:19:27 +08:00
Vinta Chen 6eaa8a4c58 Merge branch 'fix/todo-pass2' 2026-09-27 15:11:22 +08:00
Vinta ChenandClaude a25bb7ac54 docs: remove stale nested awesome lists for pyramid and fasthtml
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>
2026-09-27 15:10:37 +08:00
Vinta ChenandClaude 6a038e3fef docs: fix inaccurate entry descriptions across README
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>
2026-09-27 15:06:32 +08:00
Vinta ChenandClaude 9cdd11b624 docs: rewrite File Format Processing category intro lead
This lead followed the same appositive frame as the other category intro leads ("X, a/the Python Y library ..."), so it read as one template with the category swapped in; it now has its own sentence frame, keeping the same picks and facts.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 14:53:14 +08:00
Vinta ChenandClaude a04833275a docs: rewrite Template Engines category intro lead
This lead followed the same appositive frame as the other category intro leads ("X, a/the Python Y library ..."), so it read as one template with the category swapped in; it now has its own sentence frame, keeping the same picks and facts.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 14:53:14 +08:00
Vinta ChenandClaude 540f462d4b docs: rewrite WebSocket category intro lead
This lead followed the same appositive frame as the other category intro leads ("X, a/the Python Y library ..."), so it read as one template with the category swapped in; it now has its own sentence frame, keeping the same picks and facts.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 14:53:14 +08:00
Vinta ChenandClaude 36880b3d87 docs: rewrite Web Servers category intro lead
This lead followed the same appositive frame as the other category intro leads ("X, a/the Python Y library ..."), so it read as one template with the category swapped in; it now has its own sentence frame, keeping the same picks and facts.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 14:53:13 +08:00
Vinta ChenandClaude fc09dc7067 docs: rewrite Web Frameworks category intro lead
This lead followed the same appositive frame as the other category intro leads ("X, a/the Python Y library ..."), so it read as one template with the category swapped in; it now has its own sentence frame, keeping the same picks and facts.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 14:53:13 +08:00
Vinta ChenandClaude 86d857055b docs: rewrite Web APIs category intro lead
This lead followed the same appositive frame as the other category intro leads ("X, a/the Python Y library ..."), so it read as one template with the category swapped in; it now has its own sentence frame, keeping the same picks and facts.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 14:53:13 +08:00
Vinta ChenandClaude f293ce3549 docs: rewrite Game Development category intro lead
This lead followed the same appositive frame as the other category intro leads ("X, a/the Python Y library ..."), so it read as one template with the category swapped in; it now has its own sentence frame, keeping the same picks and facts.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 14:53:13 +08:00
Vinta ChenandClaude 56aa4073d7 docs: rewrite Date and Time category intro lead
This lead followed the same appositive frame as the other category intro leads ("X, a/the Python Y library ..."), so it read as one template with the category swapped in; it now has its own sentence frame, keeping the same picks and facts.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 14:53:13 +08:00
Vinta ChenandClaude 2c0486a34a docs: rewrite Data Validation category intro lead
This lead followed the same appositive frame as the other category intro leads ("X, a/the Python Y library ..."), so it read as one template with the category swapped in; it now has its own sentence frame, keeping the same picks and facts.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 14:53:13 +08:00
Vinta ChenandClaude edc3db37fa docs: fix 6 section descriptions that misdescribed their sections
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>
2026-09-27 14:53:13 +08:00
Vinta ChenandClaude 1ed83b7f3d docs: fix 19 entry descriptions that drifted from upstream
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>
2026-09-27 14:53:12 +08:00
Vinta ChenandClaude ec818ebcf8 fix: drop redundant aria-hidden on homepage description rows
Homepage description rows carried aria-hidden="true" on top of hidden, unlike category pages (fixed in 528f9ed); the hidden attribute alone already keeps them from assistive tech while hidden.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 14:48:02 +08:00
Vinta ChenandClaude 0abd19a99c fix: number rows in sorted order after a column sort
applyFilters walked the static load-order NodeList, so after sorting by a column header, row numbers kept each row's original load-order position instead of counting 1..n down the sorted table.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 14:48:02 +08:00
Vinta ChenandClaude f0ebe92155 fix: order category page JSON-LD ItemList to match rendered rows
Category pages' JSON-LD ItemList listed entries in download order while the table renders them in README (editorial) order, so structured-data positions didn't match the visible rows.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 14:47:00 +08:00
Vinta ChenandClaude 5c4607dd0f refactor: reformat clickpy query string with ruff format
ruff format --check flagged this file for the multi-line f-string concatenation.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 14:46:55 +08:00
Vinta Chen 91927eadf8 Merge branch 'fix/small-fixes' 2026-09-27 14:40:55 +08:00
Vinta ChenandClaude 7a841f2e68 docs: fix duplicate rembg link in image-processing intro
The rembg paragraph linked the same GitHub URL twice; the model-license link now points at the README's models section, where that claim is stated.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 14:40:55 +08:00
Vinta ChenandClaude 2756fba0ef docs: name Ultralytics' license by family in computer-vision intro
The intro named Ultralytics' license with its version, AGPL-3.0, against the rule that intros name a license by family only.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 14:40:55 +08:00
Vinta Chen 6a2acf7f93 Merge branch 'fix/readme-todo-descriptions' 2026-09-27 14:35:55 +08:00
Vinta ChenandClaude 169fafddab docs: fix wrong, outdated, and broken README entry descriptions
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>
2026-09-27 14:35:55 +08:00
Vinta Chen ae3e309f2e Merge branch 'feature/category-page-redesign' 2026-09-27 12:46:49 +08:00
Vinta ChenandClaude 79f739091e docs: add Built-in Classes Enhancement category intro
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 11:21:40 +08:00
Vinta ChenandClaude 5516521bc6 docs: add Supply Chain Security category intro
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 11:21:36 +08:00
Vinta ChenandClaude 9627a14e92 docs: add Network Virtualization category intro
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 11:21:32 +08:00
Vinta ChenandClaude 8977f4c3d3 docs: add Miscellaneous category intro
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 11:21:28 +08:00
Vinta ChenandClaude 046c75a16b docs: add Web Security category intro
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 11:21:25 +08:00
Vinta ChenandClaude 64d74fae47 docs: add Distribution category intro
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 11:21:21 +08:00
Vinta ChenandClaude b7e68cd25a docs: add Microsoft Windows category intro
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 11:00:56 +08:00
Vinta ChenandClaude eca97d81c4 docs: add Algorithms and Design Patterns category intro
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 11:00:52 +08:00
Vinta ChenandClaude 28fb6affea docs: add Penetration Testing category intro
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 11:00:49 +08:00
Vinta ChenandClaude a1a1f01d91 docs: add ERP category intro
The ERP category page had no intro, showing only the table with a generic meta description.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 10:52:10 +08:00
Vinta ChenandClaude 7d74a36e4b docs: add File Manipulation category intro
The File Manipulation category page had no intro, showing only the table with a generic meta description.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 10:52:07 +08:00
Vinta ChenandClaude 03604c4244 docs: add DevOps Tools category intro
The DevOps Tools category page had no intro, showing only the table with a generic meta description.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 10:52:04 +08:00
Vinta Chen e9dbd87139 docs: add Environment Management category intro 2026-09-27 10:38:03 +08:00
Vinta Chen 7846e7a610 docs: add HTML Manipulation category intro 2026-09-27 10:37:59 +08:00
Vinta Chen cac4828514 docs: add Documentation category intro 2026-09-27 10:37:55 +08:00
Vinta ChenandClaude 35b5a50063 docs: add Search category intro
The Search category page had no intro, showing only the table with a generic meta description.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 10:24:43 +08:00
Vinta ChenandClaude 219fb43236 docs: add Recommender Systems category intro
The Recommender Systems category page had no intro, showing only the table with a generic meta description.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-27 10:24:40 +08:00