opentrons 8.8.0a7__py3-none-any.whl → 8.8.0a8__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/hardware_control/ot3api.py +10 -3
- opentrons/hardware_control/protocols/liquid_handler.py +6 -2
- opentrons/protocol_api/core/engine/pipette_movement_conflict.py +4 -18
- opentrons/protocol_engine/execution/pipetting.py +7 -0
- opentrons/protocol_engine/state/motion.py +16 -18
- {opentrons-8.8.0a7.dist-info → opentrons-8.8.0a8.dist-info}/METADATA +4 -4
- {opentrons-8.8.0a7.dist-info → opentrons-8.8.0a8.dist-info}/RECORD +11 -11
- {opentrons-8.8.0a7.dist-info → opentrons-8.8.0a8.dist-info}/WHEEL +0 -0
- {opentrons-8.8.0a7.dist-info → opentrons-8.8.0a8.dist-info}/entry_points.txt +0 -0
- {opentrons-8.8.0a7.dist-info → opentrons-8.8.0a8.dist-info}/licenses/LICENSE +0 -0
opentrons/_version.py
CHANGED
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '8.8.
|
|
32
|
-
__version_tuple__ = version_tuple = (8, 8, 0, '
|
|
31
|
+
__version__ = version = '8.8.0a8'
|
|
32
|
+
__version_tuple__ = version_tuple = (8, 8, 0, 'a8')
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -3089,6 +3089,7 @@ class OT3API(
|
|
|
3089
3089
|
volume: float,
|
|
3090
3090
|
rate: float = 1.0,
|
|
3091
3091
|
movement_delay: Optional[float] = None,
|
|
3092
|
+
end_critical_point: Optional[CriticalPoint] = None,
|
|
3092
3093
|
) -> None:
|
|
3093
3094
|
"""
|
|
3094
3095
|
Aspirate a volume of liquid (in microliters/uL) while moving the z axis synchronously.
|
|
@@ -3108,7 +3109,7 @@ class OT3API(
|
|
|
3108
3109
|
end_position = target_position_from_absolute(
|
|
3109
3110
|
realmount,
|
|
3110
3111
|
end_point,
|
|
3111
|
-
self.critical_point_for,
|
|
3112
|
+
partial(self.critical_point_for, cp_override=end_critical_point),
|
|
3112
3113
|
top_types.Point(*self._config.left_mount_offset),
|
|
3113
3114
|
top_types.Point(*self._config.right_mount_offset),
|
|
3114
3115
|
top_types.Point(*self._config.gripper_mount_offset),
|
|
@@ -3123,6 +3124,9 @@ class OT3API(
|
|
|
3123
3124
|
delay: Optional[Tuple[List[Axis], float]] = None
|
|
3124
3125
|
if movement_delay is not None:
|
|
3125
3126
|
delay = ([Axis.X, Axis.Y, Axis.Z_L, Axis.Z_R], movement_delay)
|
|
3127
|
+
self._log.info(
|
|
3128
|
+
f"aspirate_while_tracking: end at {end_point} {end_critical_point}, machine pos {end_position}, with plunger {target_pos}, delay {delay}"
|
|
3129
|
+
)
|
|
3126
3130
|
try:
|
|
3127
3131
|
await self._backend.set_active_current(
|
|
3128
3132
|
{aspirate_spec.axis: aspirate_spec.current}
|
|
@@ -3158,6 +3162,7 @@ class OT3API(
|
|
|
3158
3162
|
rate: float = 1.0,
|
|
3159
3163
|
is_full_dispense: bool = False,
|
|
3160
3164
|
movement_delay: Optional[float] = None,
|
|
3165
|
+
end_critical_point: Optional[CriticalPoint] = None,
|
|
3161
3166
|
) -> None:
|
|
3162
3167
|
"""
|
|
3163
3168
|
Dispense a volume of liquid (in microliters/uL) while moving the z axis synchronously.
|
|
@@ -3177,7 +3182,7 @@ class OT3API(
|
|
|
3177
3182
|
end_position = target_position_from_absolute(
|
|
3178
3183
|
realmount,
|
|
3179
3184
|
end_point,
|
|
3180
|
-
self.critical_point_for,
|
|
3185
|
+
partial(self.critical_point_for, cp_override=end_critical_point),
|
|
3181
3186
|
top_types.Point(*self._config.left_mount_offset),
|
|
3182
3187
|
top_types.Point(*self._config.right_mount_offset),
|
|
3183
3188
|
top_types.Point(*self._config.gripper_mount_offset),
|
|
@@ -3192,7 +3197,9 @@ class OT3API(
|
|
|
3192
3197
|
delay: Optional[Tuple[List[Axis], float]] = None
|
|
3193
3198
|
if movement_delay is not None:
|
|
3194
3199
|
delay = ([Axis.X, Axis.Y, Axis.Z_L, Axis.Z_R], movement_delay)
|
|
3195
|
-
|
|
3200
|
+
self._log.info(
|
|
3201
|
+
f"dispense_while_tracking: end at {end_point} {end_critical_point}, machine pos {end_position}, with plunger {target_pos}, delay {delay}"
|
|
3202
|
+
)
|
|
3196
3203
|
try:
|
|
3197
3204
|
await self._backend.set_active_current(
|
|
3198
3205
|
{dispense_spec.axis: dispense_spec.current}
|
|
@@ -129,15 +129,17 @@ class LiquidHandler(
|
|
|
129
129
|
volume: float,
|
|
130
130
|
flow_rate: float = 1.0,
|
|
131
131
|
movement_delay: Optional[float] = None,
|
|
132
|
+
end_critical_point: Optional[CriticalPoint] = None,
|
|
132
133
|
) -> None:
|
|
133
134
|
"""
|
|
134
135
|
Aspirate a volume of liquid (in microliters/uL) while moving the z axis synchronously.
|
|
135
136
|
|
|
136
137
|
:param mount: A robot mount that the instrument is on.
|
|
137
|
-
:param
|
|
138
|
+
:param end_point: The deck coordinate point to move the tip to during the aspirate.
|
|
138
139
|
:param volume: The volume of liquid to be aspirated.
|
|
139
140
|
:param flow_rate: The flow rate to aspirate with.
|
|
140
141
|
:param movement_delay: Time to wait after the pipette starts aspirating before x/y/z movement.
|
|
142
|
+
:param end_critical_point: The critical point for the end_point position.
|
|
141
143
|
"""
|
|
142
144
|
...
|
|
143
145
|
|
|
@@ -172,15 +174,17 @@ class LiquidHandler(
|
|
|
172
174
|
flow_rate: float = 1.0,
|
|
173
175
|
is_full_dispense: bool = False,
|
|
174
176
|
movement_delay: Optional[float] = None,
|
|
177
|
+
end_critical_point: Optional[CriticalPoint] = None,
|
|
175
178
|
) -> None:
|
|
176
179
|
"""
|
|
177
180
|
Dispense a volume of liquid (in microliters/uL) while moving the z axis synchronously.
|
|
178
181
|
|
|
179
182
|
:param mount: A robot mount that the instrument is on.
|
|
180
|
-
:param
|
|
183
|
+
:param end_point: The deck coordinate point to move the tip to during the dispense.
|
|
181
184
|
:param volume: The volume of liquid to be dispensed.
|
|
182
185
|
:param flow_rate: The flow rate to dispense with.
|
|
183
186
|
:param movement_delay: Time to wait after the pipette starts dispensing before x/y/z movement.
|
|
187
|
+
:param end_critical_point: The critical point for the end_point position.
|
|
184
188
|
"""
|
|
185
189
|
...
|
|
186
190
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"""A Protocol-Engine-friendly wrapper for opentrons.motion_planning.deck_conflict."""
|
|
2
|
+
|
|
2
3
|
from __future__ import annotations
|
|
3
4
|
import logging
|
|
4
5
|
from typing import (
|
|
5
|
-
Optional,
|
|
6
6
|
Tuple,
|
|
7
7
|
Union,
|
|
8
8
|
List,
|
|
@@ -12,7 +12,6 @@ from opentrons_shared_data.errors.exceptions import MotionPlanningFailureError
|
|
|
12
12
|
from opentrons.protocol_engine.errors import LocationIsStagingSlotError
|
|
13
13
|
from opentrons_shared_data.module import FLEX_TC_LID_COLLISION_ZONE
|
|
14
14
|
|
|
15
|
-
from opentrons.hardware_control import CriticalPoint
|
|
16
15
|
from opentrons.motion_planning import adjacent_slots_getters
|
|
17
16
|
|
|
18
17
|
from opentrons.protocol_engine import (
|
|
@@ -101,7 +100,9 @@ def check_safe_for_pipette_movement( # noqa: C901
|
|
|
101
100
|
)
|
|
102
101
|
primary_nozzle = engine_state.pipettes.get_primary_nozzle(pipette_id)
|
|
103
102
|
|
|
104
|
-
destination_cp =
|
|
103
|
+
destination_cp = engine_state.motion.get_critical_point_for_wells_in_labware(
|
|
104
|
+
labware_id
|
|
105
|
+
)
|
|
105
106
|
pipette_bounds_at_well_location = (
|
|
106
107
|
engine_state.pipettes.get_pipette_bounds_at_specified_move_to_position(
|
|
107
108
|
pipette_id=pipette_id,
|
|
@@ -189,21 +190,6 @@ def check_safe_for_pipette_movement( # noqa: C901
|
|
|
189
190
|
)
|
|
190
191
|
|
|
191
192
|
|
|
192
|
-
def _get_critical_point_to_use(
|
|
193
|
-
engine_state: StateView, labware_id: str
|
|
194
|
-
) -> Optional[CriticalPoint]:
|
|
195
|
-
"""Return the critical point to use when accessing the given labware."""
|
|
196
|
-
# TODO (spp, 2024-09-17): looks like Y_CENTER of column is the same as its XY_CENTER.
|
|
197
|
-
# I'm using this if-else ladder to be consistent with what we do in
|
|
198
|
-
# `MotionPlanning.get_movement_waypoints_to_well()`.
|
|
199
|
-
# We should probably use only XY_CENTER in both places.
|
|
200
|
-
if engine_state.labware.get_should_center_column_on_target_well(labware_id):
|
|
201
|
-
return CriticalPoint.Y_CENTER
|
|
202
|
-
elif engine_state.labware.get_should_center_pipette_on_target_well(labware_id):
|
|
203
|
-
return CriticalPoint.XY_CENTER
|
|
204
|
-
return None
|
|
205
|
-
|
|
206
|
-
|
|
207
193
|
def _slot_has_potential_colliding_object(
|
|
208
194
|
engine_state: StateView,
|
|
209
195
|
pipette_bounds: Tuple[Point, Point, Point, Point],
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"""Pipetting command handling."""
|
|
2
|
+
|
|
2
3
|
from typing import Optional, Iterator, Tuple
|
|
3
4
|
from typing_extensions import Protocol as TypingProtocol
|
|
4
5
|
from contextlib import contextmanager
|
|
@@ -208,6 +209,9 @@ class HardwarePipettingHandler(PipettingHandler):
|
|
|
208
209
|
end_point=end_point,
|
|
209
210
|
volume=adjusted_volume,
|
|
210
211
|
movement_delay=movement_delay,
|
|
212
|
+
end_critical_point=self.get_state_view().motion.get_critical_point_for_wells_in_labware(
|
|
213
|
+
labware_id
|
|
214
|
+
),
|
|
211
215
|
)
|
|
212
216
|
return adjusted_volume
|
|
213
217
|
|
|
@@ -239,6 +243,9 @@ class HardwarePipettingHandler(PipettingHandler):
|
|
|
239
243
|
push_out=push_out,
|
|
240
244
|
is_full_dispense=is_full_dispense,
|
|
241
245
|
movement_delay=movement_delay,
|
|
246
|
+
end_critical_point=self.get_state_view().motion.get_critical_point_for_wells_in_labware(
|
|
247
|
+
labware_id
|
|
248
|
+
),
|
|
242
249
|
)
|
|
243
250
|
return adjusted_volume
|
|
244
251
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"""Motion state store and getters."""
|
|
2
|
+
|
|
2
3
|
from dataclasses import dataclass
|
|
3
4
|
from typing import List, Optional, Union
|
|
4
5
|
import logging
|
|
@@ -78,14 +79,9 @@ class MotionView:
|
|
|
78
79
|
isinstance(current_location, CurrentWell)
|
|
79
80
|
and current_location.pipette_id == pipette_id
|
|
80
81
|
):
|
|
81
|
-
|
|
82
|
-
current_location.labware_id
|
|
83
|
-
):
|
|
84
|
-
critical_point = CriticalPoint.Y_CENTER
|
|
85
|
-
elif self._labware.get_should_center_pipette_on_target_well(
|
|
82
|
+
critical_point = self.get_critical_point_for_wells_in_labware(
|
|
86
83
|
current_location.labware_id
|
|
87
|
-
)
|
|
88
|
-
critical_point = CriticalPoint.XY_CENTER
|
|
84
|
+
)
|
|
89
85
|
return PipetteLocationData(mount=mount, critical_point=critical_point)
|
|
90
86
|
|
|
91
87
|
def _get_pipette_offset_for_reservoirs(
|
|
@@ -124,6 +120,17 @@ class MotionView:
|
|
|
124
120
|
x_offset = -1 * well_x_dim / 24
|
|
125
121
|
return Point(x=x_offset, y=y_offset)
|
|
126
122
|
|
|
123
|
+
def get_critical_point_for_wells_in_labware(
|
|
124
|
+
self, labware_id: str
|
|
125
|
+
) -> CriticalPoint | None:
|
|
126
|
+
"""Get the appropriate critical point override for this labware."""
|
|
127
|
+
if self._labware.get_should_center_column_on_target_well(labware_id):
|
|
128
|
+
return CriticalPoint.Y_CENTER
|
|
129
|
+
elif self._labware.get_should_center_pipette_on_target_well(labware_id):
|
|
130
|
+
return CriticalPoint.XY_CENTER
|
|
131
|
+
else:
|
|
132
|
+
return None
|
|
133
|
+
|
|
127
134
|
def get_movement_waypoints_to_well(
|
|
128
135
|
self,
|
|
129
136
|
pipette_id: str,
|
|
@@ -142,11 +149,7 @@ class MotionView:
|
|
|
142
149
|
"""Calculate waypoints to a destination that's specified as a well."""
|
|
143
150
|
location = current_well or self._pipettes.get_current_location()
|
|
144
151
|
|
|
145
|
-
destination_cp
|
|
146
|
-
if self._labware.get_should_center_column_on_target_well(labware_id):
|
|
147
|
-
destination_cp = CriticalPoint.Y_CENTER
|
|
148
|
-
elif self._labware.get_should_center_pipette_on_target_well(labware_id):
|
|
149
|
-
destination_cp = CriticalPoint.XY_CENTER
|
|
152
|
+
destination_cp = self.get_critical_point_for_wells_in_labware(labware_id)
|
|
150
153
|
|
|
151
154
|
destination = self._geometry.get_well_position(
|
|
152
155
|
labware_id=labware_id,
|
|
@@ -397,12 +400,7 @@ class MotionView:
|
|
|
397
400
|
mm_from_edge=mm_from_edge,
|
|
398
401
|
edge_path_type=edge_path_type,
|
|
399
402
|
)
|
|
400
|
-
critical_point
|
|
401
|
-
|
|
402
|
-
if self._labware.get_should_center_column_on_target_well(labware_id):
|
|
403
|
-
critical_point = CriticalPoint.Y_CENTER
|
|
404
|
-
elif self._labware.get_should_center_pipette_on_target_well(labware_id):
|
|
405
|
-
critical_point = CriticalPoint.XY_CENTER
|
|
403
|
+
critical_point = self.get_critical_point_for_wells_in_labware(labware_id)
|
|
406
404
|
|
|
407
405
|
return [
|
|
408
406
|
motion_planning.Waypoint(position=p, critical_point=critical_point)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: opentrons
|
|
3
|
-
Version: 8.8.
|
|
3
|
+
Version: 8.8.0a8
|
|
4
4
|
Summary: The Opentrons API is a simple framework designed to make writing automated biology lab protocols easy.
|
|
5
5
|
Project-URL: opentrons.com, https://www.opentrons.com
|
|
6
6
|
Project-URL: Source Code On Github, https://github.com/Opentrons/opentrons/tree/edge/api
|
|
@@ -24,7 +24,7 @@ Requires-Dist: click<9,>=8.0.0
|
|
|
24
24
|
Requires-Dist: importlib-metadata>=1.0; python_version < '3.8'
|
|
25
25
|
Requires-Dist: jsonschema<4.18.0,>=3.0.1
|
|
26
26
|
Requires-Dist: numpy<2,>=1.20.0
|
|
27
|
-
Requires-Dist: opentrons-shared-data==8.8.
|
|
27
|
+
Requires-Dist: opentrons-shared-data==8.8.0a8
|
|
28
28
|
Requires-Dist: packaging>=21.0
|
|
29
29
|
Requires-Dist: pydantic-settings<3,>=2
|
|
30
30
|
Requires-Dist: pydantic<3,>=2.0.0
|
|
@@ -32,6 +32,6 @@ Requires-Dist: pyserial>=3.5
|
|
|
32
32
|
Requires-Dist: pyusb==1.2.1
|
|
33
33
|
Requires-Dist: typing-extensions<5,>=4.0.0
|
|
34
34
|
Provides-Extra: flex-hardware
|
|
35
|
-
Requires-Dist: opentrons-hardware[flex]==8.8.
|
|
35
|
+
Requires-Dist: opentrons-hardware[flex]==8.8.0a8; extra == 'flex-hardware'
|
|
36
36
|
Provides-Extra: ot2-hardware
|
|
37
|
-
Requires-Dist: opentrons-hardware==8.8.
|
|
37
|
+
Requires-Dist: opentrons-hardware==8.8.0a8; extra == 'ot2-hardware'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
opentrons/__init__.py,sha256=TQ_Ca_zzAM3iLzAysWKkFkQHG8-imihxDPQbLCYrf-E,4533
|
|
2
|
-
opentrons/_version.py,sha256=
|
|
2
|
+
opentrons/_version.py,sha256=rgcVnPkCP2h4fiGvNa8Mz1WTKaprmgMzufDaYDLbJ7E,712
|
|
3
3
|
opentrons/execute.py,sha256=J7kZFRxpbrj_e5XS37Zc9fsliBqxZBMrITT7jdUgJvw,29478
|
|
4
4
|
opentrons/legacy_broker.py,sha256=XnuEBBlrHCThc31RFW2UR0tGqctqWZ-CZ9vSC4L9whU,1553
|
|
5
5
|
opentrons/ordered_set.py,sha256=g-SB3qA14yxHu9zjGyc2wC7d2TUCBE6fKZlHAtbPzI8,4082
|
|
@@ -111,7 +111,7 @@ opentrons/hardware_control/module_control.py,sha256=id1W3xqT-W-zyt2PVodo2Abx127t
|
|
|
111
111
|
opentrons/hardware_control/motion_utilities.py,sha256=aIaT-qzkRpZaSmfTTSqs1wl6m7LBxwKHIhgkFean01o,10274
|
|
112
112
|
opentrons/hardware_control/nozzle_manager.py,sha256=AG4HKrV4n0Bm0UOEsaAYAURtkJwuEyk97e9Nqv2_nD0,17021
|
|
113
113
|
opentrons/hardware_control/ot3_calibration.py,sha256=vHB17U-FBzytvM8QeEu5kRYPo8lFwAo31ZEpiU4yf_0,45000
|
|
114
|
-
opentrons/hardware_control/ot3api.py,sha256=
|
|
114
|
+
opentrons/hardware_control/ot3api.py,sha256=TNZnoe-52kobBcc622VAOdPByhw2DWl4H5_eO4fp9ag,131393
|
|
115
115
|
opentrons/hardware_control/pause_manager.py,sha256=wmNmraimE2yZQVqCxX_rtQHUWRzpzyQEaym9fLMgyww,888
|
|
116
116
|
opentrons/hardware_control/poller.py,sha256=6aqR0UM36w-Fk1ozjp-74VHthZTfT8Yurh5Zb4OnZX8,4392
|
|
117
117
|
opentrons/hardware_control/robot_calibration.py,sha256=ilszGjZPspKiEk8MQPaHm2B-ljeisAYflKl8UyQ_D0U,7155
|
|
@@ -198,7 +198,7 @@ opentrons/hardware_control/protocols/gripper_controller.py,sha256=EEfL-KUzegZBm_
|
|
|
198
198
|
opentrons/hardware_control/protocols/hardware_manager.py,sha256=S9BSJ0XsnU5A9nFLMDZfmiizx3T41WhU_91VYj4bUVE,1629
|
|
199
199
|
opentrons/hardware_control/protocols/identifiable.py,sha256=YmhScb4Tr4mxVObL1i7pI-EouTMAmV-2oqKbovhdnrE,575
|
|
200
200
|
opentrons/hardware_control/protocols/instrument_configurer.py,sha256=5zUCAchtoJ6QPFqcGRb7FOsnt2nxjxlRJdt18IidKqQ,7729
|
|
201
|
-
opentrons/hardware_control/protocols/liquid_handler.py,sha256=
|
|
201
|
+
opentrons/hardware_control/protocols/liquid_handler.py,sha256=OvGf1LSPZC3imLO0GsFitXA4GObhT-xUnArChuf-gm8,10765
|
|
202
202
|
opentrons/hardware_control/protocols/module_provider.py,sha256=QDKCWqrW-6IeI91IICBTJClK0C__mgq3A0-M3Wa9ee8,487
|
|
203
203
|
opentrons/hardware_control/protocols/motion_controller.py,sha256=mWUHVDqju9gcMDU9adk6UzueZ9i-x2nU5hmcd_fHHyk,9737
|
|
204
204
|
opentrons/hardware_control/protocols/position_estimator.py,sha256=BrqK5AJn9747c4LX0ZWBJWgWHjyX977CHBI7WVvO-9Q,1922
|
|
@@ -268,7 +268,7 @@ opentrons/protocol_api/core/engine/labware.py,sha256=YUkoCogqLQpDee-wlcMPV90ZUi7
|
|
|
268
268
|
opentrons/protocol_api/core/engine/load_labware_params.py,sha256=CxSbCBXVXHtBszP-3Ko8hsQTjvvogKRo0CCzCmMfIic,3003
|
|
269
269
|
opentrons/protocol_api/core/engine/module_core.py,sha256=SBglcDmhwTrk_IfIgkzHsux9NEDQZ4OgzycAoO0qRdY,43222
|
|
270
270
|
opentrons/protocol_api/core/engine/overlap_versions.py,sha256=PyGvQtQUg1wzNtkuGZtxwXm019PoIjq7em2JiWaxbXc,675
|
|
271
|
-
opentrons/protocol_api/core/engine/pipette_movement_conflict.py,sha256=
|
|
271
|
+
opentrons/protocol_api/core/engine/pipette_movement_conflict.py,sha256=vjKuEmKU67M43dTTNoRvRwjPFx1a6sDEHNDp-8KuiuI,17386
|
|
272
272
|
opentrons/protocol_api/core/engine/point_calculations.py,sha256=C2eF0fvJQGMqQv3DzNhc1-m8HTAXTyTsHPJEPrEUEmo,2502
|
|
273
273
|
opentrons/protocol_api/core/engine/protocol.py,sha256=nZCWd6vq6PAzZVU_0kl3PPtcgtshN3xgWE2ixhiRK2g,50017
|
|
274
274
|
opentrons/protocol_api/core/engine/robot.py,sha256=bzUt23NG-clD-9-QFsV_6nm3fMgSmvYEG9DyyZI1xgw,5366
|
|
@@ -447,7 +447,7 @@ opentrons/protocol_engine/execution/hardware_stopper.py,sha256=ZlhVYEdFfuKqp5slZ
|
|
|
447
447
|
opentrons/protocol_engine/execution/heater_shaker_movement_flagger.py,sha256=BSFLzSSeELAYZCrCUfJZx5DdlrwU06Ur92TYd0T-hzM,9084
|
|
448
448
|
opentrons/protocol_engine/execution/labware_movement.py,sha256=RJMkWHGvoKc0GXjEZ2ZXWo1v9cvPlmbEdFBs0szROfo,12965
|
|
449
449
|
opentrons/protocol_engine/execution/movement.py,sha256=NJUs1mtC8R8qR1x2RVTI3q9hyVuLkvCvIM1SnD8sPH0,12899
|
|
450
|
-
opentrons/protocol_engine/execution/pipetting.py,sha256=
|
|
450
|
+
opentrons/protocol_engine/execution/pipetting.py,sha256=0hRu_erRItLj_TYfKx-NTibprYKfzros8HWsbZRf_q8,22067
|
|
451
451
|
opentrons/protocol_engine/execution/queue_worker.py,sha256=2cfyplUWdPyxxLbH3H8TbtB9Fvjx__ASluiJXyJBoqU,3537
|
|
452
452
|
opentrons/protocol_engine/execution/rail_lights.py,sha256=eiJT6oI_kFk7rFuFkZzISZiLNnpf7Kkh86Kyk9wQ_Jo,590
|
|
453
453
|
opentrons/protocol_engine/execution/run_control.py,sha256=Wn3FGuBZrYddf7Dzcz5v1hHF0DbzRxCykl6vs15BZP0,1450
|
|
@@ -489,7 +489,7 @@ opentrons/protocol_engine/state/labware.py,sha256=y-vZnirUS84RatzUu960CsbGb2lW9f
|
|
|
489
489
|
opentrons/protocol_engine/state/liquid_classes.py,sha256=u_z75UYdiFAKG0yB3mr1il4T3qaS0Sotq8sL7KLODP8,2990
|
|
490
490
|
opentrons/protocol_engine/state/liquids.py,sha256=NoesktcQdJUjIVmet1uqqJPf-rzbo4SGemXwQC295W0,2338
|
|
491
491
|
opentrons/protocol_engine/state/modules.py,sha256=rL_Xm7vNQrYsa6F3VYUJZVrehMfAnwvf0wXPyPH19PU,63087
|
|
492
|
-
opentrons/protocol_engine/state/motion.py,sha256=
|
|
492
|
+
opentrons/protocol_engine/state/motion.py,sha256=1pqxThXdUG7TQqYxyxUX3x49CUcdKqAAV-6o4jeKICo,16737
|
|
493
493
|
opentrons/protocol_engine/state/pipettes.py,sha256=Q-aDiVvOVvUXq930vvMvAWhK7aZ06-8FLZB6jO95dwQ,38531
|
|
494
494
|
opentrons/protocol_engine/state/preconditions.py,sha256=Qvv2Mnwdw2SzkVkfV1vcXNT-M9mbnITBPq9qkhZAa2o,2198
|
|
495
495
|
opentrons/protocol_engine/state/state.py,sha256=-Lrag0Az9eh9A4xUcv1qE2sqC6ZX3nXnoElk2a3hZuI,17193
|
|
@@ -623,8 +623,8 @@ opentrons/util/linal.py,sha256=IlKAP9HkNBBgULeSf4YVwSKHdx9jnCjSr7nvDvlRALg,5753
|
|
|
623
623
|
opentrons/util/logging_config.py,sha256=7et4YYuQdWdq_e50U-8vFS_QyNBRgdnqPGAQJm8qrIo,9954
|
|
624
624
|
opentrons/util/logging_queue_handler.py,sha256=ZsSJwy-oV8DXwpYiZisQ1PbYwmK2cOslD46AcyJ1E4I,2484
|
|
625
625
|
opentrons/util/performance_helpers.py,sha256=ew7H8XD20iS6-2TJAzbQeyzStZkkE6PzHt_Adx3wbZQ,5172
|
|
626
|
-
opentrons-8.8.
|
|
627
|
-
opentrons-8.8.
|
|
628
|
-
opentrons-8.8.
|
|
629
|
-
opentrons-8.8.
|
|
630
|
-
opentrons-8.8.
|
|
626
|
+
opentrons-8.8.0a8.dist-info/METADATA,sha256=RbWSALk55kHIbYOKPyHbljRU4JjoOPBQTcqWmQAUa34,1607
|
|
627
|
+
opentrons-8.8.0a8.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
628
|
+
opentrons-8.8.0a8.dist-info/entry_points.txt,sha256=fTa6eGCYkvOtv0ov-KVE8LLGetgb35LQLF9x85OWPVw,106
|
|
629
|
+
opentrons-8.8.0a8.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
630
|
+
opentrons-8.8.0a8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|