-
Notifications
You must be signed in to change notification settings - Fork 8
Pass plan parameters as individual args #1333
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: user-client
Are you sure you want to change the base?
Conversation
Using the find_device method instead of looking devices up in the map of devices directly means child devices can be found, eg 'stage.x' could be a valid device but isn't in the devices map in its own right.
Allows autocomplete to work when working in a REPL
* Support args as well as kwargs when running plans * Get child devices via attributes on parent devices * Make more methods into properties
For some reason pyright can't figure out what the return type is otherwise and you don't get completion.
It broke type checking
|
The tests fail here as the CLI now has to make a request to the server to find the parameters for the plan it is running. In theory, the arg+kwargs reshaping could be done on the server side if the task request was updated. This would also allow plans to take positional only args as a side-effect. Another benefit of handling to top-level plan arg parsing could be to support more |
Using the same conversion as the plan-as-a-function calling in the client. Allows you to do something like
blueapi controller run count '["det"]' --num 3from the command line instead of having to wrap everything in json
blueapi controller run count '{"detectors": ["det"], "num": 3}'