from dataclasses import dataclass @dataclass class BuildSpec: project: str arch: str distro_target: str toolchain: str # ----------------------------- # EXECUTION SELECTION # ----------------------------- execution: str # distcc | lxc | libvirt | tmux container_backend: str # optional fallback layer # ----------------------------- # POLICY PROFILE # ----------------------------- profile: str = "balanced" def from_request(req): return BuildSpec( project=req["project"], arch=req["arch"], distro_target=req["distro_target"], toolchain=req["toolchain"], execution=req.get("execution", "distcc"), container_backend=req.get("container_backend", "lxc"), profile=req.get("profile", "balanced") )