opentrons 8.7.0a7__py3-none-any.whl → 8.7.0a9__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of opentrons might be problematic. Click here for more details.
- opentrons/_version.py +2 -2
- opentrons/drivers/asyncio/communication/serial_connection.py +55 -129
- opentrons/drivers/flex_stacker/driver.py +6 -1
- opentrons/drivers/heater_shaker/abstract.py +0 -5
- opentrons/drivers/heater_shaker/driver.py +0 -10
- opentrons/drivers/heater_shaker/simulator.py +0 -4
- opentrons/drivers/thermocycler/abstract.py +0 -6
- opentrons/drivers/thermocycler/driver.py +10 -61
- opentrons/drivers/thermocycler/simulator.py +0 -6
- opentrons/hardware_control/api.py +5 -24
- opentrons/hardware_control/backends/controller.py +2 -8
- opentrons/hardware_control/backends/flex_protocol.py +1 -0
- opentrons/hardware_control/backends/ot3controller.py +3 -3
- opentrons/hardware_control/backends/ot3simulator.py +2 -2
- opentrons/hardware_control/backends/simulator.py +1 -2
- opentrons/hardware_control/backends/subsystem_manager.py +2 -5
- opentrons/hardware_control/emulation/abstract_emulator.py +4 -6
- opentrons/hardware_control/emulation/connection_handler.py +5 -8
- opentrons/hardware_control/emulation/heater_shaker.py +3 -12
- opentrons/hardware_control/emulation/settings.py +1 -1
- opentrons/hardware_control/emulation/thermocycler.py +15 -67
- opentrons/hardware_control/module_control.py +8 -82
- opentrons/hardware_control/modules/__init__.py +0 -3
- opentrons/hardware_control/modules/absorbance_reader.py +4 -11
- opentrons/hardware_control/modules/flex_stacker.py +9 -38
- opentrons/hardware_control/modules/heater_shaker.py +5 -42
- opentrons/hardware_control/modules/magdeck.py +4 -8
- opentrons/hardware_control/modules/mod_abc.py +5 -13
- opentrons/hardware_control/modules/tempdeck.py +5 -25
- opentrons/hardware_control/modules/thermocycler.py +11 -68
- opentrons/hardware_control/modules/types.py +1 -20
- opentrons/hardware_control/modules/utils.py +4 -11
- opentrons/hardware_control/nozzle_manager.py +0 -3
- opentrons/hardware_control/ot3api.py +7 -26
- opentrons/hardware_control/poller.py +8 -22
- opentrons/hardware_control/protocols/gripper_controller.py +1 -0
- opentrons/hardware_control/scripts/update_module_fw.py +0 -5
- opentrons/hardware_control/types.py +2 -31
- opentrons/legacy_commands/module_commands.py +0 -23
- opentrons/legacy_commands/protocol_commands.py +0 -20
- opentrons/legacy_commands/types.py +0 -80
- opentrons/motion_planning/deck_conflict.py +12 -17
- opentrons/motion_planning/waypoints.py +29 -15
- opentrons/protocol_api/__init__.py +1 -5
- opentrons/protocol_api/_types.py +1 -6
- opentrons/protocol_api/core/common.py +1 -3
- opentrons/protocol_api/core/engine/_default_labware_versions.py +11 -32
- opentrons/protocol_api/core/engine/labware.py +1 -8
- opentrons/protocol_api/core/engine/module_core.py +8 -75
- opentrons/protocol_api/core/engine/protocol.py +1 -18
- opentrons/protocol_api/core/engine/well.py +0 -8
- opentrons/protocol_api/core/legacy/legacy_module_core.py +4 -24
- opentrons/protocol_api/core/legacy/legacy_protocol_core.py +1 -11
- opentrons/protocol_api/core/legacy/legacy_well_core.py +0 -4
- opentrons/protocol_api/core/legacy_simulator/legacy_protocol_core.py +2 -14
- opentrons/protocol_api/core/module.py +4 -37
- opentrons/protocol_api/core/protocol.py +2 -11
- opentrons/protocol_api/core/well.py +0 -4
- opentrons/protocol_api/labware.py +0 -5
- opentrons/protocol_api/module_contexts.py +61 -122
- opentrons/protocol_api/protocol_context.py +4 -26
- opentrons/protocol_api/robot_context.py +21 -38
- opentrons/protocol_api/validation.py +1 -6
- opentrons/protocol_engine/actions/__init__.py +2 -4
- opentrons/protocol_engine/actions/actions.py +9 -22
- opentrons/protocol_engine/clients/sync_client.py +7 -42
- opentrons/protocol_engine/commands/__init__.py +0 -42
- opentrons/protocol_engine/commands/absorbance_reader/close_lid.py +15 -2
- opentrons/protocol_engine/commands/absorbance_reader/open_lid.py +15 -2
- opentrons/protocol_engine/commands/aspirate.py +0 -1
- opentrons/protocol_engine/commands/command.py +0 -1
- opentrons/protocol_engine/commands/command_unions.py +0 -49
- opentrons/protocol_engine/commands/dispense.py +0 -1
- opentrons/protocol_engine/commands/drop_tip.py +8 -32
- opentrons/protocol_engine/commands/heater_shaker/__init__.py +0 -14
- opentrons/protocol_engine/commands/heater_shaker/set_and_wait_for_shake_speed.py +4 -5
- opentrons/protocol_engine/commands/heater_shaker/set_target_temperature.py +5 -31
- opentrons/protocol_engine/commands/movement_common.py +0 -2
- opentrons/protocol_engine/commands/pick_up_tip.py +11 -21
- opentrons/protocol_engine/commands/temperature_module/set_target_temperature.py +7 -38
- opentrons/protocol_engine/commands/thermocycler/__init__.py +0 -16
- opentrons/protocol_engine/commands/thermocycler/run_extended_profile.py +0 -6
- opentrons/protocol_engine/commands/thermocycler/run_profile.py +0 -8
- opentrons/protocol_engine/commands/thermocycler/set_target_block_temperature.py +6 -40
- opentrons/protocol_engine/commands/thermocycler/set_target_lid_temperature.py +5 -29
- opentrons/protocol_engine/commands/touch_tip.py +1 -1
- opentrons/protocol_engine/commands/unsafe/unsafe_place_labware.py +22 -6
- opentrons/protocol_engine/errors/__init__.py +0 -4
- opentrons/protocol_engine/errors/exceptions.py +0 -55
- opentrons/protocol_engine/execution/__init__.py +0 -2
- opentrons/protocol_engine/execution/command_executor.py +0 -8
- opentrons/protocol_engine/execution/create_queue_worker.py +1 -5
- opentrons/protocol_engine/execution/labware_movement.py +21 -10
- opentrons/protocol_engine/execution/movement.py +0 -2
- opentrons/protocol_engine/execution/queue_worker.py +0 -4
- opentrons/protocol_engine/execution/run_control.py +0 -8
- opentrons/protocol_engine/protocol_engine.py +34 -75
- opentrons/protocol_engine/resources/__init__.py +0 -2
- opentrons/protocol_engine/resources/deck_configuration_provider.py +0 -7
- opentrons/protocol_engine/resources/labware_validation.py +6 -10
- opentrons/protocol_engine/state/_labware_origin_math.py +636 -0
- opentrons/protocol_engine/state/_well_math.py +18 -60
- opentrons/protocol_engine/state/addressable_areas.py +0 -2
- opentrons/protocol_engine/state/commands.py +11 -14
- opentrons/protocol_engine/state/geometry.py +374 -213
- opentrons/protocol_engine/state/labware.py +102 -52
- opentrons/protocol_engine/state/module_substates/thermocycler_module_substate.py +0 -37
- opentrons/protocol_engine/state/modules.py +8 -21
- opentrons/protocol_engine/state/motion.py +0 -44
- opentrons/protocol_engine/state/state.py +0 -14
- opentrons/protocol_engine/state/state_summary.py +0 -2
- opentrons/protocol_engine/state/tips.py +258 -177
- opentrons/protocol_engine/state/update_types.py +9 -16
- opentrons/protocol_engine/types/__init__.py +3 -9
- opentrons/protocol_engine/types/deck_configuration.py +1 -5
- opentrons/protocol_engine/types/instrument.py +1 -8
- opentrons/protocol_engine/types/labware.py +13 -1
- opentrons/protocol_engine/types/module.py +0 -10
- opentrons/protocol_engine/types/tip.py +0 -9
- opentrons/protocol_runner/create_simulating_orchestrator.py +2 -29
- opentrons/protocol_runner/run_orchestrator.py +2 -18
- opentrons/protocols/api_support/definitions.py +1 -1
- opentrons/protocols/api_support/types.py +1 -2
- opentrons/simulate.py +15 -48
- opentrons/system/camera.py +1 -1
- {opentrons-8.7.0a7.dist-info → opentrons-8.7.0a9.dist-info}/METADATA +4 -4
- {opentrons-8.7.0a7.dist-info → opentrons-8.7.0a9.dist-info}/RECORD +130 -146
- opentrons/protocol_api/core/engine/tasks.py +0 -48
- opentrons/protocol_api/core/legacy/tasks.py +0 -19
- opentrons/protocol_api/core/legacy_simulator/tasks.py +0 -19
- opentrons/protocol_api/core/tasks.py +0 -31
- opentrons/protocol_api/tasks.py +0 -48
- opentrons/protocol_engine/commands/create_timer.py +0 -83
- opentrons/protocol_engine/commands/heater_shaker/common.py +0 -20
- opentrons/protocol_engine/commands/heater_shaker/set_shake_speed.py +0 -136
- opentrons/protocol_engine/commands/set_tip_state.py +0 -97
- opentrons/protocol_engine/commands/thermocycler/start_run_extended_profile.py +0 -191
- opentrons/protocol_engine/commands/wait_for_tasks.py +0 -98
- opentrons/protocol_engine/execution/task_handler.py +0 -157
- opentrons/protocol_engine/resources/concurrency_provider.py +0 -27
- opentrons/protocol_engine/state/labware_origin_math/errors.py +0 -94
- opentrons/protocol_engine/state/labware_origin_math/stackup_origin_to_labware_origin.py +0 -1331
- opentrons/protocol_engine/state/tasks.py +0 -139
- opentrons/protocol_engine/types/tasks.py +0 -38
- {opentrons-8.7.0a7.dist-info → opentrons-8.7.0a9.dist-info}/WHEEL +0 -0
- {opentrons-8.7.0a7.dist-info → opentrons-8.7.0a9.dist-info}/entry_points.txt +0 -0
- {opentrons-8.7.0a7.dist-info → opentrons-8.7.0a9.dist-info}/licenses/LICENSE +0 -0
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
Actions can be passed to the ActionDispatcher, where they will trigger
|
|
4
4
|
reactions in objects that subscribe to the pipeline, like the StateStore.
|
|
5
5
|
"""
|
|
6
|
-
|
|
7
6
|
import dataclasses
|
|
8
7
|
from datetime import datetime
|
|
9
8
|
from enum import Enum
|
|
@@ -21,7 +20,6 @@ from ..commands import (
|
|
|
21
20
|
CommandDefinedErrorData,
|
|
22
21
|
)
|
|
23
22
|
from ..error_recovery_policy import ErrorRecoveryPolicy, ErrorRecoveryType
|
|
24
|
-
from ..errors import ErrorOccurrence
|
|
25
23
|
from ..notes.notes import CommandNote
|
|
26
24
|
from ..state.update_types import StateUpdate
|
|
27
25
|
from ..types import (
|
|
@@ -29,7 +27,6 @@ from ..types import (
|
|
|
29
27
|
ModuleDefinition,
|
|
30
28
|
Liquid,
|
|
31
29
|
DeckConfigurationType,
|
|
32
|
-
Task,
|
|
33
30
|
)
|
|
34
31
|
|
|
35
32
|
|
|
@@ -63,7 +60,7 @@ class PauseAction:
|
|
|
63
60
|
class StopAction:
|
|
64
61
|
"""Request engine execution to stop soon."""
|
|
65
62
|
|
|
66
|
-
|
|
63
|
+
from_estop: bool = False
|
|
67
64
|
|
|
68
65
|
|
|
69
66
|
@dataclasses.dataclass(frozen=True)
|
|
@@ -204,22 +201,6 @@ class FailCommandAction:
|
|
|
204
201
|
"""The command to fail, in its prior `running` state."""
|
|
205
202
|
|
|
206
203
|
|
|
207
|
-
@dataclasses.dataclass(frozen=True)
|
|
208
|
-
class StartTaskAction:
|
|
209
|
-
"""Store new task in state."""
|
|
210
|
-
|
|
211
|
-
task: Task
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
@dataclasses.dataclass(frozen=True)
|
|
215
|
-
class FinishTaskAction:
|
|
216
|
-
"""Mark task as finished in state."""
|
|
217
|
-
|
|
218
|
-
task_id: str
|
|
219
|
-
finished_at: datetime
|
|
220
|
-
error: ErrorOccurrence | None
|
|
221
|
-
|
|
222
|
-
|
|
223
204
|
@dataclasses.dataclass(frozen=True)
|
|
224
205
|
class AddLabwareOffsetAction:
|
|
225
206
|
"""Add a labware offset, to apply to subsequent `LoadLabwareCommand`s."""
|
|
@@ -272,6 +253,13 @@ class AddModuleAction:
|
|
|
272
253
|
module_live_data: LiveData
|
|
273
254
|
|
|
274
255
|
|
|
256
|
+
@dataclasses.dataclass(frozen=True)
|
|
257
|
+
class ResetTipsAction:
|
|
258
|
+
"""Reset the tip tracking state of a given tip rack."""
|
|
259
|
+
|
|
260
|
+
labware_id: str
|
|
261
|
+
|
|
262
|
+
|
|
275
263
|
@dataclasses.dataclass(frozen=True)
|
|
276
264
|
class SetPipetteMovementSpeedAction:
|
|
277
265
|
"""Set the speed of a pipette's X/Y/Z movements. Does not affect plunger speed.
|
|
@@ -308,8 +296,7 @@ Action = Union[
|
|
|
308
296
|
SetDeckConfigurationAction,
|
|
309
297
|
AddAddressableAreaAction,
|
|
310
298
|
AddLiquidAction,
|
|
299
|
+
ResetTipsAction,
|
|
311
300
|
SetPipetteMovementSpeedAction,
|
|
312
301
|
SetErrorRecoveryPolicyAction,
|
|
313
|
-
StartTaskAction,
|
|
314
|
-
FinishTaskAction,
|
|
315
302
|
]
|
|
@@ -65,48 +65,6 @@ class SyncClient:
|
|
|
65
65
|
) -> commands.LoadLabwareResult:
|
|
66
66
|
pass
|
|
67
67
|
|
|
68
|
-
@overload
|
|
69
|
-
def execute_command_without_recovery(
|
|
70
|
-
self, params: commands.CreateTimerParams
|
|
71
|
-
) -> commands.CreateTimerResult:
|
|
72
|
-
pass
|
|
73
|
-
|
|
74
|
-
@overload
|
|
75
|
-
def execute_command_without_recovery(
|
|
76
|
-
self, params: commands.temperature_module.SetTargetTemperatureParams
|
|
77
|
-
) -> commands.temperature_module.SetTargetTemperatureResult:
|
|
78
|
-
pass
|
|
79
|
-
|
|
80
|
-
@overload
|
|
81
|
-
def execute_command_without_recovery(
|
|
82
|
-
self, params: commands.thermocycler.StartRunExtendedProfileParams
|
|
83
|
-
) -> commands.thermocycler.StartRunExtendedProfileResult:
|
|
84
|
-
pass
|
|
85
|
-
|
|
86
|
-
@overload
|
|
87
|
-
def execute_command_without_recovery(
|
|
88
|
-
self, params: commands.heater_shaker.SetTargetTemperatureParams
|
|
89
|
-
) -> commands.heater_shaker.SetTargetTemperatureResult:
|
|
90
|
-
pass
|
|
91
|
-
|
|
92
|
-
@overload
|
|
93
|
-
def execute_command_without_recovery(
|
|
94
|
-
self, params: commands.heater_shaker.SetShakeSpeedParams
|
|
95
|
-
) -> commands.heater_shaker.SetShakeSpeedResult:
|
|
96
|
-
pass
|
|
97
|
-
|
|
98
|
-
@overload
|
|
99
|
-
def execute_command_without_recovery(
|
|
100
|
-
self, params: commands.thermocycler.SetTargetBlockTemperatureParams
|
|
101
|
-
) -> commands.thermocycler.SetTargetBlockTemperatureResult:
|
|
102
|
-
pass
|
|
103
|
-
|
|
104
|
-
@overload
|
|
105
|
-
def execute_command_without_recovery(
|
|
106
|
-
self, params: commands.thermocycler.SetTargetLidTemperatureParams
|
|
107
|
-
) -> commands.thermocycler.SetTargetLidTemperatureResult:
|
|
108
|
-
pass
|
|
109
|
-
|
|
110
68
|
@overload
|
|
111
69
|
def execute_command_without_recovery(
|
|
112
70
|
self, params: commands.LoadModuleParams
|
|
@@ -191,6 +149,13 @@ class SyncClient:
|
|
|
191
149
|
"""Add a liquid to the engine."""
|
|
192
150
|
return self._transport.call_method("add_liquid", name=name, color=color, description=description) # type: ignore[no-any-return]
|
|
193
151
|
|
|
152
|
+
def reset_tips(self, labware_id: str) -> None:
|
|
153
|
+
"""Reset a labware's tip tracking state.."""
|
|
154
|
+
self._transport.call_method(
|
|
155
|
+
"reset_tips",
|
|
156
|
+
labware_id=labware_id,
|
|
157
|
+
)
|
|
158
|
+
|
|
194
159
|
def add_labware_offset(self, request: LabwareOffsetCreate) -> None:
|
|
195
160
|
"""Add a labware offset."""
|
|
196
161
|
self._transport.call_method("add_labware_offset", request=request)
|
|
@@ -271,22 +271,6 @@ from .wait_for_duration import (
|
|
|
271
271
|
WaitForDurationCommandType,
|
|
272
272
|
)
|
|
273
273
|
|
|
274
|
-
from .create_timer import (
|
|
275
|
-
CreateTimer,
|
|
276
|
-
CreateTimerCreate,
|
|
277
|
-
CreateTimerParams,
|
|
278
|
-
CreateTimerResult,
|
|
279
|
-
CreateTimerCommandType,
|
|
280
|
-
)
|
|
281
|
-
|
|
282
|
-
from .wait_for_tasks import (
|
|
283
|
-
WaitForTasks,
|
|
284
|
-
WaitForTasksCreate,
|
|
285
|
-
WaitForTasksParams,
|
|
286
|
-
WaitForTasksResult,
|
|
287
|
-
WaitForTasksCommandType,
|
|
288
|
-
)
|
|
289
|
-
|
|
290
274
|
from .pick_up_tip import (
|
|
291
275
|
PickUpTip,
|
|
292
276
|
PickUpTipParams,
|
|
@@ -400,14 +384,6 @@ from .get_next_tip import (
|
|
|
400
384
|
GetNextTipCommandType,
|
|
401
385
|
)
|
|
402
386
|
|
|
403
|
-
from .set_tip_state import (
|
|
404
|
-
SetTipState,
|
|
405
|
-
SetTipStateCreate,
|
|
406
|
-
SetTipStateParams,
|
|
407
|
-
SetTipStateResult,
|
|
408
|
-
SetTipStateCommandType,
|
|
409
|
-
)
|
|
410
|
-
|
|
411
387
|
from .liquid_probe import (
|
|
412
388
|
LiquidProbe,
|
|
413
389
|
LiquidProbeParams,
|
|
@@ -643,12 +619,6 @@ __all__ = [
|
|
|
643
619
|
"WaitForDurationCreate",
|
|
644
620
|
"WaitForDurationResult",
|
|
645
621
|
"WaitForDurationCommandType",
|
|
646
|
-
# Timer command models
|
|
647
|
-
"CreateTimer",
|
|
648
|
-
"CreateTimerCreate",
|
|
649
|
-
"CreateTimerParams",
|
|
650
|
-
"CreateTimerResult",
|
|
651
|
-
"CreateTimerCommandType",
|
|
652
622
|
# pick up tip command models
|
|
653
623
|
"PickUpTip",
|
|
654
624
|
"PickUpTipCreate",
|
|
@@ -755,12 +725,6 @@ __all__ = [
|
|
|
755
725
|
"GetNextTipParams",
|
|
756
726
|
"GetNextTipResult",
|
|
757
727
|
"GetNextTipCommandType",
|
|
758
|
-
# set tip state command bundle
|
|
759
|
-
"SetTipState",
|
|
760
|
-
"SetTipStateCreate",
|
|
761
|
-
"SetTipStateParams",
|
|
762
|
-
"SetTipStateResult",
|
|
763
|
-
"SetTipStateCommandType",
|
|
764
728
|
# liquid probe command bundle
|
|
765
729
|
"LiquidProbe",
|
|
766
730
|
"LiquidProbeParams",
|
|
@@ -790,10 +754,4 @@ __all__ = [
|
|
|
790
754
|
"PressureDispenseCreate",
|
|
791
755
|
"PressureDispenseResult",
|
|
792
756
|
"PressureDispenseCommandType",
|
|
793
|
-
# wait for tasks command bundle
|
|
794
|
-
"WaitForTasks",
|
|
795
|
-
"WaitForTasksCreate",
|
|
796
|
-
"WaitForTasksParams",
|
|
797
|
-
"WaitForTasksResult",
|
|
798
|
-
"WaitForTasksCommandType",
|
|
799
757
|
]
|
|
@@ -102,12 +102,25 @@ class CloseLidImpl(AbstractCommandImpl[CloseLidParams, SuccessData[CloseLidResul
|
|
|
102
102
|
)
|
|
103
103
|
)
|
|
104
104
|
|
|
105
|
+
# The lid's labware definition stores gripper offsets for itself in the
|
|
106
|
+
# space normally meant for offsets for labware stacked atop it.
|
|
107
|
+
lid_gripper_offsets = self._state_view.labware.get_child_gripper_offsets(
|
|
108
|
+
labware_definition=lid_definition,
|
|
109
|
+
slot_name=None,
|
|
110
|
+
)
|
|
111
|
+
if lid_gripper_offsets is None:
|
|
112
|
+
raise ValueError(
|
|
113
|
+
"Gripper Offset values for Absorbance Reader Lid labware must not be None."
|
|
114
|
+
)
|
|
115
|
+
|
|
105
116
|
await self._labware_movement.move_labware_with_gripper(
|
|
106
117
|
labware_definition=lid_definition,
|
|
107
118
|
current_location=current_location,
|
|
108
119
|
new_location=new_location,
|
|
109
|
-
user_pick_up_offset=Point(
|
|
110
|
-
|
|
120
|
+
user_pick_up_offset=Point.from_xyz_attrs(
|
|
121
|
+
lid_gripper_offsets.pickUpOffset
|
|
122
|
+
),
|
|
123
|
+
user_drop_offset=Point.from_xyz_attrs(lid_gripper_offsets.dropOffset),
|
|
111
124
|
post_drop_slide_offset=None,
|
|
112
125
|
gripper_z_offset=LID_Z_CLEARANCE,
|
|
113
126
|
)
|
|
@@ -103,12 +103,25 @@ class OpenLidImpl(AbstractCommandImpl[OpenLidParams, SuccessData[OpenLidResult]]
|
|
|
103
103
|
mod_substate.module_id
|
|
104
104
|
)
|
|
105
105
|
|
|
106
|
+
# The lid's labware definition stores gripper offsets for itself in the
|
|
107
|
+
# space normally meant for offsets for labware stacked atop it.
|
|
108
|
+
lid_gripper_offsets = self._state_view.labware.get_child_gripper_offsets(
|
|
109
|
+
labware_definition=lid_definition,
|
|
110
|
+
slot_name=None,
|
|
111
|
+
)
|
|
112
|
+
if lid_gripper_offsets is None:
|
|
113
|
+
raise ValueError(
|
|
114
|
+
"Gripper Offset values for Absorbance Reader Lid labware must not be None."
|
|
115
|
+
)
|
|
116
|
+
|
|
106
117
|
await self._labware_movement.move_labware_with_gripper(
|
|
107
118
|
labware_definition=lid_definition,
|
|
108
119
|
current_location=current_location,
|
|
109
120
|
new_location=new_location,
|
|
110
|
-
user_pick_up_offset=Point(
|
|
111
|
-
|
|
121
|
+
user_pick_up_offset=Point.from_xyz_attrs(
|
|
122
|
+
lid_gripper_offsets.pickUpOffset
|
|
123
|
+
),
|
|
124
|
+
user_drop_offset=Point.from_xyz_attrs(lid_gripper_offsets.dropOffset),
|
|
112
125
|
post_drop_slide_offset=None,
|
|
113
126
|
gripper_z_offset=LID_Z_CLEARANCE,
|
|
114
127
|
)
|
|
@@ -161,7 +161,6 @@ class AspirateImplementation(AbstractCommandImpl[AspirateParams, _ExecuteReturn]
|
|
|
161
161
|
well_location=well_location,
|
|
162
162
|
current_well=current_well,
|
|
163
163
|
operation_volume=-params.volume,
|
|
164
|
-
offset_pipette_for_reservoir_subwells=False,
|
|
165
164
|
)
|
|
166
165
|
state_update.append(move_result.state_update)
|
|
167
166
|
if isinstance(move_result, DefinedErrorData):
|
|
@@ -185,7 +185,6 @@ class AbstractCommandImpl(
|
|
|
185
185
|
tip_handler: execution.TipHandler,
|
|
186
186
|
run_control: execution.RunControlHandler,
|
|
187
187
|
rail_lights: execution.RailLightsHandler,
|
|
188
|
-
task_handler: execution.TaskHandler,
|
|
189
188
|
model_utils: ModelUtils,
|
|
190
189
|
status_bar: execution.StatusBarHandler,
|
|
191
190
|
command_note_adder: CommandNoteAdder,
|
|
@@ -267,22 +267,6 @@ from .wait_for_duration import (
|
|
|
267
267
|
WaitForDurationCommandType,
|
|
268
268
|
)
|
|
269
269
|
|
|
270
|
-
from .create_timer import (
|
|
271
|
-
CreateTimer,
|
|
272
|
-
CreateTimerCreate,
|
|
273
|
-
CreateTimerParams,
|
|
274
|
-
CreateTimerResult,
|
|
275
|
-
CreateTimerCommandType,
|
|
276
|
-
)
|
|
277
|
-
|
|
278
|
-
from .wait_for_tasks import (
|
|
279
|
-
WaitForTasks,
|
|
280
|
-
WaitForTasksCreate,
|
|
281
|
-
WaitForTasksParams,
|
|
282
|
-
WaitForTasksResult,
|
|
283
|
-
WaitForTasksCommandType,
|
|
284
|
-
)
|
|
285
|
-
|
|
286
270
|
from .pick_up_tip import (
|
|
287
271
|
PickUpTip,
|
|
288
272
|
PickUpTipParams,
|
|
@@ -388,14 +372,6 @@ from .get_next_tip import (
|
|
|
388
372
|
GetNextTipCommandType,
|
|
389
373
|
)
|
|
390
374
|
|
|
391
|
-
from .set_tip_state import (
|
|
392
|
-
SetTipState,
|
|
393
|
-
SetTipStateCreate,
|
|
394
|
-
SetTipStateParams,
|
|
395
|
-
SetTipStateResult,
|
|
396
|
-
SetTipStateCommandType,
|
|
397
|
-
)
|
|
398
|
-
|
|
399
375
|
from .liquid_probe import (
|
|
400
376
|
LiquidProbe,
|
|
401
377
|
LiquidProbeParams,
|
|
@@ -478,8 +454,6 @@ Command = Annotated[
|
|
|
478
454
|
PrepareToAspirate,
|
|
479
455
|
WaitForResume,
|
|
480
456
|
WaitForDuration,
|
|
481
|
-
WaitForTasks,
|
|
482
|
-
CreateTimer,
|
|
483
457
|
PickUpTip,
|
|
484
458
|
SavePosition,
|
|
485
459
|
SetRailLights,
|
|
@@ -488,7 +462,6 @@ Command = Annotated[
|
|
|
488
462
|
VerifyTipPresence,
|
|
489
463
|
GetTipPresence,
|
|
490
464
|
GetNextTip,
|
|
491
|
-
SetTipState,
|
|
492
465
|
LiquidProbe,
|
|
493
466
|
TryLiquidProbe,
|
|
494
467
|
SealPipetteToTip,
|
|
@@ -498,7 +471,6 @@ Command = Annotated[
|
|
|
498
471
|
heater_shaker.SetTargetTemperature,
|
|
499
472
|
heater_shaker.DeactivateHeater,
|
|
500
473
|
heater_shaker.SetAndWaitForShakeSpeed,
|
|
501
|
-
heater_shaker.SetShakeSpeed,
|
|
502
474
|
heater_shaker.DeactivateShaker,
|
|
503
475
|
heater_shaker.OpenLabwareLatch,
|
|
504
476
|
heater_shaker.CloseLabwareLatch,
|
|
@@ -516,7 +488,6 @@ Command = Annotated[
|
|
|
516
488
|
thermocycler.OpenLid,
|
|
517
489
|
thermocycler.CloseLid,
|
|
518
490
|
thermocycler.RunProfile,
|
|
519
|
-
thermocycler.StartRunExtendedProfile,
|
|
520
491
|
thermocycler.RunExtendedProfile,
|
|
521
492
|
absorbance_reader.CloseLid,
|
|
522
493
|
absorbance_reader.OpenLid,
|
|
@@ -586,8 +557,6 @@ CommandParams = Union[
|
|
|
586
557
|
PrepareToAspirateParams,
|
|
587
558
|
WaitForResumeParams,
|
|
588
559
|
WaitForDurationParams,
|
|
589
|
-
WaitForTasksParams,
|
|
590
|
-
CreateTimerParams,
|
|
591
560
|
PickUpTipParams,
|
|
592
561
|
SavePositionParams,
|
|
593
562
|
SetRailLightsParams,
|
|
@@ -596,7 +565,6 @@ CommandParams = Union[
|
|
|
596
565
|
VerifyTipPresenceParams,
|
|
597
566
|
GetTipPresenceParams,
|
|
598
567
|
GetNextTipParams,
|
|
599
|
-
SetTipStateParams,
|
|
600
568
|
LiquidProbeParams,
|
|
601
569
|
TryLiquidProbeParams,
|
|
602
570
|
SealPipetteToTipParams,
|
|
@@ -606,7 +574,6 @@ CommandParams = Union[
|
|
|
606
574
|
heater_shaker.SetTargetTemperatureParams,
|
|
607
575
|
heater_shaker.DeactivateHeaterParams,
|
|
608
576
|
heater_shaker.SetAndWaitForShakeSpeedParams,
|
|
609
|
-
heater_shaker.SetShakeSpeedParams,
|
|
610
577
|
heater_shaker.DeactivateShakerParams,
|
|
611
578
|
heater_shaker.OpenLabwareLatchParams,
|
|
612
579
|
heater_shaker.CloseLabwareLatchParams,
|
|
@@ -624,7 +591,6 @@ CommandParams = Union[
|
|
|
624
591
|
thermocycler.OpenLidParams,
|
|
625
592
|
thermocycler.CloseLidParams,
|
|
626
593
|
thermocycler.RunProfileParams,
|
|
627
|
-
thermocycler.StartRunExtendedProfileParams,
|
|
628
594
|
thermocycler.RunExtendedProfileParams,
|
|
629
595
|
absorbance_reader.CloseLidParams,
|
|
630
596
|
absorbance_reader.OpenLidParams,
|
|
@@ -692,8 +658,6 @@ CommandType = Union[
|
|
|
692
658
|
PrepareToAspirateCommandType,
|
|
693
659
|
WaitForResumeCommandType,
|
|
694
660
|
WaitForDurationCommandType,
|
|
695
|
-
WaitForTasksCommandType,
|
|
696
|
-
CreateTimerCommandType,
|
|
697
661
|
PickUpTipCommandType,
|
|
698
662
|
SavePositionCommandType,
|
|
699
663
|
SetRailLightsCommandType,
|
|
@@ -702,7 +666,6 @@ CommandType = Union[
|
|
|
702
666
|
VerifyTipPresenceCommandType,
|
|
703
667
|
GetTipPresenceCommandType,
|
|
704
668
|
GetNextTipCommandType,
|
|
705
|
-
SetTipStateCommandType,
|
|
706
669
|
LiquidProbeCommandType,
|
|
707
670
|
TryLiquidProbeCommandType,
|
|
708
671
|
SealPipetteToTipCommandType,
|
|
@@ -712,7 +675,6 @@ CommandType = Union[
|
|
|
712
675
|
heater_shaker.SetTargetTemperatureCommandType,
|
|
713
676
|
heater_shaker.DeactivateHeaterCommandType,
|
|
714
677
|
heater_shaker.SetAndWaitForShakeSpeedCommandType,
|
|
715
|
-
heater_shaker.SetShakeSpeedCommandType,
|
|
716
678
|
heater_shaker.DeactivateShakerCommandType,
|
|
717
679
|
heater_shaker.OpenLabwareLatchCommandType,
|
|
718
680
|
heater_shaker.CloseLabwareLatchCommandType,
|
|
@@ -730,7 +692,6 @@ CommandType = Union[
|
|
|
730
692
|
thermocycler.OpenLidCommandType,
|
|
731
693
|
thermocycler.CloseLidCommandType,
|
|
732
694
|
thermocycler.RunProfileCommandType,
|
|
733
|
-
thermocycler.StartRunExtendedProfileCommandType,
|
|
734
695
|
thermocycler.RunExtendedProfileCommandType,
|
|
735
696
|
absorbance_reader.CloseLidCommandType,
|
|
736
697
|
absorbance_reader.OpenLidCommandType,
|
|
@@ -799,8 +760,6 @@ CommandCreate = Annotated[
|
|
|
799
760
|
PrepareToAspirateCreate,
|
|
800
761
|
WaitForResumeCreate,
|
|
801
762
|
WaitForDurationCreate,
|
|
802
|
-
WaitForTasksCreate,
|
|
803
|
-
CreateTimerCreate,
|
|
804
763
|
PickUpTipCreate,
|
|
805
764
|
SavePositionCreate,
|
|
806
765
|
SetRailLightsCreate,
|
|
@@ -809,7 +768,6 @@ CommandCreate = Annotated[
|
|
|
809
768
|
VerifyTipPresenceCreate,
|
|
810
769
|
GetTipPresenceCreate,
|
|
811
770
|
GetNextTipCreate,
|
|
812
|
-
SetTipStateCreate,
|
|
813
771
|
LiquidProbeCreate,
|
|
814
772
|
TryLiquidProbeCreate,
|
|
815
773
|
SealPipetteToTipCreate,
|
|
@@ -819,7 +777,6 @@ CommandCreate = Annotated[
|
|
|
819
777
|
heater_shaker.SetTargetTemperatureCreate,
|
|
820
778
|
heater_shaker.DeactivateHeaterCreate,
|
|
821
779
|
heater_shaker.SetAndWaitForShakeSpeedCreate,
|
|
822
|
-
heater_shaker.SetShakeSpeedCreate,
|
|
823
780
|
heater_shaker.DeactivateShakerCreate,
|
|
824
781
|
heater_shaker.OpenLabwareLatchCreate,
|
|
825
782
|
heater_shaker.CloseLabwareLatchCreate,
|
|
@@ -837,7 +794,6 @@ CommandCreate = Annotated[
|
|
|
837
794
|
thermocycler.OpenLidCreate,
|
|
838
795
|
thermocycler.CloseLidCreate,
|
|
839
796
|
thermocycler.RunProfileCreate,
|
|
840
|
-
thermocycler.StartRunExtendedProfileCreate,
|
|
841
797
|
thermocycler.RunExtendedProfileCreate,
|
|
842
798
|
absorbance_reader.CloseLidCreate,
|
|
843
799
|
absorbance_reader.OpenLidCreate,
|
|
@@ -914,8 +870,6 @@ CommandResult = Union[
|
|
|
914
870
|
PrepareToAspirateResult,
|
|
915
871
|
WaitForResumeResult,
|
|
916
872
|
WaitForDurationResult,
|
|
917
|
-
WaitForTasksResult,
|
|
918
|
-
CreateTimerResult,
|
|
919
873
|
PickUpTipResult,
|
|
920
874
|
SavePositionResult,
|
|
921
875
|
SetRailLightsResult,
|
|
@@ -924,7 +878,6 @@ CommandResult = Union[
|
|
|
924
878
|
VerifyTipPresenceResult,
|
|
925
879
|
GetTipPresenceResult,
|
|
926
880
|
GetNextTipResult,
|
|
927
|
-
SetTipStateResult,
|
|
928
881
|
LiquidProbeResult,
|
|
929
882
|
TryLiquidProbeResult,
|
|
930
883
|
SealPipetteToTipResult,
|
|
@@ -934,7 +887,6 @@ CommandResult = Union[
|
|
|
934
887
|
heater_shaker.SetTargetTemperatureResult,
|
|
935
888
|
heater_shaker.DeactivateHeaterResult,
|
|
936
889
|
heater_shaker.SetAndWaitForShakeSpeedResult,
|
|
937
|
-
heater_shaker.SetShakeSpeedResult,
|
|
938
890
|
heater_shaker.DeactivateShakerResult,
|
|
939
891
|
heater_shaker.OpenLabwareLatchResult,
|
|
940
892
|
heater_shaker.CloseLabwareLatchResult,
|
|
@@ -952,7 +904,6 @@ CommandResult = Union[
|
|
|
952
904
|
thermocycler.OpenLidResult,
|
|
953
905
|
thermocycler.CloseLidResult,
|
|
954
906
|
thermocycler.RunProfileResult,
|
|
955
|
-
thermocycler.StartRunExtendedProfileResult,
|
|
956
907
|
thermocycler.RunExtendedProfileResult,
|
|
957
908
|
absorbance_reader.CloseLidResult,
|
|
958
909
|
absorbance_reader.OpenLidResult,
|
|
@@ -101,7 +101,6 @@ class DispenseImplementation(AbstractCommandImpl[DispenseParams, _ExecuteReturn]
|
|
|
101
101
|
well_name=well_name,
|
|
102
102
|
well_location=well_location,
|
|
103
103
|
operation_volume=volume,
|
|
104
|
-
offset_pipette_for_reservoir_subwells=False,
|
|
105
104
|
)
|
|
106
105
|
if isinstance(move_result, DefinedErrorData):
|
|
107
106
|
return move_result
|
|
@@ -12,7 +12,7 @@ from opentrons.protocol_engine.errors.exceptions import TipAttachedError
|
|
|
12
12
|
from opentrons.protocol_engine.resources.model_utils import ModelUtils
|
|
13
13
|
|
|
14
14
|
from ..state.update_types import StateUpdate
|
|
15
|
-
from ..types import DropTipWellLocation
|
|
15
|
+
from ..types import DropTipWellLocation
|
|
16
16
|
from .pipetting_common import (
|
|
17
17
|
PipetteIdMixin,
|
|
18
18
|
TipPhysicallyAttachedError,
|
|
@@ -140,25 +140,6 @@ class DropTipImplementation(AbstractCommandImpl[DropTipParams, _ExecuteReturn]):
|
|
|
140
140
|
partially_configured=is_partially_configured,
|
|
141
141
|
)
|
|
142
142
|
|
|
143
|
-
is_tip_rack = self._state_view.labware.get_definition(
|
|
144
|
-
labware_id
|
|
145
|
-
).parameters.isTiprack
|
|
146
|
-
|
|
147
|
-
# It's possible that we are dropping tips into a labware trash for pre API v2.14 OT-2 protocols
|
|
148
|
-
# (or something else unexpected), so if it is not a tip rack mark no wells as used
|
|
149
|
-
if is_tip_rack:
|
|
150
|
-
tips_to_mark_as_used = (
|
|
151
|
-
self._state_view.tips.compute_tips_to_mark_as_used_or_empty(
|
|
152
|
-
labware_id=labware_id,
|
|
153
|
-
well_name=well_name,
|
|
154
|
-
nozzle_map=self._state_view.pipettes.get_nozzle_configuration(
|
|
155
|
-
pipette_id
|
|
156
|
-
),
|
|
157
|
-
)
|
|
158
|
-
)
|
|
159
|
-
else:
|
|
160
|
-
tips_to_mark_as_used = []
|
|
161
|
-
|
|
162
143
|
move_result = await move_to_well(
|
|
163
144
|
movement=self._movement_handler,
|
|
164
145
|
model_utils=self._model_utils,
|
|
@@ -171,7 +152,12 @@ class DropTipImplementation(AbstractCommandImpl[DropTipParams, _ExecuteReturn]):
|
|
|
171
152
|
return move_result
|
|
172
153
|
|
|
173
154
|
scrape_type = TipScrapeType.NONE
|
|
174
|
-
if
|
|
155
|
+
if (
|
|
156
|
+
params.scrape_tips
|
|
157
|
+
and self._state_view.geometry._labware.get_definition(
|
|
158
|
+
labware_id
|
|
159
|
+
).parameters.isTiprack
|
|
160
|
+
):
|
|
175
161
|
if int("".join(filter(str.isdigit, well_name))) <= 6:
|
|
176
162
|
scrape_type = TipScrapeType.RIGHT_ONE_COL
|
|
177
163
|
else:
|
|
@@ -208,10 +194,6 @@ class DropTipImplementation(AbstractCommandImpl[DropTipParams, _ExecuteReturn]):
|
|
|
208
194
|
pipette_id=params.pipetteId,
|
|
209
195
|
tip_geometry=None,
|
|
210
196
|
tip_source=None,
|
|
211
|
-
).update_tip_rack_well_state(
|
|
212
|
-
tip_state=TipRackWellState.USED,
|
|
213
|
-
labware_id=labware_id,
|
|
214
|
-
well_names=tips_to_mark_as_used,
|
|
215
197
|
),
|
|
216
198
|
)
|
|
217
199
|
else:
|
|
@@ -219,16 +201,10 @@ class DropTipImplementation(AbstractCommandImpl[DropTipParams, _ExecuteReturn]):
|
|
|
219
201
|
public=DropTipResult(position=move_result.public.position),
|
|
220
202
|
state_update=move_result.state_update.set_fluid_unknown(
|
|
221
203
|
pipette_id=pipette_id
|
|
222
|
-
)
|
|
223
|
-
.update_pipette_tip_state(
|
|
204
|
+
).update_pipette_tip_state(
|
|
224
205
|
pipette_id=params.pipetteId,
|
|
225
206
|
tip_geometry=None,
|
|
226
207
|
tip_source=None,
|
|
227
|
-
)
|
|
228
|
-
.update_tip_rack_well_state(
|
|
229
|
-
tip_state=TipRackWellState.USED,
|
|
230
|
-
labware_id=labware_id,
|
|
231
|
-
well_names=tips_to_mark_as_used,
|
|
232
208
|
),
|
|
233
209
|
)
|
|
234
210
|
|
|
@@ -32,14 +32,6 @@ from .set_and_wait_for_shake_speed import (
|
|
|
32
32
|
SetAndWaitForShakeSpeedCommandType,
|
|
33
33
|
)
|
|
34
34
|
|
|
35
|
-
from .set_shake_speed import (
|
|
36
|
-
SetShakeSpeed,
|
|
37
|
-
SetShakeSpeedCreate,
|
|
38
|
-
SetShakeSpeedParams,
|
|
39
|
-
SetShakeSpeedResult,
|
|
40
|
-
SetShakeSpeedCommandType,
|
|
41
|
-
)
|
|
42
|
-
|
|
43
35
|
from .deactivate_shaker import (
|
|
44
36
|
DeactivateShaker,
|
|
45
37
|
DeactivateShakerCreate,
|
|
@@ -89,12 +81,6 @@ __all__ = [
|
|
|
89
81
|
"SetAndWaitForShakeSpeedParams",
|
|
90
82
|
"SetAndWaitForShakeSpeedResult",
|
|
91
83
|
"SetAndWaitForShakeSpeedCommandType",
|
|
92
|
-
# heaterShaker/setShakeSpeed
|
|
93
|
-
"SetShakeSpeed",
|
|
94
|
-
"SetShakeSpeedCreate",
|
|
95
|
-
"SetShakeSpeedParams",
|
|
96
|
-
"SetShakeSpeedResult",
|
|
97
|
-
"SetShakeSpeedCommandType",
|
|
98
84
|
# heaterShaker/deactivateShaker
|
|
99
85
|
"DeactivateShaker",
|
|
100
86
|
"DeactivateShakerCreate",
|
|
@@ -8,8 +8,6 @@ from ..command import AbstractCommandImpl, BaseCommand, BaseCommandCreate, Succe
|
|
|
8
8
|
from ...errors.error_occurrence import ErrorOccurrence
|
|
9
9
|
from ...state import update_types
|
|
10
10
|
|
|
11
|
-
from .common import get_heatershaker_ready_to_shake
|
|
12
|
-
|
|
13
11
|
if TYPE_CHECKING:
|
|
14
12
|
from opentrons.protocol_engine.state.state import StateView
|
|
15
13
|
from opentrons.protocol_engine.execution import EquipmentHandler, MovementHandler
|
|
@@ -66,9 +64,10 @@ class SetAndWaitForShakeSpeedImpl(
|
|
|
66
64
|
module_id=params.moduleId
|
|
67
65
|
)
|
|
68
66
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
67
|
+
hs_module_substate.raise_if_labware_latch_not_closed()
|
|
68
|
+
|
|
69
|
+
# Verify speed from hs module view
|
|
70
|
+
validated_speed = hs_module_substate.validate_target_speed(params.rpm)
|
|
72
71
|
|
|
73
72
|
pipette_should_retract = (
|
|
74
73
|
self._state_view.motion.check_pipette_blocking_hs_shaker(
|