Open DiamondJoseph opened 3 months ago
Extends #506
Plans that have parameters of e.g.
def foo_plan(thing: TypedThing): ...
where
class TypedThing(TypedDict): x: Readable
or
@dataclass class TypedThing: x: Readable
class TypedThing(BaseModel): x: Readable
Should be able to have their schemas generated and presented from /plans, and these plans should be runnable with x being passed as a reference to a device (i.e. parameters = {"thing": {"x": "stage_x"}})
/plans
x
{"thing": {"x": "stage_x"}}
Note that the "idiomatic way" does not work
class MyComposite(BlueapiBaseModel): x: Motor = inject("x") y: Motor = inject("y") det: Eiger = inject("det1")```
Extends #506
Plans that have parameters of e.g.
where
or
or
Should be able to have their schemas generated and presented from
/plans
, and these plans should be runnable withx
being passed as a reference to a device (i.e. parameters ={"thing": {"x": "stage_x"}}
)