| 123456789101112131415161718192021222324252627282930 |
- from __future__ import annotations
- from dataclasses import dataclass
- from pathlib import Path
- from bom_assistant.session.models import BomRow
- from bom_assistant.suppliers.category_resolver import resolve_category
- from bom_assistant.suppliers.lcsc.categories import get_subcategories_for
- _CACHE_PATH = Path(__file__).parent / "category_cache.json"
- @dataclass
- class LcscCategory:
- name: str
- id: int
- def __repr__(self) -> str:
- return f"LcscCategory(name={self.name!r}, id={self.id})"
- def resolve(row: BomRow) -> list[LcscCategory]:
- """Map a BomRow to up to 3 LCSC subcategories ranked by confidence."""
- results = resolve_category(
- row,
- get_subcategories_for(row.category),
- supplier="lcsc",
- cache_path=_CACHE_PATH,
- )
- return [LcscCategory(r.name, r.id) for r in results]
|