def parse_mac(value): raw = value.strip().lower().replace(":", "").replace("-", "") if len(raw) != 12: raise ValueError("address must be 12 hex chars or aa:bb:cc:dd:ee:ff") try: return bytes.fromhex(raw) except ValueError: raise ValueError("address contains non-hex characters") def format_mac(mac_bytes): return ":".join("{:02x}".format(b) for b in mac_bytes)