"""Editable power-port domain definitions used by the port editor.""" from dataclasses import dataclass @dataclass(frozen=True) class PowerDomain: id: str display_name: str effort: str flow: str POWER_DOMAINS: tuple[PowerDomain, ...] = ( PowerDomain("power", "Power", "p.e", "p.f"), ) def power_domain(domain_id: str) -> PowerDomain: return next((domain for domain in POWER_DOMAINS if domain.id == domain_id), POWER_DOMAINS[0]) POWER_CAUSALITIES = ( "fixed flow out", "fixed effort out", "preferred flow out", "preferred effort out", "likes flow out", "likes effort out", "indifferent", )