Skip to content

Commit 4756426

Browse files
committed
fix(ingest): classify Atom C/P lines as server and Z/N/x3 as mobile
1 parent bdd564a commit 4756426

2 files changed

Lines changed: 27 additions & 0 deletions

File tree

‎app/ingest/normalize.py‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,17 @@ def guess_cpu_segment(name: str) -> str:
311311
return "server"
312312
if "threadripper" in lowered:
313313
return "hedt"
314+
# Atom lines by Intel's own naming: C/P = microserver & network SoCs
315+
# (Avoton, Rangeley, Denverton, Snow Ridge, Parker Ridge); Z/N/x3/x5/x7 =
316+
# tablet/netbook/phone; D = desktop (Pineview); E/x6000 embedded fall
317+
# through to desktop.
318+
if (atom := re.search(r"\batom\s+([a-z]+)\d", lowered)) is not None:
319+
line = atom.group(1)
320+
if line in {"c", "p"}:
321+
return "server"
322+
if line in {"z", "n", "x"} and not re.search(r"\batom\s+x6\d{3}", lowered):
323+
return "laptop"
324+
return "desktop"
314325
# i7-13700K → desktop; i7-13700H → laptop. Look at the suffix on the model number.
315326
if re.search(r"\b\d{3,5}([a-z]{1,3})\b", lowered):
316327
match = re.search(r"\b\d{3,5}([a-z]{1,3})\b", lowered)

‎tests/unit/test_ingest_normalize.py‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,3 +123,19 @@ def test_guess_cpu_segment_classifies_common_naming() -> None:
123123
assert guess_cpu_segment("Intel Core i7-13700K") == "desktop"
124124
assert guess_cpu_segment("Intel Core i7-13700H") == "laptop"
125125
assert guess_cpu_segment("AMD Ryzen 9 7945HX") == "laptop"
126+
127+
128+
@pytest.mark.parametrize(
129+
"name,expected",
130+
[
131+
("Intel Atom C3950", "server"),
132+
("Intel Atom P5362", "server"),
133+
("Intel Atom Z3570", "laptop"),
134+
("Intel Atom x3-C3130", "laptop"),
135+
("Intel Atom N270", "laptop"),
136+
("Intel Atom D525", "desktop"),
137+
("Intel Atom x6414RE", "desktop"),
138+
],
139+
)
140+
def test_guess_cpu_segment_atom_lines(name: str, expected: str) -> None:
141+
assert guess_cpu_segment(name) == expected

0 commit comments

Comments
 (0)