|
- # app/csv_config.py
- import csv
- from pathlib import Path
- from typing import List
- from dataclasses import dataclass
-
- # RIPRISTINATO IMPORT RELATIVO: Necessario per il Core Orchestrator
- from .normalize import norm_mac
-
- @dataclass
- class GatewayConfig:
- mac: str
- name: str = ""
- label: str = ""
-
- def load_gateway_features_csv(file_path: str, delimiter: str = ";") -> List[GatewayConfig]:
- """Carica l'anagrafica gateway per definire l'ordine delle feature del modello."""
- gws = []
- p = Path(file_path)
- if not p.exists():
- return gws
-
- try:
- with open(p, "r", encoding="utf-8") as f:
- reader = csv.DictReader(f, delimiter=delimiter)
- # Normalizzazione header
- reader.fieldnames = [fn.strip().lower() for fn in reader.fieldnames]
- for row in reader:
- raw_mac = row.get("mac", "").strip()
- if raw_mac:
- gws.append(GatewayConfig(mac=norm_mac(raw_mac)))
- except Exception:
- pass
- return gws
|