import re

def norm_mac(mac: str) -> str:
    """Ritorna MAC come AA:BB:CC:DD:EE:FF (upper), ignorando separatori."""
    if not mac:
        return ""
    m = str(mac).strip().replace("-", "").replace(":", "").replace(".", "")
    m = m.upper()
    if len(m) != 12:
        return mac.strip().upper()
    return ":".join(m[i:i+2] for i in range(0, 12, 2))

def is_mac(mac: str) -> bool:
    """Verifica se la stringa è un MAC valido."""
    if not mac: return False
    m = str(mac).strip().replace("-", "").replace(":", "").replace(".", "")
    return len(m) == 12 and all(c in "0123456789ABCDEFabcdef" for c in m)

# Alias per compatibilità con gli altri script (gateways.py e train_collect.py)
normalize_mac = norm_mac

def mac_to_compact(mac: str) -> str:
    """Ritorna MAC senza separatori (es: AC233FC1DD3C)."""
    return norm_mac(mac).replace(":", "").upper()
