| 1234567891011121314151617181920 |
- from __future__ import annotations
- from bom_assistant.scouting.errors import RowNotFoundError
- from bom_assistant.session.models import BomRow, BomSession, RowState
- from bom_assistant.suppliers.lcsc.category_resolver import resolve
- def get_row(session: BomSession, row_id: str) -> BomRow:
- for row in session.rows:
- if row.row_id == row_id:
- return row
- raise RowNotFoundError(session.session_id, row_id)
- def scout_row(session: BomSession, row_id: str) -> BomRow:
- row = get_row(session, row_id)
- candidates = resolve(row)
- row.scout_candidates = [{"name": c.name, "id": c.id} for c in candidates]
- row.state = RowState.scouting
- return row
|