Skip to content

feat(ingest): parse CPU family and model columns - #107

Merged
Seungpyo1007 merged 1 commit into
mainfrom
Seungpyo1007/e9-amd-ryzen-epyc-parser
Sep 28, 2026
Merged

Seungpyo1007 merged 1 commit into
mainfrom
Seungpyo1007/e9-amd-ryzen-epyc-parser

Conversation

@Seungpyo1007

Copy link
Copy Markdown
Member

CPU tables with a rowspan family in column 0 and a SKU in column 1 now produce complete branded model names through the existing Wikipedia CPU ingest collector. The reusable parser handles stacked headers, header units, SKU rows containing only th, and CPU/GPU separation; Opteron is registered for normal ingest. CPU deduplication uses the requested data root and compares names/slugs symmetrically while ignoring punctuation and manufacturer prefixes, preserving model variants and normalizing PRO placement.

Unknown threads remain null, including all unresolved Opteron models. Missing architecture is not filled from the product family. Every proposed record cites the exact Wikipedia page and remains verified: false.

The committed dry-run artifact lists 52 complete additions, 485 already represented models, and 195 incomplete models against TechAPI develop at bf4a0597381cdf208c1fdeceedc1559f2b770bb7. No TechAPI data was changed: the normal weekly workflow cannot select just these two pages, so this branch provides the collector, regressions, and reproducible dry-run output for the standard data-PR path against develop.

The live coverage scraper reproduces issue #19's 759 misses and its visible first 30 rows. The total includes 199 EPYC entries outside the two requested pages:

Reproduced gap status Count
Ready to fill 21
Already curated under complete names 324
Missing required specs 167
Non-model cells 48
EPYC outside this audit 199
Total 759

Thus 21 of the listed gaps are ready to fill; 738 are accounted for by the other statuses, not 738 undocumented CPUs. An additional 31 ready models were omitted by the coverage scraper's first-cell traversal, bringing the proposed additions to 52. The coverage scraper's exact unqualified-name comparison needs a separate correction; it is outside this PR's ownership. The audit report explains overlapping missing-field reasons and replay instructions.

Validation: pytest --cov=app --cov-report=term --cov-fail-under=60: 517 passed, 77.16% coverage; ruff check app tests, mypy app, and python -m app.validate pass.

Refs #99

Handle rowspan family cells, stacked CPU headers, and th-only SKU rows; preserve unknown threads and deduplicate CPU names against the target dataset.

Refs #99
@Seungpyo1007
Seungpyo1007 merged commit d522a6a into main Sep 28, 2026
1 check passed
@Seungpyo1007
Seungpyo1007 deleted the Seungpyo1007/e9-amd-ryzen-epyc-parser branch September 30, 2026 08:33
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