Open
Conversation
Contributor
Author
|
This would need a matching change in GDA (back-ported to 9.38?) to add the result type to TaskStatus here. |
Contributor
Author
|
Ignoring the GDA change, I think the blueapi side of this is workable |
Contributor
Author
|
Change in gerrit: https://gerrit.diamond.ac.uk/c/gda/gda-core/+/44673 |
DominicOram
requested changes
Jan 30, 2026
Contributor
DominicOram
left a comment
There was a problem hiding this comment.
Looks good, thanks. Should: it would be nice to add some tests on the case where the plan is actually returning something, ideally parametrized against a few different return types.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1357 +/- ##
==========================================
- Coverage 95.03% 95.01% -0.02%
==========================================
Files 43 43
Lines 2780 2830 +50
==========================================
+ Hits 2642 2689 +47
- Misses 138 141 +3 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Use pydantic to convert result to something that can be JSON serialized later.
Contributor
Author
|
Putting this back to draft so #1312 can be included in the result |
Allow callers to access both return values and exceptions raised by plans.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
TaskStatusincluded in eachWorkerEventnow contains aresultfield that will be populated when the plan is complete. This can be
either a
TaskResultthat contains a serialized representation of thereturn value from a plan that succeeded, or a
TaskErrorcontaining theException type and message raised by a plan that failed.
The existing
task_completeandtask_failedflags have been left forbackwards compatibility but are now redundant and may be removed in a
future version.
Error reporting in WorkerEvents is left unchanged for now but may also
change in future as plan errors are included in the worker error list
making it unclear where an error occurred.
The new outcome states in the returned
TaskStatusallows betterfeedback in the CLI and errors/return values are included in the output.
The BlueapiClient run_task method now returns only the TaskStatus as it
now contains all relevant information about the plan. A plan failing
will now not raise an exception with exceptions being raised only in the
case of the communication errors or internal server errors. Users of the
client should check if plans were successful.