|
- from typing import Tuple, Dict, Any, Set, List
- from .normalize import normalize_mac, is_mac
-
- def extract_gateway_macs(data: object) -> Tuple[Set[str], Dict[str, Any], List[str]]:
- """
- ritorna:
- - allowed MAC (validi)
- - mapping mac->record
- - lista raw MAC invalidi (normalizzati quando possibile)
- """
- allowed: Set[str] = set()
- by_mac: Dict[str, Any] = {}
- invalid: List[str] = []
-
- if not isinstance(data, list):
- return allowed, by_mac, invalid
-
- for item in data:
- if not isinstance(item, dict):
- continue
- raw = item.get("mac", "")
- mac = normalize_mac(raw)
- if mac and is_mac(mac):
- allowed.add(mac)
- by_mac[mac] = item
- else:
- if raw:
- invalid.append(str(raw))
-
- return allowed, by_mac, invalid
|