ingest.py 649 B

123456789101112131415161718192021
  1. from __future__ import annotations
  2. import uuid
  3. from datetime import datetime, timezone
  4. from bom_assistant.ingestion.column_mapper import map_columns
  5. from bom_assistant.ingestion.normalizer import normalize
  6. from bom_assistant.ingestion.parser import parse_bom
  7. from bom_assistant.session.models import BomSession
  8. def build_session(content: bytes, filename: str) -> BomSession:
  9. raw = parse_bom(content, filename)
  10. mapped = map_columns(raw)
  11. rows = normalize(mapped)
  12. return BomSession(
  13. session_id=str(uuid.uuid4()),
  14. created_at=datetime.now(timezone.utc).isoformat(),
  15. filename=filename,
  16. rows=rows,
  17. )