Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1262 commits
Select commit Hold shift + click to select a range
bdeb5b9
Fix duplicate entry for feedparser in README
zainsardar-tech Mar 13, 2026
0c9df33
Merge pull request #2961 from zainsardar-tech/master
JinyangWang27 Mar 15, 2026
9eb21b2
Add pgmpy library to Machine Learning section
Ashi-tha Mar 15, 2026
8b9dc48
Merge pull request #2962 from Ashi-tha/add-pgmpy-library
JinyangWang27 Mar 16, 2026
742c99a
fix entry order
JinyangWang27 Mar 17, 2026
5ef25f1
Merge pull request #2950 from hiSandog/add-agno
JinyangWang27 Mar 17, 2026
a8eac91
add sponsorship
vinta Mar 17, 2026
bd73b1f
remove zipline
JinyangWang27 Mar 18, 2026
1f7757f
Merge pull request #2968 from JinyangWang27/remove-zipline
JinyangWang27 Mar 18, 2026
4af84da
remove mkdocs site infrastructure
vinta Mar 18, 2026
177183d
add custom website build system
vinta Mar 18, 2026
cd7b8f6
update README description and remove Resources section
vinta Mar 18, 2026
2fe0f5c
ci: bump actions/checkout to v6 and upload-pages-artifact to v4
vinta Mar 18, 2026
87a16f4
build: load .env in Makefile and rename fetch_stars to site_fetch_stats
vinta Mar 18, 2026
7eb9b11
data: remove zipline entry from github_stars.json
vinta Mar 18, 2026
a732751
Merge pull request #2969 from vinta/feature/relaunch-website
vinta Mar 18, 2026
c5caa5a
ci: hardcode deployment URL to https://awesome-python.com
vinta Mar 18, 2026
5fa7c7d
feat(website): add markdown-it-py README parser and inline renderer t…
vinta Mar 18, 2026
1c67c9f
feat: replace regex README parser with markdown-it-py AST parser
vinta Mar 18, 2026
3d015bc
feat(parser): implement entry extraction from bullet list AST nodes
vinta Mar 18, 2026
a838098
feat: implement HTML rendering for readme sections
vinta Mar 18, 2026
03ac212
test: add integration tests against the real README.md
vinta Mar 18, 2026
0f37497
refactor: extract parsing logic from build.py into readme_parser module
vinta Mar 18, 2026
143abbf
build: remove markdown dependency, replaced by markdown-it-py
vinta Mar 18, 2026
af3baab
refactor: consolidate load_cache into build.load_stars
vinta Mar 18, 2026
266a6b6
simplify: remove redundant _has_description, unused param, merge loops
vinta Mar 18, 2026
74bba50
build: restructure dependency groups and add watchdog
vinta Mar 18, 2026
45391b8
build: simplify Makefile targets and add live-reload preview
vinta Mar 18, 2026
9571899
build: add project metadata and restructure dependency groups
vinta Mar 18, 2026
25ec0c3
feat: extract inline favicon to static SVG file
vinta Mar 18, 2026
15a38ca
style: simplify footer layout and update links
vinta Mar 18, 2026
95b6b3c
feat: improve table accessibility and mobile expand tags
vinta Mar 18, 2026
280f250
feat: migrate README parser to markdown-it-py and refresh website
vinta Mar 18, 2026
539edc4
Merge pull request #2971 from vinta/feature/markdown-it-py-parser
vinta Mar 18, 2026
ab18c7e
refactor: reformat build.py to Black style and add llms.txt output
vinta Mar 18, 2026
b6d1bf9
ci: use uv dependency groups and Makefile target for deploy workflow
vinta Mar 18, 2026
d65c6cc
refactor: rename fetch_stats target and remove cache age gating
vinta Mar 18, 2026
bbe145c
ci: add workflow to fetch and commit GitHub stars daily
vinta Mar 18, 2026
bfed6a5
ci: trigger deploy after fetch-github-stars workflow succeeds
vinta Mar 18, 2026
3c3f371
fix: use canonical GitHub Actions bot email with numeric ID
vinta Mar 18, 2026
0d9dfb2
ci: consolidate star fetch into deploy workflow using Actions cache
vinta Mar 18, 2026
4845157
gitignore website/data
vinta Mar 18, 2026
6148c13
feat: skip fetching repos whose cache entry is still fresh
vinta Mar 18, 2026
957d685
ci: run fetch-stars step on every workflow trigger
vinta Mar 18, 2026
fa00f10
Merge pull request #2972 from vinta/feature/fetch-stats-workflow
vinta Mar 18, 2026
c1a4e69
fix: replace non-GitHub URLs with GitHub repo URLs in README
vinta Mar 18, 2026
f7a5ed8
docs: move Automatic Rejection section to end; note GitHub URL prefer…
vinta Mar 18, 2026
56ccdfa
Merge pull request #2973 from vinta/fix/replace-non-github-urls-with-…
vinta Mar 18, 2026
7b80024
feat(website): add co-maintainer credit and bump hero-sub font size
vinta Mar 18, 2026
0cd4cca
chore(dates-times): replace pytz with zoneinfo
vinta Mar 18, 2026
5f44045
chore(files): move markitdown to Text Processing > Markdown
vinta Mar 18, 2026
02dab03
chore(text-processing): restructure Markdown subsection and add TOML
vinta Mar 18, 2026
d48c1b8
docs: move streamlit to Data Visualization from Admin Panels
vinta Mar 18, 2026
057081f
docs: move Beanie to ORM > NoSQL Databases from Database Drivers
vinta Mar 18, 2026
a7c5d84
docs: split Downloader into General and Financial Data subcategories
vinta Mar 18, 2026
79c0be0
docs: move docling and textract to Text Processing
vinta Mar 18, 2026
65db5ab
Merge pull request #2975 from vinta/chore/cleanup
vinta Mar 18, 2026
4a0db0d
docs: match project display names to their GitHub repo names
vinta Mar 18, 2026
fb3112d
docs: match 11 more display names to their GitHub repo names
vinta Mar 18, 2026
6ad2a77
docs: rename Jupyter Notebook (IPython) to jupyter
vinta Mar 18, 2026
3d534f5
docs: lowercase H2O and PyMC display names
vinta Mar 18, 2026
5036fe8
docs: normalize entry names to lowercase for django.db.models and rep…
vinta Mar 18, 2026
7a0abca
docs: remove dataclasses and DottedDict from Data Structures
vinta Mar 18, 2026
8a131b7
docs: rename Spark ML to spark.ml in Machine Learning
vinta Mar 18, 2026
6204196
docs: add naming convention rule to CONTRIBUTING.md
vinta Mar 18, 2026
2cbb2d7
docs: normalize entry names to lowercase
vinta Mar 18, 2026
55db9c7
docs: rename Box to box, PathPicker to fpp
vinta Mar 18, 2026
e70b25d
docs: fix tkinter entry to use stdlib format
vinta Mar 18, 2026
9761bac
docs: lowercase 8 project names to match their import names
vinta Mar 18, 2026
46caf8c
docs: add AI and Agents category with autoresearch
vinta Mar 18, 2026
8b51866
chore: redistribute Specialized group across existing groups
vinta Mar 18, 2026
926ba01
chore: split AI & Data into AI & ML and Data & Science
vinta Mar 18, 2026
ac9b69a
fix: reduce table padding on mobile for better centering and arrow vi…
vinta Mar 18, 2026
fb2a693
fix: reduce number and arrow column widths on mobile for tighter tabl…
vinta Mar 18, 2026
ca350eb
fix: use table-layout fixed on mobile to prevent column width inflation
vinta Mar 18, 2026
e967722
fix: improve mobile table layout with auto sizing and tighter spacing
vinta Mar 18, 2026
4077051
docs: clarify VS Code Python extension entry name
vinta Mar 18, 2026
4ea3134
fix: move group tag into category cell and hide on mobile
vinta Mar 18, 2026
716464e
fix: improve CSS polish with active states, font smoothing, and text …
vinta Mar 18, 2026
7baa887
remove bcbio-nextgen
JinyangWang27 Mar 19, 2026
bac9514
Merge pull request #2979 from JinyangWang27/remove-bcbio-nextgen
JinyangWang27 Mar 19, 2026
c537661
docs: update Environment and Package Management entries
vinta Mar 20, 2026
18011f8
feat: merge duplicate entries across multiple categories
vinta Mar 20, 2026
c0fc30c
docs: add new entries and reorganize existing ones across multiple ca…
vinta Mar 20, 2026
dd33949
refactor: consolidate and reorganize categories for clarity
vinta Mar 20, 2026
0183bf1
refactor: move entries to more accurate categories
vinta Mar 20, 2026
1272d70
refactor: flatten subcategories and rename sections for clarity
vinta Mar 20, 2026
efc08da
docs: reorganize AI, Data Visualization, GUI, and Scientific Computin…
vinta Mar 20, 2026
fd9b266
docs: reorganize ToC into thematic groups and update contributing guide
vinta Mar 20, 2026
4322026
refactor: parse thematic groups from README bold markers instead of h…
vinta Mar 20, 2026
bec9818
refactor: reorganize thematic groups and reorder sections within groups
vinta Mar 20, 2026
d7ffd63
docs: fix stale cross-reference link in Web Frameworks section
vinta Mar 20, 2026
1bc4218
docs: add missing well-known libraries across multiple sections
vinta Mar 21, 2026
1fa8847
docs: remove unmaintained or low-quality entries across multiple cate…
vinta Mar 21, 2026
0c4d411
refactor: consolidate thin subcategories and split Data Analysis by d…
vinta Mar 21, 2026
61e6f44
refactor: merge and reorganize sections for better discoverability
vinta Mar 21, 2026
f52c85a
docs: remove unmaintained or superseded entries across multiple sections
vinta Mar 21, 2026
96d44fc
docs: remove low-quality entries and consolidate cytoolz into toolz
vinta Mar 21, 2026
55e922e
docs: remove unmaintained or low-quality entries across multiple cate…
vinta Mar 21, 2026
1d09426
docs: remove unmaintained entries and add modern alternatives
vinta Mar 21, 2026
77b2750
docs: remove unmaintained entries and update PyPDF2 to pypdf
vinta Mar 21, 2026
5c05dab
add back ultrajson
vinta Mar 21, 2026
7ead57f
clean up
vinta Mar 21, 2026
f50bd8f
docs: remove unmaintained entries and replace youtube-dl with yt-dlp
vinta Mar 21, 2026
e8d3d29
docs: remove unmaintained entries and add awscli
vinta Mar 21, 2026
7512f63
docs: update repository URLs to reflect project org transfers
vinta Mar 21, 2026
7f21136
docs: remove unmaintained and redundant entries
vinta Mar 21, 2026
6b59080
docs: remove more unmaintained/redundant entries, replace hashids wit…
vinta Mar 21, 2026
ff91147
docs: update Email section description and replace pymssql with mssql…
vinta Mar 21, 2026
c87fdac
docs: remove Editor Plugins section and fold RPC into Web Servers
vinta Mar 21, 2026
79c6fc3
Update README.md
23f2000649-a11y Mar 21, 2026
d36f1ed
refactor(website): remove unused Entry TypedDict, write llms.txt from…
vinta Mar 21, 2026
3d9c2ae
perf(website): cache sort values and batch DOM appends in sortRows
vinta Mar 21, 2026
d78c2f7
refactor(website): hoist loop-invariant variables outside the fetch loop
vinta Mar 21, 2026
32acf94
ci: run tests before building and deploying website
vinta Mar 21, 2026
8107454
test: lower category count floor to 69 to match current README
vinta Mar 21, 2026
3417dce
use github repo url for openstack
vinta Mar 21, 2026
f7b51a6
fix: update entries to use GitHub URLs as primary links
vinta Mar 21, 2026
666f6e5
feat(website): add source type badges for non-GitHub entries
vinta Mar 21, 2026
bfaa207
refactor(website): rename stdlib source type label to Built-in
vinta Mar 21, 2026
8e7b881
fix(website): key dedup by (url, name) to allow same-url different-na…
vinta Mar 21, 2026
37a9443
fix(website): map built-in entries to cpython for star data lookup
vinta Mar 21, 2026
d3317bf
feat(website): add Built-in category tag for stdlib entries
vinta Mar 21, 2026
4f297a5
fix(website): sort starred stdlib entries after starred non-stdlib en…
vinta Mar 21, 2026
7aeb8fb
feat(website): add back-to-top button
vinta Mar 21, 2026
49eae1a
fix(website): center back-to-top button using left/margin instead of …
vinta Mar 21, 2026
7be5e77
fix(website): reduce tooltip transition duration from 0.25s to 0.15s
vinta Mar 21, 2026
b6bcb2c
feat(website): add entrance animations and CSS-based filter bar visib…
vinta Mar 21, 2026
bdc5c6c
style(website): remove hero-in entrance animation
vinta Mar 21, 2026
1d05e98
fix(website): make back-to-top scroll instant instead of smooth
vinta Mar 21, 2026
818950f
fix(website): fix sticky header on mobile and add border shadow
vinta Mar 21, 2026
49fafd3
refactor(website): move back-to-top button into sticky table header
vinta Mar 21, 2026
15b0ff3
fix: promote flower and pyenv-win to standalone entries
vinta Mar 21, 2026
7d1d9e0
feat: redesign website homepage
vinta Mar 21, 2026
06a5a70
style: refine website footer and heading
vinta Mar 22, 2026
39a2abb
style: polish website hero and table UI
vinta Mar 22, 2026
3e7ff12
Fix sticky top button behavior
vinta Mar 22, 2026
dbc8415
chore: add .playwright-cli and .agents to .gitignore
vinta Mar 22, 2026
951d233
refactor(css): extract font-size magic numbers into CSS custom proper…
vinta Mar 22, 2026
680de45
style(css): increase hero h1 font size on desktop and mobile
vinta Mar 22, 2026
800d698
style: fix expand-content font size and unify CTA copy
vinta Mar 22, 2026
2a5dc1a
docs: update tagline from opinionated to curated
vinta Mar 22, 2026
15df04e
copy: tighten website microcopy for clarity
vinta Mar 22, 2026
82e0a67
docs: change description from 'curated' to 'opinionated'
vinta Mar 22, 2026
003d05b
style: stack hero metrics to single column on mobile
vinta Mar 22, 2026
00b924d
style(css): lighten hero muted text color for better legibility
vinta Mar 22, 2026
f528177
style(css): add margin and border-top separator above final CTA section
vinta Mar 22, 2026
3bfa49b
style(footer): redesign footer with dark background and brand label
vinta Mar 22, 2026
315c188
Revert "style(css): add margin and border-top separator above final C…
vinta Mar 22, 2026
8271b7c
style: lighten footer separator color from 40% to 55% lightness
vinta Mar 22, 2026
57f189b
style(css): use white-space nowrap for .col-name instead of fixed width
vinta Mar 22, 2026
bc5f444
style(css): vertically center table body cells
vinta Mar 22, 2026
ec2928b
style(css): add decorative underline on link hover states
vinta Mar 22, 2026
73f7703
fix(template): show group tag before built-in source tag
vinta Mar 22, 2026
5a8c565
style(css): add background color to final-cta section
vinta Mar 22, 2026
0308fd1
feat: show category label on mobile in project name column
vinta Mar 22, 2026
97f18d2
feat: add clear action to no-results message
vinta Mar 22, 2026
d3070b7
feat: add build date to footer
vinta Mar 22, 2026
9d89df3
fix: back-to-top button scrolls to search input and focuses it
vinta Mar 22, 2026
1e8c432
style(search): use 'projects' instead of 'libraries' in search placeh…
vinta Mar 22, 2026
3841218
style: increase footer vertical padding from 2rem to 3rem
vinta Mar 22, 2026
53d280d
fix(css): scope final-cta grid to inner section-shell wrapper
vinta Mar 22, 2026
b12d80f
fix(readme): correct playwright entry name to playwright-python
vinta Mar 22, 2026
5fc022d
refactor(build): remove resources from build pipeline
vinta Mar 22, 2026
df2191f
refactor(build): remove unused group_categories wrapper
vinta Mar 22, 2026
cd3c8ad
refactor(css): consolidate --text-label and --text-tag into --text-xs
vinta Mar 22, 2026
4bb9c12
fix(website): accessibility and defensive layout improvements
vinta Mar 22, 2026
e960d47
perf(fonts): trim Google Fonts to weights in use
vinta Mar 22, 2026
80a5596
perf(hero): pause animations when hero scrolls out of view
vinta Mar 22, 2026
50e27b9
perf(css): add CSS containment to results section and detail panel
vinta Mar 22, 2026
302ae14
refactor(css): remove backdrop-filter blur from table header
vinta Mar 22, 2026
80a5051
fix(css): increase expand meta/also-see font size to --text-sm
vinta Mar 22, 2026
6648961
fix(css): hide col-num and expand-row first-child at col-cat breakpoint
vinta Mar 22, 2026
86aa623
fix(css): increase tag padding on mobile breakpoint
vinta Mar 22, 2026
f2b635d
fix(css): truncate long links in expand-meta and add mobile padding t…
vinta Mar 22, 2026
58c0fd9
fix(css): extend focus-visible outline to no-results-clear and footer…
vinta Mar 22, 2026
895da32
refactor(css): remove unused --bg-hover and --hero-shadow tokens
vinta Mar 22, 2026
7fa0a42
fix(css): remove outline:none suppression from .row:focus-visible td
vinta Mar 22, 2026
3954a3e
refactor(css): extract footer color values into CSS custom properties
vinta Mar 22, 2026
9447870
feat(html): add theme-color meta tag for browser UI chrome
vinta Mar 22, 2026
321df7b
refactor(hero): remove metrics block from hero section
vinta Mar 22, 2026
014ba9e
refactor(hero): remove redundant scroll cue
vinta Mar 22, 2026
a12fef4
refactor(results): remove redundant "Library index" section label
vinta Mar 22, 2026
f11468b
remove(readme): remove python-cqrs from Design Patterns
vinta Mar 22, 2026
ef51d9a
refactor(html-xml): replace cssutils with tinycss2
vinta Mar 22, 2026
8fbe0e0
fix(readme): sort tinycss2 alphabetically in HTML/XML section
vinta Mar 22, 2026
1b5a0c2
docs(claude): expand project structure and entry format docs
vinta Mar 22, 2026
7d1007d
docs(claude): clarify repo description and entry naming rule
vinta Mar 22, 2026
a92b1a6
fix(css): fix hero topbar layout on small screens
vinta Mar 22, 2026
dbff252
fix(css): hide last column in expand-row on mobile
vinta Mar 22, 2026
88031d7
fix(css): center footer on mobile
vinta Mar 22, 2026
3395b2e
fix(css): enable table horizontal scroll at 768px breakpoint
vinta Mar 22, 2026
25d3f30
docs(readme): reword sponsorship tagline
vinta Mar 22, 2026
394803d
docs(readme): add agent skills entries
vinta Mar 22, 2026
1c249d4
docs(readme): rename Testing Frameworks subcategory to Frameworks
vinta Mar 22, 2026
f2b4a7b
feat(website): surface subcategory labels as filterable tags
vinta Mar 22, 2026
cba7042
fix(readme): rename trailofbits entry to trailofbits-skills
vinta Mar 22, 2026
964f246
docs(readme): rename subcategory to CLI Development
vinta Mar 22, 2026
0c26d35
fix(website): scope subcategory filter values to parent category
vinta Mar 22, 2026
f6cea05
fix(css): remove unused tag-subcat styles
vinta Mar 22, 2026
1732a3f
docs(readme): reorganize Code Quality categories and rename CLI/Offic…
vinta Mar 22, 2026
e1a8841
fix(parser): strip trailing separators and links from subcategory labels
vinta Mar 22, 2026
749610d
docs(readme): rename 'Web' section header to 'Web Development'
vinta Mar 22, 2026
bb40861
refactor(html): remove tag-subcat class and inline button attributes
vinta Mar 22, 2026
31fa9a4
fix(css): reduce tag badge size and spacing
vinta Mar 22, 2026
028c642
refactor(js): replace var with let/const and use double quotes
vinta Mar 22, 2026
c5dd306
chore: add __pycache__ to .gitignore and remove sys.path hack in tests
vinta Mar 22, 2026
25a3f4d
refactor(parser): remove resources parsing, preview, and content_html…
vinta Mar 22, 2026
f27b7c8
feat(website): add social proof line to hero with star count and buil…
vinta Mar 22, 2026
80a72af
add header
vinta Mar 22, 2026
4a1f899
fix(css): increase kicker and section-label size and spacing
vinta Mar 22, 2026
4676684
Merge pull request #2984 from 23f2000649-a11y/master
vinta Mar 22, 2026
aa2e742
remove Python Test podcast (ended Aug 2025)
vinta Mar 22, 2026
e71f38e
test: add coverage for detect_source_type, format_stars_short, extrac…
vinta Mar 22, 2026
8861bcc
feat: add Open Graph image for social sharing
vinta Mar 24, 2026
60836d0
refactor(css): extract inline OKLCH values into CSS custom properties
vinta Mar 24, 2026
440a7c8
docs: rewrite SPONSORSHIP.md with clearer structure and comparison table
vinta Mar 21, 2026
f91c8fa
perf: self-host Google Fonts to eliminate render-blocking external re…
vinta Mar 24, 2026
2bdd0c2
fix(a11y): bump hero-proof text lightness from 68% to 75% for WCAG AA…
vinta Mar 24, 2026
db83de1
Revert "perf: self-host Google Fonts to eliminate render-blocking ext…
vinta Mar 24, 2026
d58c915
fix(a11y): respect prefers-reduced-motion in back-to-top scroll
vinta Mar 24, 2026
86885bc
fix(a11y): wrap sort column headers in button elements
vinta Mar 24, 2026
2e5a567
fix(css): limit hero sheen animation to 3 iterations
vinta Mar 24, 2026
dd3b2cc
docs: remove hardcoded entry count from sponsorship description
vinta Mar 24, 2026
088680e
fix(css): correct mobile expand-row hiding for col-cat vs expand-row …
vinta Mar 24, 2026
e06cb93
fix(css): expand sort header hit area to full th cell
vinta Mar 24, 2026
65bc88b
feat(css): add external link indicator for inline text links
vinta Mar 24, 2026
0e2c7fc
fix(a11y): enlarge tag touch target to meet 44px WCAG minimum
vinta Mar 24, 2026
6050b65
fix(a11y): use descriptive screen reader label for row number column
vinta Mar 24, 2026
ec5687a
fix(css): use overflow-x clip on table-wrap instead of static thead o…
vinta Mar 24, 2026
f1799c2
perf(fonts): defer Google Fonts load to avoid render-blocking
vinta Mar 24, 2026
7df2e36
feat(mobile): show last commit date in expand row on mobile
vinta Mar 24, 2026
63182f2
Revert "feat(css): add external link indicator for inline text links"
vinta Mar 24, 2026
cf9cde8
fix(css): use display:none for expand-row first/last cells on mobile
vinta Mar 24, 2026
856f436
fix(css): consolidate table-wrap overflow-x into single breakpoint
vinta Mar 24, 2026
6cb0cac
fix(css): increase footer font size from text-xs to text-sm
vinta Mar 24, 2026
8e360e8
style(html): reformat index.html for consistent indentation
vinta Mar 24, 2026
eb5b37d
feat(ux): smooth-scroll hero CTA without updating URL hash
vinta Mar 24, 2026
53684e7
fix(css): increase sort button focus outline-offset from 2px to 3px
vinta Mar 24, 2026
66242cf
refactor(css): consolidate .expand-commit into shared mobile media query
vinta Mar 24, 2026
57e4adb
style(html): reformat hero CTA anchor tag onto multiple lines
vinta Mar 24, 2026
3b69697
refactor(js): extract getScrollBehavior() helper to deduplicate prefe…
vinta Mar 24, 2026
d7a7e68
refactor(js): simplify filter state to a plain string
vinta Mar 24, 2026
57a5b43
fix(js): drop legacy category/group URL param aliases for filter
vinta Mar 24, 2026
4456783
docs: update social handle from Twitter to X (twitter.com -> x.com)
vinta Mar 24, 2026
7fdf6ab
refactor(js): hoist repeated queries, drop stale comments, tighten co…
vinta Mar 24, 2026
80d9279
refactor(css): consolidate .sort-btn:focus-visible into shared focus-…
vinta Mar 24, 2026
0b08110
fix(css): remove explicit flex layout from .hero-topbar mobile override
vinta Mar 24, 2026
7b6829c
style(html): reformat templates for consistent attribute and block sp…
vinta Mar 24, 2026
9425ab5
refactor(js): replace var with const for immutable bindings
vinta Mar 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions .claude/commands/review-pending-prs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
description: Review pending PRs against CONTRIBUTING.md acceptance criteria.
allowed-tools: Bash(gh api:*), Bash(gh pr close:*), Bash(gh pr diff:*), Bash(gh pr edit:*), Bash(gh pr list:*)
---

## Usage

```
/review-pending-prs
```

## Instructions

1. Fetch 10 open PRs with details: `gh pr list --repo vinta/awesome-python --limit 10 --search "-label:\"claude reviewed\"" --json number,title,author,url,body,files,mergeable,mergeStateStatus`
2. Fetch all PR diffs in parallel: `gh pr diff <number> --repo vinta/awesome-python`
3. Run quick rejection checks (no API calls needed):
- Has merge conflicts? (from `mergeable`/`mergeStateStatus`)
- Adds more than one project? (from diff)
- Duplicate entry? (from diff - URL already in README)
- Not a project submission? (from diff - e.g., random files, contributor list)
4. For PRs passing quick checks, fetch repo stats: `gh api repos/<owner>/<repo> --jq '{stars: .stargazers_count, created: .created_at, updated: .pushed_at, language: .language, archived: .archived}'`
5. Review against all criteria in [CONTRIBUTING.md](../../CONTRIBUTING.md)
6. Present summary table with recommendations
7. Ask user:

```
Would you like me to:
1. Close the rejected PRs with comments?
2. Add "claude reviewed" label to the passed PRs?
3. Do all
```

## Quick Rejection Checks

Check these rules first - if any fail, recommend rejection:

- PR has merge conflicts
- Add more than one project per PR
- Duplicate of existing entry
- Placed under an inappropriate category
- Project is archived or abandoned (no commits in 12+ months)
- No documentation or unclear use case
- Less than 100 GitHub stars AND not justified as a hidden gem
- Too niche — a thin wrapper, single-function utility, or narrow edge-case tool that most Python developers would never need

## Output Format

Provide a simple review:

1. **Rejection Check** - table with the above rules and PASS/REJECT
2. **Recommendation** - PASS or REJECT

## Close PRs

If user asks to close/reject:

```bash
gh pr close <number> --repo vinta/awesome-python --comment "<brief reason>"
```

## Mark as Passed

```bash
gh pr edit <number> --repo vinta/awesome-python --add-label "claude reviewed"
```

## Extra Instructions (If Provided)

$ARGUMENTS
18 changes: 18 additions & 0 deletions .claude/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"permissions": {
"allow": [
"Bash(gh api:*)",
"Bash(gh pr close:*)",
"Bash(gh pr comment:*)",
"Bash(gh pr diff:*)",
"Bash(gh pr edit:*)",
"Bash(gh pr list:*)",
"Bash(gh pr view:*)",
"Bash(gh run list:*)",
"Bash(gh run rerun:*)",
"Bash(gh run view:*)",
"Bash(gh search:*)"
],
"deny": []
}
}
25 changes: 21 additions & 4 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,24 @@
## Why this framework/library/software/resource is awesome?
## Project

A few sentences describing the reason.
[Project Name](url)

## Vote for this pull request
## Checklist

Who agrees that this change should be merged could add your reactions (e.g. :+1:) to this pull request.
- [ ] One project per PR
- [ ] PR title format: `Add project-name`
- [ ] Entry format: `* [project-name](url) - Description ending with period.`
- [ ] Description is concise and short

## Why This Project Is Awesome

Which criterion does it meet? (pick one)

- [ ] **Industry Standard** - The go-to tool for a specific use case
- [ ] **Rising Star** - 5000+ stars in < 2 years, significant adoption
- [ ] **Hidden Gem** - Exceptional quality, solves niche problems elegantly

Explain:

## How It Differs

If similar entries exist, what makes this one unique?
83 changes: 83 additions & 0 deletions .github/workflows/deploy-website.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: Deploy Website

on:
push:
branches:
- master
schedule:
- cron: "0 0 * * *"

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: pages
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6

- name: Install uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true

- name: Install dependencies
run: uv sync --group build

- name: Run tests
run: make test

- name: Restore star data cache
id: cache-stars
uses: actions/cache/restore@v4
with:
path: website/data/github_stars.json
key: github-stars-${{ github.run_id }}
restore-keys: github-stars-

- name: Fetch GitHub stars
id: fetch-stars
continue-on-error: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: make fetch_github_stars

- name: Save star data cache
if: steps.fetch-stars.outcome == 'success'
uses: actions/cache/save@v4
with:
path: website/data/github_stars.json
key: github-stars-${{ github.run_id }}

- name: Verify star data exists
run: |
if [ ! -f website/data/github_stars.json ]; then
echo "::error::github_stars.json not found. No cache and fetch failed or was skipped."
exit 1
fi
echo "Star data found: $(wc -l < website/data/github_stars.json) lines"
- name: Build site
run: make build

- name: Upload artifact
uses: actions/upload-pages-artifact@v4
with:
path: website/output/

deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: https://awesome-python.com/
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
19 changes: 17 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,21 @@
# macOS
.DS_Store

# python
.venv/
__pycache__/
*.py[co]

docs/index.md
site/
# website
website/output/
website/data/

# claude code
.claude/skills/
.gstack/
.playwright-cli/
.superpowers/
skills-lock.json

# codex
.agents/
10 changes: 0 additions & 10 deletions .travis.yml

This file was deleted.

37 changes: 37 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# CLAUDE.md

## Repository Overview

An opinionated list of Python frameworks, libraries, tools, and resources. Published at [awesome-python.com](https://awesome-python.com/).

## PR Review Guidelines

**Refer to [CONTRIBUTING.md](CONTRIBUTING.md)** for acceptance criteria, quality requirements, rejection rules, and entry format.

## Structure

- **README.md**: Source of truth. Hierarchical categories with alphabetically ordered entries.
- **CONTRIBUTING.md**: Submission guidelines and review criteria.
- **website/**: Static site generator that builds awesome-python.com from README.md.
- `build.py`: Parses README.md and renders HTML via Jinja2 templates.
- `fetch_github_stars.py`: Fetches star counts into `website/data/`.
- `readme_parser.py`: Markdown-to-structured-data parser.
- `templates/`, `static/`: Jinja2 templates and CSS/JS assets.
- `tests/`: Pytest tests for the build pipeline.
- **Makefile**: `make install`, `make build`, `make preview`, `make test`, `make fetch_github_stars`.
- **pyproject.toml**: Uses `uv` for dependency management. Python >=3.13.

## Entry Format

```markdown
- [project-name](https://github.com/owner/repo) - Description ending with period.
```

Use PyPI package name as display name. If not on PyPI, use the GitHub repo name. Use GitHub URLs when available.

## Key Rules

- Alphabetical ordering within categories is mandatory.
- Quality over quantity. Only "awesome" projects.
- One project per PR.
- README.md is the single source of content truth.
Loading