32 lines
650 B
Python
32 lines
650 B
Python
"""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",
|
|
)
|