refactor(build): remove unused group_categories wrapper

group_categories only ever appended a Resources group when the
resources list was non-empty. All call sites passed an empty list,
making it a no-op indirection. Inline parsed_groups directly and
remove the dead code along with its tests.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Vinta Chen
2026-03-22 15:58:42 +08:00
parent 5fc022d595
commit df2191fc05
2 changed files with 4 additions and 60 deletions

View File

@@ -9,26 +9,7 @@ from pathlib import Path
from typing import TypedDict
from jinja2 import Environment, FileSystemLoader
from readme_parser import parse_readme, slugify
def group_categories(
parsed_groups: list[dict],
resources: list[dict],
) -> list[dict]:
"""Combine parsed groups with resources for template rendering."""
groups = list(parsed_groups)
if resources:
groups.append(
{
"name": "Resources",
"slug": slugify("Resources"),
"categories": list(resources),
}
)
return groups
from readme_parser import parse_readme
class StarData(TypedDict):
@@ -152,12 +133,11 @@ def build(repo_root: str) -> None:
subtitle = stripped
break
parsed_groups, _resources = parse_readme(readme_text)
parsed_groups, _ = parse_readme(readme_text)
categories = [cat for g in parsed_groups for cat in g["categories"]]
total_entries = sum(c["entry_count"] for c in categories)
groups = group_categories(parsed_groups, [])
entries = extract_entries(categories, groups)
entries = extract_entries(categories, parsed_groups)
stars_data = load_stars(website / "data" / "github_stars.json")
for entry in entries:
@@ -186,8 +166,7 @@ def build(repo_root: str) -> None:
(site_dir / "index.html").write_text(
tpl_index.render(
categories=categories,
resources=[],
groups=groups,
groups=parsed_groups,
subtitle=subtitle,
entries=entries,
total_entries=total_entries,

View File

@@ -8,7 +8,6 @@ from pathlib import Path
from build import (
build,
extract_github_repo,
group_categories,
load_stars,
sort_entries,
)
@@ -42,40 +41,6 @@ class TestSlugify:
assert slugify(" Date and Time ") == "date-and-time"
# ---------------------------------------------------------------------------
# group_categories
# ---------------------------------------------------------------------------
class TestGroupCategories:
def test_appends_resources(self):
parsed_groups = [
{"name": "G1", "slug": "g1", "categories": [{"name": "Cat1"}]},
]
resources = [{"name": "Newsletters", "slug": "newsletters"}]
groups = group_categories(parsed_groups, resources)
group_names = [g["name"] for g in groups]
assert "G1" in group_names
assert "Resources" in group_names
def test_no_resources_no_extra_group(self):
parsed_groups = [
{"name": "G1", "slug": "g1", "categories": [{"name": "Cat1"}]},
]
groups = group_categories(parsed_groups, [])
assert len(groups) == 1
assert groups[0]["name"] == "G1"
def test_preserves_group_order(self):
parsed_groups = [
{"name": "Second", "slug": "second", "categories": [{"name": "C2"}]},
{"name": "First", "slug": "first", "categories": [{"name": "C1"}]},
]
groups = group_categories(parsed_groups, [])
assert groups[0]["name"] == "Second"
assert groups[1]["name"] == "First"
# ---------------------------------------------------------------------------
# build (integration)
# ---------------------------------------------------------------------------