Skip to content

Commit

Permalink
feat(api): implement the liquid transfer function (#17179)
Browse files Browse the repository at this point in the history
Closes AUTH-866

# Overview

Final PR of the 3-PR series.
Implements `InstrumentCore.transfer_liquid()`.

The `transfer_liquid()` method does the following:
1. Loads the relevant liquid class record into protocol engine, gets the
liquid class ID back. This will be used in command annotations in the
future
2. Breaks down the total transfer volume into piecewise transfers, if
necessary.
3. Does auto-tip handling, unless the user has specified to 'never' use
a new tip.
4. Calls `aspirate_liquid_class()` and `dispense_liquid_class()` for
every source-> destination transfer.

This PR also updates the tiprack 'names' to URIs in the liquid class
definition in shared data for 'water' only. We will have a separate PR
for updating rest of the definitions.

## Risk assessment

Low. Doesn't change existing API

---------

Co-authored-by: David Chau <[email protected]>
  • Loading branch information
sanni-t and ddcc4 authored Jan 15, 2025
1 parent 630b1b2 commit eca564a
Show file tree
Hide file tree
Showing 18 changed files with 992 additions and 239 deletions.
2 changes: 1 addition & 1 deletion api/src/opentrons/protocol_api/core/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

WellCore = AbstractWellCore
LabwareCore = AbstractLabware[WellCore]
InstrumentCore = AbstractInstrument[WellCore]
InstrumentCore = AbstractInstrument[WellCore, LabwareCore]
ModuleCore = AbstractModuleCore
TemperatureModuleCore = AbstractTemperatureModuleCore
MagneticModuleCore = AbstractMagneticModuleCore
Expand Down
Loading

0 comments on commit eca564a

Please sign in to comment.