Commit graph

2313 commits

Author SHA1 Message Date
Vinta Chen
0630ee973b
refactor(build): flatten extract_entries and annotate result dict
Collapse the if-seen/else-new branches so the category/group/subcategory
merge logic runs once per entry unconditionally, appending to empty lists
on first sight instead of duplicating the append logic in the else branch.

Annotate seen and entries as dict[str, Any] so ty can resolve the mixed
value types (str, list, None) in each entry dict.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 22:04:14 +08:00
Vinta Chen
6ae7c89688
refactor: replace manual total_seconds()/3600 with timedelta comparison
Use timedelta(hours=CACHE_MAX_AGE_HOURS) so the cache-age check
reads at the intended hours unit directly, removing the conversion
arithmetic.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 22:02:14 +08:00
Vinta Chen
95115f7949
refactor(fetch_github_stars): replace manual slice loop with itertools.batched
Use itertools.batched (stdlib since Python 3.12, targeted by this project)
instead of manual range(0, N, BATCH_SIZE) slicing. Loosen fetch_batch,
build_graphql_query, and parse_graphql_response signatures from list[str]
to Sequence[str] since batched yields tuples.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 22:01:35 +08:00
Vinta Chen
39b65bc994
refactor(build): inline format_stars_short into its call site
The helper only appeared once and the logic is two lines, so the named
function added indirection without clarity. Removed the four dedicated
unit tests that covered the function directly.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 22:00:45 +08:00
Vinta Chen
85b55efb28
refactor(readme_parser): inline _is_leading_link at its call site
The helper was only called once and the bool(inline.children) guard
was redundant: first_link being non-None already implies inline.children
is non-empty.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 21:59:59 +08:00
Vinta Chen
486fbf2185
refactor(readme_parser): replace _find_first_link with _find_child(inline, "link")
The private helper duplicated _find_child with a hardcoded type filter.
Remove it and call the general helper directly at both call sites.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 21:59:16 +08:00
Vinta Chen
e0b0dc9c0a
refactor(readme_parser): add _href helper to narrow attrGet return type
Extracts a _href(link) helper that returns link.attrGet('href') narrowed
to str (falling back to '') instead of the raw str|int|float|None union.
Replaces all four attrGet('href') or '' call sites with _href(), fixing
ty errors where the widened union leaked into TypedDict url fields.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 21:58:27 +08:00
Vinta Chen
7e7de19ef6
refactor(build): remove StarData TypedDict, loosen load_stars return to dict[str, dict]
Cache-write shape mismatches the TypedDict and callers mix .get() and
direct access, so the stricter type was providing false safety. Using
dict[str, dict] accurately reflects the actual runtime contract.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 21:57:30 +08:00
Vinta Chen
7f4a163534
refactor(build): tighten extract_entries parameter types to ParsedSection/ParsedGroup
Replace loose list[dict] annotations with concrete TypedDicts imported
from readme_parser so ty can verify call-site compatibility.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 21:56:46 +08:00
Vinta Chen
c85f81bb24
refactor(build): accept Path directly in build() signature
Remove internal str->Path conversion; callers and tests now pass
Path objects directly.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 21:56:06 +08:00
Vinta Chen
b9236c4925
refactor(fetch_github_stars): drop unnecessary keyword-only marker on fetch_batch
client is the only non-first param and is always required, so the * separator
adds no clarity. Update the call site accordingly.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 21:55:32 +08:00
Vinta Chen
a358d45ca4
refactor: use datetime.UTC alias instead of timezone.utc
Python 3.11 introduced datetime.UTC as a cleaner alias for
datetime.timezone.utc. Both build.py and fetch_github_stars.py
are updated to use the shorter form.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 21:54:55 +08:00
Vinta Chen
e47d229528
refactor(readme_parser): consolidate state reset to tail of flush_group
State reset (current_group_name = None, current_group_cats = []) was
duplicated in both branches of the early-return guard. Move it after
the conditional so it runs exactly once regardless of path.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 21:54:16 +08:00
Vinta Chen
b897676e01
refactor(fetch_github_stars): remove redundant early-return guard in build_graphql_query
The empty-parts check after the loop makes the upfront `if not repos: return ""` guard redundant.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 21:53:39 +08:00
Vinta Chen
a4b7fc6878
adjust css 2026-04-19 21:34:14 +08:00
Vinta Chen
774ab69bcd
feat(website): add sponsors section parsed from README
Parse the # Sponsors heading in README.md into structured data and
render a dedicated sponsor band above the library index on the site.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 21:10:50 +08:00
Vinta Chen
222f566aef
Merge pull request #3075 from vinta/sponsor/pyr
Add sponsor: pyr
2026-04-19 20:07:41 +08:00
Vinta Chen
9290cfb930
add sponsor: pyr 2026-04-19 19:52:06 +08:00
Jinyang
f3ac16c77b
Merge pull request #3035 from tdhopper/add-pydevtools 2026-04-19 09:45:26 +04:00
Jinyang
d7e6f1d54d
Merge pull request #3070 from PsiACE/patch-1 2026-04-19 09:44:50 +04:00
Vinta Chen
ba96331a10
add back "jieba", it's still useful and works in Python 3.13 actually 2026-04-19 05:35:53 +08:00
Vinta Chen
5d4bfdd719
docs(SPONSORSHIP): flatten tier benefit lists, remove redundant subheadings
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 05:30:37 +08:00
Vinta Chen
f6fdd6a553
docs(SPONSORSHIP): rename tiers to Headline Sponsor and Featured Sponsor
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 05:19:25 +08:00
Vinta Chen
3af090973e
docs(SPONSORSHIP): restructure Get Started as explicit checklist of required sponsor info
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 05:01:38 +08:00
Vinta Chen
840e2555d6
docs: clarify sponsorship tiers, payment terms, and editorial policy
- Link awesome-python.com in sponsor descriptions
- Add 120-character limit for sponsor descriptions
- Reword Link Sponsor tier to clarify entry format
- Replace month-to-month wording with flexible term details
- Add payment methods (ACH/wire, PayPal)
- Add editorial reserve clause for sponsor content

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 04:58:08 +08:00
Chojan Shang
2a347b1e87
Add bub framework to orchestration section 2026-04-19 00:14:13 +08:00
Jinyang
bec38b2e51
Merge pull request #3067 from shreya975/patch-1
Add ydata-profiling to data analysis tools list
2026-04-18 19:44:08 +04:00
Shreya Mahajan
04c3a63756
Fix typo in desbordante description 2026-04-18 19:27:12 +05:30
Shreya Mahajan
aabf43c281
Correct desbordante entry in README
Fixed a duplicate period in the desbordante link entry.
2026-04-18 19:14:56 +05:30
Shreya Mahajan
a467209839
Add data-profiling link and remove ydata-profiling 2026-04-18 12:58:43 +05:30
Shreya Mahajan
b3a00e0b9c
Add ydata-profiling to data analysis tools list 2026-04-17 15:08:35 +05:30
Jinyang
c487e88103
Merge pull request #3066 from lundberg/patch-1
Add `respx` library to Mock section
2026-04-17 09:57:35 +04:00
Jonas Lundberg
64de7f4673
Add respx library to Mock section 2026-04-16 16:24:52 +02:00
Vinta Chen
a5a38f7e78
Merge pull request #3060 from vinta/dependabot/uv/pytest-9.0.3
chore(deps-dev): bump pytest from 9.0.2 to 9.0.3
2026-04-15 12:33:37 +08:00
Jinyang
64e74b99dc
Merge pull request #3062 from RaghavChamadiya/add-repowise 2026-04-14 20:43:46 +04:00
RaghavChamadiya
d06ab9789c Add repowise to Code Analysis 2026-04-14 19:15:15 +05:30
dependabot[bot]
1843b8f323
chore(deps-dev): bump pytest from 9.0.2 to 9.0.3
Bumps [pytest](https://github.com/pytest-dev/pytest) from 9.0.2 to 9.0.3.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3)

---
updated-dependencies:
- dependency-name: pytest
  dependency-version: 9.0.3
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-14 03:02:59 +00:00
Jinyang
65f3649988
Merge pull request #3056 from ozeranskii/patch-1
Add httptap
2026-04-13 11:10:38 +04:00
Sergei Ozeranskii
985400cac3
Update README.md 2026-04-13 09:08:43 +02:00
Sergei Ozeranskii
f4201b85db
Add httptap to Debugging Tools 2026-04-12 18:07:54 +02:00
Jinyang
6d499269ca
Merge pull request #3046 from grzesir/add-lumibot
Add lumibot to Financial Data
2026-04-11 10:04:43 +04:00
Robert Grzesik
d5158f8362 Add lumibot to Financial Data section
Lumibot is an actively maintained Python framework (1,333+ stars, MIT
license) for algorithmic trading backtesting and live deployment. It
supports stocks, options, crypto, futures, and forex across multiple
brokers. Repository is 3+ years old with consistent weekly activity.

Category: Hidden Gem — solves the real pain of running the same
strategy code in backtesting and production with multiple brokers.

https://github.com/Lumiwealth/lumibot
2026-04-10 23:29:41 -04:00
Vinta Chen
d902e5b9ba
docs: update SPONSORSHIP.md copy
- Reword referrer list label and reorder entries
- Rename 'Past Sponsors' to 'Previously Sponsored By'
- Trim redundant word from closing sentence

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-09 21:35:55 +08:00
Vinta Chen
38b710e7ce
add hermes-agent 2026-04-08 15:24:20 +08:00
Tim Hopper
68c8fd4385
Add Python Developer Tooling Handbook to Resources > Websites 2026-04-07 16:27:32 -04:00
Jinyang
7a348495cb
Merge pull request #3027 from tarasko/master
Add picows library to WebSocket section
2026-04-07 07:34:03 +04:00
Taras Kozlov
f63c9f899f
Update 'picows' entry in README 2026-04-05 22:37:24 +02:00
Taras Kozlov
e078d5b92d
Add picows library to WebSocket section 2026-04-05 22:24:06 +02:00
Jinyang
3c6429a21a
Merge pull request #3015 from torinsong/master 2026-04-04 13:28:06 +04:00
Vinta Chen
a2303c9389
ci: skip deploy job on forks
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-03 16:16:08 +08:00