import re TOPIC_PATTERN = re.compile(r"^terminal/(?P[^/]+)/raw$") def extract_device_id(topic: str) -> str: match = TOPIC_PATTERN.match(topic) if match is None: raise ValueError("topic must match terminal/{device_id}/raw") return match.group("device_id")