mirror of
https://github.com/vinta/awesome-python.git
synced 2026-10-08 00:53:22 +08:00
Merge branch 'audit-followups'
This commit is contained in:
@@ -33,7 +33,7 @@ Run the `preview-verdicts` skill: it generates the interactive review page and d
|
||||
|
||||
## 5. Execute
|
||||
|
||||
One commit per section: body lists each removal with its reason and downloads figure; restructures, tier moves, and reorders ride the same commit. A restructure that renames or dissolves a category or subcategory adds `"old path": "new path"` to `website/data/redirects.json` in that commit, so the old URL keeps its search ranking; the build fails when a redirect target no longer exists, so a later rename also updates the entries pointing at the renamed path. Format-only outcomes (no removals) are a single style commit. `make test` before every commit, `make build` after the last one. Generic commit helpers tend to split a section audit into structural and per-subcategory commits — if that happens, squash back to one commit per section. Done when the tree is clean, tests passed before each commit, and the build count reconciles with the adjudicated changes.
|
||||
One commit per section: body lists each removal with its reason and downloads figure, naming the figure's source and fetch date so a later audit can tell whether a trend compares like with like (ClickPy counts mirror traffic, pypistats does not); restructures, tier moves, and reorders ride the same commit. A restructure that renames or dissolves a category or subcategory adds `"old path": "new path"` to `website/data/redirects.json` in that commit, so the old URL keeps its search ranking; the build fails when a redirect target no longer exists, so a later rename also updates the entries pointing at the renamed path. Format-only outcomes (no removals) are a single style commit. `make test` before every commit. After the last add or rename, re-run the ClickPy sweep, since new names have no cache row and the build would count them without downloads, then `make build`. Generic commit helpers tend to split a section audit into structural and per-subcategory commits — if that happens, squash back to one commit per section. Done when the tree is clean, tests passed before each commit, and the build count reconciles with the adjudicated changes.
|
||||
|
||||
## 6. Record
|
||||
|
||||
|
||||
@@ -394,7 +394,7 @@ _Libraries to automate web scraping and extract web content._
|
||||
- [scrapy](https://github.com/scrapy/scrapy) - A fast high-level screen scraping and web crawling framework.
|
||||
- [crawl4ai](https://github.com/unclecode/crawl4ai) - An open-source, LLM-friendly web crawler that provides lightning-fast, structured data extraction specifically designed for AI agents.
|
||||
- [stagehand](https://github.com/browserbase/stagehand) - A fast and token-efficient browser automation SDK to extract data and perform self-healing actions on web pages.
|
||||
- [jev-ultrafast](https://github.com/browser-use/jev-ultrafast) - A fast browser agent that picks actions from an indexed table of page elements, using a small LLM only to type text.
|
||||
- [jev-ultrafast](https://github.com/browser-use/jev-ultrafast) - A fast browser agent that picks actions from an indexed table of page elements through TypeSafe's hosted Jev API, using a small LLM only to type text.
|
||||
- Content Extraction
|
||||
- [markdownify](https://github.com/matthewwithanm/python-markdownify) - Convert HTML to Markdown, with customizable tag handling.
|
||||
- [feedparser](https://github.com/kurtmckee/feedparser) - Universal feed parser.
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
"google-cloud-python": { "package": null, "reason": "monorepo umbrella; ships as many google-cloud-* packages", "badge": "Multiple on PyPI" },
|
||||
"graphify": { "package": null, "reason": "GitHub-only so far; young project, remap if it publishes" },
|
||||
"httpx-url": { "package": null, "reason": "class in the httpx package, not a package" },
|
||||
"jev-ultrafast": { "package": null, "reason": "not published on PyPI" },
|
||||
"jinja": { "package": "jinja2", "reason": "PyPI jinja is Jinja1; current releases publish as jinja2" },
|
||||
"mem0": { "package": "mem0ai", "reason": null },
|
||||
"micropython": { "package": null, "reason": "interpreter distributed as firmware builds, not pip" },
|
||||
|
||||
Reference in New Issue
Block a user