Skip to content

fix(ingest): correct Wikipedia CPU parsing (fractional TDP, clock ranges, L2 vs L3, family rows) - #90

Merged
Seungpyo1007 merged 2 commits into
mainfrom
fix/ingest-cpu-parsing
Sep 25, 2026
Merged

Seungpyo1007 merged 2 commits into
mainfrom
fix/ingest-cpu-parsing

Conversation

@Seungpyo1007

Copy link
Copy Markdown
Member

Summary

A dry run of python -m app.ingest --category cpu produced candidates with wrong values when checked against the Wikipedia source text:

Wikipedia Parsed before Now
Atom C2508 tdp=9.5 5 W 10 W
Atom E660T tdp=3.6 6 W 4 W
Atom C2530 freq=1.7-2.0 base 2.0 base 1.7, boost 2.0
L2 cache column written to l3_cache_mb ignored (L3/Smart Cache only)
September 2013 2013-01-01 2013-09-01
" Denverton " (14 nm) heading architecture with quotes Denverton, process_node 14 nm
Ryzen 5 / 7501 [ 32 ] rows became SKUs skipped / footnote stripped

AMD EPYC tables still mis-parse (model column without the EPYC brand, some shifted cells). They are not fixed here and weren't imported.

tdp_w is an int column, so fractional TDPs round half-up (9.5 → 10). That keeps them within the ±1 W verify tolerance.

Test plan

  • New regression tests in tests/unit/test_ingest_normalize.py and tests/unit/test_ingest_wikipedia_cpu.py
  • Full pytest, mypy app, ruff check app tests pass

…anges, L2 columns and family rows

- '9.5 W' parsed as 5 W and '3.6 W' as 6 W (regex matched the digits after the dot)
- '1.7-2.0 GHz' took 2.0 as the base clock; now base 1.7, boost 2.0
- any 'cache' header mapped to l3_cache_mb, so Atom 'L2 cache' columns became L3
- 'September 2013' collapsed to January 1; month is now kept
- family-tier rows ('Ryzen 5', 'Core i7') and citation markers no longer become SKUs
- quoted section headings are cleaned and '(14 nm)' goes to process_node
@Seungpyo1007 Seungpyo1007 self-assigned this Sep 25, 2026
@Seungpyo1007
Seungpyo1007 merged commit 3912f79 into main Sep 25, 2026
1 check passed
@Seungpyo1007
Seungpyo1007 deleted the fix/ingest-cpu-parsing branch September 25, 2026 04:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant