Skip to content
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

feat(api): add stacker module context and protocol command skeletons #17206

Open
wants to merge 23 commits into
base: edge
Choose a base branch
from

Conversation

ahiuchingau
Copy link
Contributor

@ahiuchingau ahiuchingau commented Jan 7, 2025

Overview

This PR adds flex stacker support skeleton in the protocol engine.

TODO: add this so seth doesn't yell at me later

@ahiuchingau ahiuchingau force-pushed the EXEC-1079-module-context branch from 64c75d9 to df3955a Compare January 8, 2025 19:36
@@ -54,5 +59,5 @@
"AbsorbanceReader",
"AbsorbanceReaderStatus",
"AbsorbanceReaderDisconnectedError",
"ModuleDisconnectedCallback",
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This modules.ModuleDisconnectedCallback type got removed as the type has not been mported to this file, and hence, will not affect the rest of the code

@ahiuchingau ahiuchingau force-pushed the EXEC-1079-module-context branch from df3955a to 69c76de Compare January 9, 2025 22:17
@ahiuchingau ahiuchingau force-pushed the EXEC-1079-module-context branch from 69c76de to aef78d7 Compare January 9, 2025 22:28
@ahiuchingau ahiuchingau marked this pull request as ready for review January 9, 2025 23:51
@ahiuchingau ahiuchingau requested review from a team as code owners January 9, 2025 23:51
stacker = self._equipment.get_module_hardware_api(stacker_substate.module_id)

if stacker is not None:
await stacker.dispense()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The signature of dispense has changed to dispense_labware(labware_height: float) so we must provide the labware height.

stacker = self._equipment.get_module_hardware_api(stacker_substate.module_id)

if stacker is not None:
await stacker.store()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The signature of store has changed to store_labware(labware_height: float) so we must provide the labware height.

Copy link
Contributor

@SyntaxColoring SyntaxColoring left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great! I think our lives will be easier if we add unit tests for retrieve.py and store.py now if possible, though.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this needs a top-level make format-js.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add unit tests for these new retrieve.py and store.py files? It doesn't have to happen in this PR if this is blocking something else, but I think it should happen soon, because we don't want to leave a window where complexity can grow and it ends up not being easily unit-testable when we finally do get around to it. I think that happened to the plate reader command, which gave us a bit of a hard time when we had to work on it recently.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants