Commit Graph

2324 Commits

Author SHA1 Message Date
Vinta Chen
fb33f904f5 Fix capitalization 2026-04-19 23:16:14 +08:00
Vinta Chen
cfcc564120 Merge pull request #3076 from vinta/chore/code-cleanup
chore: simplify website/ Python and polish sponsors section
2026-04-19 22:58:38 +08:00
Vinta Chen
35aee20aa9 remove color 2026-04-19 22:51:25 +08:00
Vinta Chen
674c169efd fix(css): scope --accent-underline to sponsor-become hover; restore --line-strong at rest
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 22:48:33 +08:00
Vinta Chen
7625d1f05d style: use --accent-underline on sponsor link underline
Swaps --line-strong for --accent-underline on the 'Become a sponsor'
text-decoration-color so the underline matches the tan hover underline
on project-name links like thealgorithms.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 22:47:37 +08:00
Vinta Chen
19496c2c93 refactor(css): replace sponsor-become border underline with text-decoration
Swap the border-bottom + padding-bottom fake underline on .sponsor-become
for a native text-decoration underline with text-underline-offset so the
line hugs the text at the same distance as the hero @vinta/@JinyangWang27
links, rather than sitting a fixed 0.2rem gap away.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 22:45:44 +08:00
Vinta Chen
f3c8377bd4 chore: remove arrow from 'Become a sponsor' link and its CSS rules
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 22:43:19 +08:00
Vinta Chen
257b69a932 style(sponsors): bump section-label to --text-lg within sponsor scope
Override font-size to var(--text-lg) inside .sponsor-meta so the
Sponsors heading is larger, while the shared .section-label class
remains --text-sm everywhere else.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 22:40:31 +08:00
Vinta Chen
f10337bb31 refactor(tests): modernize test_readme_parser to use pathlib.Path
Replace os.path.join + manual open() with Path(__file__).resolve().parents[2]
and Path.read_text() for locating and reading README.md.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 22:07:16 +08:00
Vinta Chen
92936964b6 refactor(readme_parser): fuse _parse_sponsor_item into single pass
Eliminate the redundant _find_link_deep precheck by merging the two
walks over inline.children into one loop that simultaneously locates
the link and records its top-level index.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 22:06:41 +08:00
Vinta Chen
420bf8cd9d refactor(readme_parser): collapse render_inline_html/text into _render_inline helper
Merge the two inline-renderer implementations into a single _render_inline(children, *, html) function that handles both output modes. The original public functions become one-line wrappers so all dispatch logic lives in one place. Also aligns html_inline handling: the html=True path now escapes the raw content instead of silently dropping it in the plain-text path.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-19 22:05:35 +08:00
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