feat(protocol-designer): emit Python for dispense command #17601
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.
Overview
This generates the Python code for the PD atomic
dispense
command. AUTH-1094As with the
aspirate
command, for thedispense(rate=...)
, we have to emit a literal division expression in the Python code because the PAPI takes a ratio, and we don't know what the PAPI default flow rate for the pipette is.Test Plan and Hands on Testing
Added unit tests.
I also took the generated Python and used
simulate
to confirm that it's well-formed.Review requests
The JSON command has a
{ meta: { isAirGap } }
to indicate that we're dispensing air. There is no corresponding way to indicate that in the Python API. So we're supposed to just use thedispense()
API for both liquid and air, right?Risk assessment
Low. Python code generation is not used externally yet.