-
Notifications
You must be signed in to change notification settings - Fork 178
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
fix(api): Error handling for unsupported pipette configuration behavior with partial column and row #15961
fix(api): Error handling for unsupported pipette configuration behavior with partial column and row #15961
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left a bunch of wordsmithing suggestions. The only 100% required changes are the misspellings of "configuration".
Co-authored-by: Ed Cormany <[email protected]>
Co-authored-by: Ed Cormany <[email protected]>
Co-authored-by: Ed Cormany <[email protected]>
Co-authored-by: Ed Cormany <[email protected]>
Co-authored-by: Ed Cormany <[email protected]>
Co-authored-by: Ed Cormany <[email protected]>
Co-authored-by: Ed Cormany <[email protected]>
raise ValueError( | ||
f"A partial column configuration with 'start'={start} cannot have its 'end' parameter be in row A." | ||
) | ||
back_left_resolved = end | ||
elif start == "A1" or start == "A12": | ||
if "H" in end: | ||
raise ValueError( | ||
f"A partial column configuration with 'start'={start} cannot have its 'end' parameter be in row H." | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I feel like this should explain that a column configured to use nozzles A through H does not constitute a 'partial' column and that the user should use an ALL
configuration instead. (Can you configure an 8-channel with a COLUMN
configuration?)
raise ValueError( | ||
f"Parameters 'front_right' and 'back_left' cannot be used with {style.value} Nozzle Configuration Layout." | ||
) | ||
if style == NozzleLayout.ROW: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we repeat the same check for COLUMN
style too?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me!
Overview
Covers PLAT-457
The 96ch does not currently have any approved nozzle maps supporting partial column configuration, so we want to raise a more helpful error when attempting it. Also, if the user provided a configuration that spanned A1 through H1 or H1 through H12 the partial column would accept it (maps existed for these). We want to block off this improper use of the API. The 8ch pipette similarly will now raise an error when attempting a ROW configuration, which is only meant for the 96ch.
Test Plan and Hands on Testing
Changelog
configure_nozzle_layout
API has new error cases and test cases to prevent improper use of API 2.20 layouts.Review requests
Risk assessment
Low, this simply enforces proper use of new behavior for 8.0.0. Eventually, if we want to enable partial column on the 96ch we will need to remove it's error case, but for now this makes use cases clearer with better feedback from analysis.