happy-psychiatrist-90774
06/05/2025, 7:53 PMadorable-psychiatrist-59834
06/05/2025, 8:41 PMadorable-psychiatrist-59834
06/05/2025, 8:55 PMclass MysubSystem(Subsystem):
alias = "sub"
...
opt1 = StrOption(...)
opt2 = StrOption(...)
@dataclass(frozen=True)
class MyOptions:
required_fields = ("opt1", "opt2",)
opt1: str
opt2: str
@rule(desc="…)
def resolve_options(sub: MysubSystem) -> MyOptions:
for r in MyOptions.required_fields:
if sub.options.get(r) is None:
raise ValueError("—sub-" + r + " required")
return MyOptions(**{x.name: sub.options.get(x.name) for x in dataclasses.fields(MyOptions)})
@rule(desc="action")
async def action(
opts: MyOptions,
) -> ...:
happy-psychiatrist-90774
06/05/2025, 11:50 PM