opentrons 8.2.0a0__py2.py3-none-any.whl → 8.2.0a1__py2.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.
- opentrons/drivers/absorbance_reader/async_byonoy.py +3 -3
- opentrons/legacy_commands/helpers.py +8 -2
- opentrons/protocol_api/core/engine/labware.py +10 -2
- opentrons/protocol_api/core/engine/module_core.py +38 -1
- opentrons/protocol_api/core/engine/pipette_movement_conflict.py +12 -5
- opentrons/protocol_api/core/engine/protocol.py +5 -30
- opentrons/protocol_api/core/labware.py +4 -0
- opentrons/protocol_api/core/legacy/legacy_labware_core.py +5 -0
- opentrons/protocol_api/core/legacy/legacy_protocol_core.py +1 -0
- opentrons/protocol_api/core/protocol.py +1 -0
- opentrons/protocol_api/module_contexts.py +13 -0
- opentrons/protocol_api/protocol_context.py +12 -2
- opentrons/protocol_engine/actions/__init__.py +0 -2
- opentrons/protocol_engine/actions/actions.py +0 -12
- opentrons/protocol_engine/clients/sync_client.py +0 -6
- opentrons/protocol_engine/commands/absorbance_reader/close_lid.py +18 -31
- opentrons/protocol_engine/commands/absorbance_reader/open_lid.py +17 -29
- opentrons/protocol_engine/commands/load_labware.py +9 -0
- opentrons/protocol_engine/commands/load_module.py +0 -39
- opentrons/protocol_engine/commands/move_labware.py +49 -4
- opentrons/protocol_engine/commands/unsafe/unsafe_place_labware.py +41 -32
- opentrons/protocol_engine/create_protocol_engine.py +18 -1
- opentrons/protocol_engine/execution/labware_movement.py +69 -21
- opentrons/protocol_engine/execution/movement.py +9 -4
- opentrons/protocol_engine/protocol_engine.py +0 -7
- opentrons/protocol_engine/resources/deck_data_provider.py +0 -39
- opentrons/protocol_engine/resources/file_provider.py +11 -7
- opentrons/protocol_engine/resources/fixture_validation.py +6 -1
- opentrons/protocol_engine/state/geometry.py +91 -49
- opentrons/protocol_engine/state/labware.py +102 -25
- opentrons/protocol_engine/state/module_substates/absorbance_reader_substate.py +3 -1
- opentrons/protocol_engine/state/modules.py +49 -79
- opentrons/protocol_engine/state/motion.py +17 -5
- opentrons/protocol_engine/state/update_types.py +16 -0
- opentrons/util/logging_config.py +1 -1
- {opentrons-8.2.0a0.dist-info → opentrons-8.2.0a1.dist-info}/METADATA +4 -4
- {opentrons-8.2.0a0.dist-info → opentrons-8.2.0a1.dist-info}/RECORD +41 -41
- {opentrons-8.2.0a0.dist-info → opentrons-8.2.0a1.dist-info}/LICENSE +0 -0
- {opentrons-8.2.0a0.dist-info → opentrons-8.2.0a1.dist-info}/WHEEL +0 -0
- {opentrons-8.2.0a0.dist-info → opentrons-8.2.0a1.dist-info}/entry_points.txt +0 -0
- {opentrons-8.2.0a0.dist-info → opentrons-8.2.0a1.dist-info}/top_level.txt +0 -0
|
@@ -26,13 +26,15 @@ from opentrons.motion_planning.adjacent_slots_getters import (
|
|
|
26
26
|
get_west_slot,
|
|
27
27
|
get_adjacent_staging_slot,
|
|
28
28
|
)
|
|
29
|
+
from opentrons.protocol_engine.actions.get_state_update import get_state_updates
|
|
29
30
|
from opentrons.protocol_engine.commands.calibration.calibrate_module import (
|
|
30
31
|
CalibrateModuleResult,
|
|
31
32
|
)
|
|
33
|
+
from opentrons.protocol_engine.state import update_types
|
|
32
34
|
from opentrons.protocol_engine.state.module_substates.absorbance_reader_substate import (
|
|
33
35
|
AbsorbanceReaderMeasureMode,
|
|
34
36
|
)
|
|
35
|
-
from opentrons.types import DeckSlotName, MountType
|
|
37
|
+
from opentrons.types import DeckSlotName, MountType, StagingSlotName
|
|
36
38
|
from ..errors import ModuleNotConnectedError
|
|
37
39
|
|
|
38
40
|
from ..types import (
|
|
@@ -67,7 +69,6 @@ from ..actions import (
|
|
|
67
69
|
Action,
|
|
68
70
|
SucceedCommandAction,
|
|
69
71
|
AddModuleAction,
|
|
70
|
-
AddAbsorbanceReaderLidAction,
|
|
71
72
|
)
|
|
72
73
|
from ._abstract_store import HasState, HandlesActions
|
|
73
74
|
from .module_substates import (
|
|
@@ -234,13 +235,14 @@ class ModuleStore(HasState[ModuleState], HandlesActions):
|
|
|
234
235
|
requested_model=None,
|
|
235
236
|
module_live_data=action.module_live_data,
|
|
236
237
|
)
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
lid_id=action.lid_id,
|
|
241
|
-
)
|
|
238
|
+
|
|
239
|
+
for state_update in get_state_updates(action):
|
|
240
|
+
self._handle_state_update(state_update)
|
|
242
241
|
|
|
243
242
|
def _handle_command(self, command: Command) -> None:
|
|
243
|
+
# todo(mm, 2024-11-04): Delete this function. Port these isinstance()
|
|
244
|
+
# checks to the update_types.StateUpdate mechanism.
|
|
245
|
+
|
|
244
246
|
if isinstance(command.result, LoadModuleResult):
|
|
245
247
|
slot_name = command.params.location.slotName
|
|
246
248
|
self._add_module_substate(
|
|
@@ -297,38 +299,40 @@ class ModuleStore(HasState[ModuleState], HandlesActions):
|
|
|
297
299
|
if isinstance(
|
|
298
300
|
command.result,
|
|
299
301
|
(
|
|
300
|
-
absorbance_reader.CloseLidResult,
|
|
301
|
-
absorbance_reader.OpenLidResult,
|
|
302
302
|
absorbance_reader.InitializeResult,
|
|
303
303
|
absorbance_reader.ReadAbsorbanceResult,
|
|
304
304
|
),
|
|
305
305
|
):
|
|
306
306
|
self._handle_absorbance_reader_commands(command)
|
|
307
307
|
|
|
308
|
-
def
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
308
|
+
def _handle_state_update(self, state_update: update_types.StateUpdate) -> None:
|
|
309
|
+
if state_update.absorbance_reader_lid != update_types.NO_CHANGE:
|
|
310
|
+
module_id = state_update.absorbance_reader_lid.module_id
|
|
311
|
+
is_lid_on = state_update.absorbance_reader_lid.is_lid_on
|
|
312
|
+
|
|
313
|
+
# Get current values:
|
|
314
|
+
absorbance_reader_substate = self._state.substate_by_module_id[module_id]
|
|
315
|
+
assert isinstance(
|
|
316
|
+
absorbance_reader_substate, AbsorbanceReaderSubState
|
|
317
|
+
), f"{module_id} is not an absorbance plate reader."
|
|
318
|
+
configured = absorbance_reader_substate.configured
|
|
319
|
+
measure_mode = absorbance_reader_substate.measure_mode
|
|
320
|
+
configured_wavelengths = absorbance_reader_substate.configured_wavelengths
|
|
321
|
+
reference_wavelength = absorbance_reader_substate.reference_wavelength
|
|
322
|
+
data = absorbance_reader_substate.data
|
|
317
323
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
lid_id=lid_id,
|
|
329
|
-
)
|
|
324
|
+
self._state.substate_by_module_id[module_id] = AbsorbanceReaderSubState(
|
|
325
|
+
module_id=AbsorbanceReaderId(module_id),
|
|
326
|
+
configured=configured,
|
|
327
|
+
measured=True,
|
|
328
|
+
is_lid_on=is_lid_on,
|
|
329
|
+
measure_mode=measure_mode,
|
|
330
|
+
configured_wavelengths=configured_wavelengths,
|
|
331
|
+
reference_wavelength=reference_wavelength,
|
|
332
|
+
data=data,
|
|
333
|
+
)
|
|
330
334
|
|
|
331
|
-
def _add_module_substate(
|
|
335
|
+
def _add_module_substate(
|
|
332
336
|
self,
|
|
333
337
|
module_id: str,
|
|
334
338
|
serial_number: Optional[str],
|
|
@@ -387,16 +391,6 @@ class ModuleStore(HasState[ModuleState], HandlesActions):
|
|
|
387
391
|
module_id=MagneticBlockId(module_id)
|
|
388
392
|
)
|
|
389
393
|
elif ModuleModel.is_absorbance_reader(actual_model):
|
|
390
|
-
lid_labware_id = None
|
|
391
|
-
slot = self._state.slot_by_module_id[module_id]
|
|
392
|
-
if slot is not None:
|
|
393
|
-
reader_addressable_area = f"absorbanceReaderV1{slot.value}"
|
|
394
|
-
for labware in self._state.deck_fixed_labware:
|
|
395
|
-
if labware.location == AddressableAreaLocation(
|
|
396
|
-
addressableAreaName=reader_addressable_area
|
|
397
|
-
):
|
|
398
|
-
lid_labware_id = labware.labware_id
|
|
399
|
-
break
|
|
400
394
|
self._state.substate_by_module_id[module_id] = AbsorbanceReaderSubState(
|
|
401
395
|
module_id=AbsorbanceReaderId(module_id),
|
|
402
396
|
configured=False,
|
|
@@ -406,7 +400,6 @@ class ModuleStore(HasState[ModuleState], HandlesActions):
|
|
|
406
400
|
measure_mode=None,
|
|
407
401
|
configured_wavelengths=None,
|
|
408
402
|
reference_wavelength=None,
|
|
409
|
-
lid_id=lid_labware_id,
|
|
410
403
|
)
|
|
411
404
|
|
|
412
405
|
def _update_additional_slots_occupied_by_thermocycler(
|
|
@@ -600,8 +593,6 @@ class ModuleStore(HasState[ModuleState], HandlesActions):
|
|
|
600
593
|
command: Union[
|
|
601
594
|
absorbance_reader.Initialize,
|
|
602
595
|
absorbance_reader.ReadAbsorbance,
|
|
603
|
-
absorbance_reader.CloseLid,
|
|
604
|
-
absorbance_reader.OpenLid,
|
|
605
596
|
],
|
|
606
597
|
) -> None:
|
|
607
598
|
module_id = command.params.moduleId
|
|
@@ -616,8 +607,6 @@ class ModuleStore(HasState[ModuleState], HandlesActions):
|
|
|
616
607
|
configured_wavelengths = absorbance_reader_substate.configured_wavelengths
|
|
617
608
|
reference_wavelength = absorbance_reader_substate.reference_wavelength
|
|
618
609
|
is_lid_on = absorbance_reader_substate.is_lid_on
|
|
619
|
-
lid_id = absorbance_reader_substate.lid_id
|
|
620
|
-
data = absorbance_reader_substate.data
|
|
621
610
|
|
|
622
611
|
if isinstance(command.result, absorbance_reader.InitializeResult):
|
|
623
612
|
self._state.substate_by_module_id[module_id] = AbsorbanceReaderSubState(
|
|
@@ -625,7 +614,6 @@ class ModuleStore(HasState[ModuleState], HandlesActions):
|
|
|
625
614
|
configured=True,
|
|
626
615
|
measured=False,
|
|
627
616
|
is_lid_on=is_lid_on,
|
|
628
|
-
lid_id=lid_id,
|
|
629
617
|
measure_mode=AbsorbanceReaderMeasureMode(command.params.measureMode),
|
|
630
618
|
configured_wavelengths=command.params.sampleWavelengths,
|
|
631
619
|
reference_wavelength=command.params.referenceWavelength,
|
|
@@ -637,39 +625,12 @@ class ModuleStore(HasState[ModuleState], HandlesActions):
|
|
|
637
625
|
configured=configured,
|
|
638
626
|
measured=True,
|
|
639
627
|
is_lid_on=is_lid_on,
|
|
640
|
-
lid_id=lid_id,
|
|
641
628
|
measure_mode=measure_mode,
|
|
642
629
|
configured_wavelengths=configured_wavelengths,
|
|
643
630
|
reference_wavelength=reference_wavelength,
|
|
644
631
|
data=command.result.data,
|
|
645
632
|
)
|
|
646
633
|
|
|
647
|
-
elif isinstance(command.result, absorbance_reader.OpenLidResult):
|
|
648
|
-
self._state.substate_by_module_id[module_id] = AbsorbanceReaderSubState(
|
|
649
|
-
module_id=AbsorbanceReaderId(module_id),
|
|
650
|
-
configured=configured,
|
|
651
|
-
measured=True,
|
|
652
|
-
is_lid_on=False,
|
|
653
|
-
lid_id=lid_id,
|
|
654
|
-
measure_mode=measure_mode,
|
|
655
|
-
configured_wavelengths=configured_wavelengths,
|
|
656
|
-
reference_wavelength=reference_wavelength,
|
|
657
|
-
data=data,
|
|
658
|
-
)
|
|
659
|
-
|
|
660
|
-
elif isinstance(command.result, absorbance_reader.CloseLidResult):
|
|
661
|
-
self._state.substate_by_module_id[module_id] = AbsorbanceReaderSubState(
|
|
662
|
-
module_id=AbsorbanceReaderId(module_id),
|
|
663
|
-
configured=configured,
|
|
664
|
-
measured=True,
|
|
665
|
-
is_lid_on=True,
|
|
666
|
-
lid_id=lid_id,
|
|
667
|
-
measure_mode=measure_mode,
|
|
668
|
-
configured_wavelengths=configured_wavelengths,
|
|
669
|
-
reference_wavelength=reference_wavelength,
|
|
670
|
-
data=data,
|
|
671
|
-
)
|
|
672
|
-
|
|
673
634
|
|
|
674
635
|
class ModuleView(HasState[ModuleState]):
|
|
675
636
|
"""Read-only view of computed module state."""
|
|
@@ -883,12 +844,21 @@ class ModuleView(HasState[ModuleState]):
|
|
|
883
844
|
"""Get the specified module's dimensions."""
|
|
884
845
|
return self.get_definition(module_id).dimensions
|
|
885
846
|
|
|
886
|
-
def
|
|
847
|
+
def get_nominal_offset_to_child(
|
|
887
848
|
self,
|
|
888
849
|
module_id: str,
|
|
850
|
+
# todo(mm, 2024-11-07): A method of one view taking a sibling view as an argument
|
|
851
|
+
# is unusual, and may be bug-prone if the order in which the views are updated
|
|
852
|
+
# matters. If we need to compute something that depends on module info and
|
|
853
|
+
# addressable area info, can we do that computation in GeometryView instead of
|
|
854
|
+
# here?
|
|
889
855
|
addressable_areas: AddressableAreaView,
|
|
890
856
|
) -> LabwareOffsetVector:
|
|
891
|
-
"""Get the module's
|
|
857
|
+
"""Get the nominal offset from a module's location to its child labware's location.
|
|
858
|
+
|
|
859
|
+
Includes the slot-specific transform. Does not include the child's
|
|
860
|
+
Labware Position Check offset.
|
|
861
|
+
"""
|
|
892
862
|
if (
|
|
893
863
|
self.state.deck_type == DeckType.OT2_STANDARD
|
|
894
864
|
or self.state.deck_type == DeckType.OT2_SHORT_TRASH
|
|
@@ -996,7 +966,7 @@ class ModuleView(HasState[ModuleState]):
|
|
|
996
966
|
default_lw_offset_point = self.get_definition(module_id).labwareOffset.z
|
|
997
967
|
z_difference = module_height - default_lw_offset_point
|
|
998
968
|
|
|
999
|
-
nominal_transformed_lw_offset_z = self.
|
|
969
|
+
nominal_transformed_lw_offset_z = self.get_nominal_offset_to_child(
|
|
1000
970
|
module_id=module_id, addressable_areas=addressable_areas
|
|
1001
971
|
).z
|
|
1002
972
|
calibration_offset = self.get_module_calibration_offset(module_id)
|
|
@@ -1124,8 +1094,8 @@ class ModuleView(HasState[ModuleState]):
|
|
|
1124
1094
|
|
|
1125
1095
|
def should_dodge_thermocycler(
|
|
1126
1096
|
self,
|
|
1127
|
-
from_slot: DeckSlotName,
|
|
1128
|
-
to_slot: DeckSlotName,
|
|
1097
|
+
from_slot: Union[DeckSlotName, StagingSlotName],
|
|
1098
|
+
to_slot: Union[DeckSlotName, StagingSlotName],
|
|
1129
1099
|
) -> bool:
|
|
1130
1100
|
"""Decide if the requested path would cross the thermocycler, if installed.
|
|
1131
1101
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
from dataclasses import dataclass
|
|
3
3
|
from typing import List, Optional, Union
|
|
4
4
|
|
|
5
|
-
from opentrons.types import MountType, Point
|
|
5
|
+
from opentrons.types import MountType, Point, StagingSlotName
|
|
6
6
|
from opentrons.hardware_control.types import CriticalPoint
|
|
7
7
|
from opentrons.motion_planning.adjacent_slots_getters import (
|
|
8
8
|
get_east_west_slots,
|
|
@@ -277,9 +277,13 @@ class MotionView:
|
|
|
277
277
|
current_location = self._pipettes.get_current_location()
|
|
278
278
|
if current_location is not None:
|
|
279
279
|
if isinstance(current_location, CurrentWell):
|
|
280
|
-
|
|
280
|
+
ancestor = self._geometry.get_ancestor_slot_name(
|
|
281
281
|
current_location.labware_id
|
|
282
|
-
)
|
|
282
|
+
)
|
|
283
|
+
if isinstance(ancestor, StagingSlotName):
|
|
284
|
+
# Staging Area Slots cannot intersect with the h/s
|
|
285
|
+
return False
|
|
286
|
+
pipette_deck_slot = ancestor.as_int()
|
|
283
287
|
else:
|
|
284
288
|
pipette_deck_slot = (
|
|
285
289
|
self._addressable_areas.get_addressable_area_base_slot(
|
|
@@ -299,9 +303,13 @@ class MotionView:
|
|
|
299
303
|
current_location = self._pipettes.get_current_location()
|
|
300
304
|
if current_location is not None:
|
|
301
305
|
if isinstance(current_location, CurrentWell):
|
|
302
|
-
|
|
306
|
+
ancestor = self._geometry.get_ancestor_slot_name(
|
|
303
307
|
current_location.labware_id
|
|
304
|
-
)
|
|
308
|
+
)
|
|
309
|
+
if isinstance(ancestor, StagingSlotName):
|
|
310
|
+
# Staging Area Slots cannot intersect with the h/s
|
|
311
|
+
return False
|
|
312
|
+
pipette_deck_slot = ancestor.as_int()
|
|
305
313
|
else:
|
|
306
314
|
pipette_deck_slot = (
|
|
307
315
|
self._addressable_areas.get_addressable_area_base_slot(
|
|
@@ -324,6 +332,10 @@ class MotionView:
|
|
|
324
332
|
"""Get a list of touch points for a touch tip operation."""
|
|
325
333
|
mount = self._pipettes.get_mount(pipette_id)
|
|
326
334
|
labware_slot = self._geometry.get_ancestor_slot_name(labware_id)
|
|
335
|
+
if isinstance(labware_slot, StagingSlotName):
|
|
336
|
+
raise errors.LocationIsStagingSlotError(
|
|
337
|
+
"Cannot perform Touch Tip on labware in Staging Area Slot."
|
|
338
|
+
)
|
|
327
339
|
next_to_module = self._modules.is_edge_move_unsafe(mount, labware_slot)
|
|
328
340
|
edge_path_type = self._labware.get_edge_path_type(
|
|
329
341
|
labware_id, well_name, mount, labware_slot, next_to_module
|
|
@@ -205,6 +205,14 @@ class LiquidOperatedUpdate:
|
|
|
205
205
|
volume_added: float | ClearType
|
|
206
206
|
|
|
207
207
|
|
|
208
|
+
@dataclasses.dataclass
|
|
209
|
+
class AbsorbanceReaderLidUpdate:
|
|
210
|
+
"""An update to an absorbance reader's lid location."""
|
|
211
|
+
|
|
212
|
+
module_id: str
|
|
213
|
+
is_lid_on: bool
|
|
214
|
+
|
|
215
|
+
|
|
208
216
|
@dataclasses.dataclass
|
|
209
217
|
class StateUpdate:
|
|
210
218
|
"""Represents an update to perform on engine state."""
|
|
@@ -231,6 +239,8 @@ class StateUpdate:
|
|
|
231
239
|
|
|
232
240
|
liquid_operated: LiquidOperatedUpdate | NoChangeType = NO_CHANGE
|
|
233
241
|
|
|
242
|
+
absorbance_reader_lid: AbsorbanceReaderLidUpdate | NoChangeType = NO_CHANGE
|
|
243
|
+
|
|
234
244
|
# These convenience functions let the caller avoid the boilerplate of constructing a
|
|
235
245
|
# complicated dataclass tree.
|
|
236
246
|
|
|
@@ -406,3 +416,9 @@ class StateUpdate:
|
|
|
406
416
|
well_name=well_name,
|
|
407
417
|
volume_added=volume_added,
|
|
408
418
|
)
|
|
419
|
+
|
|
420
|
+
def set_absorbance_reader_lid(self, module_id: str, is_lid_on: bool) -> None:
|
|
421
|
+
"""Update an absorbance reader's lid location. See `AbsorbanceReaderLidUpdate`."""
|
|
422
|
+
self.absorbance_reader_lid = AbsorbanceReaderLidUpdate(
|
|
423
|
+
module_id=module_id, is_lid_on=is_lid_on
|
|
424
|
+
)
|
opentrons/util/logging_config.py
CHANGED
|
@@ -5,7 +5,7 @@ from typing import Any, Dict
|
|
|
5
5
|
|
|
6
6
|
from opentrons.config import CONFIG, ARCHITECTURE, SystemArchitecture
|
|
7
7
|
|
|
8
|
-
if ARCHITECTURE is SystemArchitecture.
|
|
8
|
+
if ARCHITECTURE is SystemArchitecture.YOCTO:
|
|
9
9
|
from opentrons_hardware.sensors import SENSOR_LOG_NAME
|
|
10
10
|
else:
|
|
11
11
|
# we don't use the sensor log on ot2 or host
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: opentrons
|
|
3
|
-
Version: 8.2.
|
|
3
|
+
Version: 8.2.0a1
|
|
4
4
|
Summary: The Opentrons API is a simple framework designed to make writing automated biology lab protocols easy.
|
|
5
5
|
Author: Opentrons
|
|
6
6
|
Author-email: engineering@opentrons.com
|
|
@@ -21,7 +21,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
21
21
|
Classifier: Topic :: Scientific/Engineering
|
|
22
22
|
Requires-Python: >=3.10
|
|
23
23
|
License-File: ../LICENSE
|
|
24
|
-
Requires-Dist: opentrons-shared-data ==8.2.
|
|
24
|
+
Requires-Dist: opentrons-shared-data ==8.2.0a1
|
|
25
25
|
Requires-Dist: aionotify ==0.3.1
|
|
26
26
|
Requires-Dist: anyio <4.0.0,>=3.6.1
|
|
27
27
|
Requires-Dist: jsonschema <4.18.0,>=3.0.1
|
|
@@ -34,9 +34,9 @@ Requires-Dist: pyusb ==1.2.1
|
|
|
34
34
|
Requires-Dist: packaging >=21.0
|
|
35
35
|
Requires-Dist: importlib-metadata >=1.0 ; python_version < "3.8"
|
|
36
36
|
Provides-Extra: flex-hardware
|
|
37
|
-
Requires-Dist: opentrons-hardware[flex] ==8.2.
|
|
37
|
+
Requires-Dist: opentrons-hardware[flex] ==8.2.0a1 ; extra == 'flex-hardware'
|
|
38
38
|
Provides-Extra: ot2-hardware
|
|
39
|
-
Requires-Dist: opentrons-hardware ==8.2.
|
|
39
|
+
Requires-Dist: opentrons-hardware ==8.2.0a1 ; extra == 'ot2-hardware'
|
|
40
40
|
|
|
41
41
|
.. _Full API Documentation: http://docs.opentrons.com
|
|
42
42
|
|
|
@@ -47,7 +47,7 @@ opentrons/drivers/types.py,sha256=muQKlqOMYcL6iglT9a3iEJ5EnqcBDCkgHz2KyePsm6I,22
|
|
|
47
47
|
opentrons/drivers/utils.py,sha256=QmSTP07PPXq3_Qth1Idagn7lixWFjpkOzR8LFSpcw-g,7362
|
|
48
48
|
opentrons/drivers/absorbance_reader/__init__.py,sha256=d9_-VJ_MKOyRy9C5Ioeg4CWsC1WIVgQlxGqBvgpoBRc,322
|
|
49
49
|
opentrons/drivers/absorbance_reader/abstract.py,sha256=Egc7RKKXscEXFC0bPVx_r1vKe2-Df9PJyDpH0OFOIiw,2005
|
|
50
|
-
opentrons/drivers/absorbance_reader/async_byonoy.py,sha256=
|
|
50
|
+
opentrons/drivers/absorbance_reader/async_byonoy.py,sha256=pp4lvODBd3ydKwac28RANQgWs_X5Ml2NdFw0ZHgpXPA,13502
|
|
51
51
|
opentrons/drivers/absorbance_reader/driver.py,sha256=V8hLjNRVzlRPtVW04XEWrXytn06ZRBxG9LqL4ETj21g,2791
|
|
52
52
|
opentrons/drivers/absorbance_reader/hid_protocol.py,sha256=OM6Ogkl1Lw3d501rfHcRI3lPZITAVKdxCR6JkHdKMCQ,3836
|
|
53
53
|
opentrons/drivers/absorbance_reader/simulator.py,sha256=MiFQgnVNq2R35T3u59idcKlrj6SEFllt8tdupfH5jKQ,2419
|
|
@@ -199,7 +199,7 @@ opentrons/hardware_control/scripts/repl.py,sha256=RojtHjYV6sa6O4SeNEgs5SvnAK0imQ
|
|
|
199
199
|
opentrons/hardware_control/scripts/tc_control.py,sha256=V6hOzoRXL3xqIUEz8Raldd45aO2JgN5m5Hr08c1G8Ko,2741
|
|
200
200
|
opentrons/legacy_commands/__init__.py,sha256=erkaz7hc2iHsTtjpFDWrR1V5n47it3U1qxD2zL9CkuE,63
|
|
201
201
|
opentrons/legacy_commands/commands.py,sha256=evB4X1dx9jnPwY-QKeA0Z5aX0gV0EG8m-a6qTVxTErU,8966
|
|
202
|
-
opentrons/legacy_commands/helpers.py,sha256=
|
|
202
|
+
opentrons/legacy_commands/helpers.py,sha256=dRtOWQdeRnDn23yBHdPQfahug5OFwuUzdkT7qRj1gRM,2675
|
|
203
203
|
opentrons/legacy_commands/module_commands.py,sha256=EO2YtrfzCCaGPYjGXWfk6jjSHiEqk1E6D8Ef2qDi1qI,7769
|
|
204
204
|
opentrons/legacy_commands/protocol_commands.py,sha256=nPYBrm7j9co83IGWjzae2GOVkEZdu58pXQv3eOdpLzg,1383
|
|
205
205
|
opentrons/legacy_commands/publisher.py,sha256=n7hT9n4zahM3N2LNIAEs7hqs5RbHHie_tev2M8pke4Y,5441
|
|
@@ -222,40 +222,40 @@ opentrons/protocol_api/deck.py,sha256=94vFceg1SC1bAGd7TvC1ZpYwnJR-VlzurEZ6jkacYe
|
|
|
222
222
|
opentrons/protocol_api/disposal_locations.py,sha256=NRiSGmDR0LnbyEkWSOM-o64uR2fUoB1NWJG7Y7SsJSs,7920
|
|
223
223
|
opentrons/protocol_api/instrument_context.py,sha256=EnOs4BAmpIabaWMFKCqhwIJcrWpP-iEv32kmdV2t9Uo,97275
|
|
224
224
|
opentrons/protocol_api/labware.py,sha256=qwjAO1Au9Ujx5jyGNQ0-HLDBOXUygnXNSuv5696tGCw,48177
|
|
225
|
-
opentrons/protocol_api/module_contexts.py,sha256=
|
|
225
|
+
opentrons/protocol_api/module_contexts.py,sha256=TZiswcxFRSFP_t_OoE03BSnOkZo9XQjoayHiUlVeqwA,40455
|
|
226
226
|
opentrons/protocol_api/module_validation_and_errors.py,sha256=XL_m72P8rcvGO2fynY7UzXLcpGuI6X4s0V6Xf735Iyc,1464
|
|
227
|
-
opentrons/protocol_api/protocol_context.py,sha256=
|
|
227
|
+
opentrons/protocol_api/protocol_context.py,sha256=3nVIYxTpFp2Ho6kdW65hG8LhDaTRvlFuGbuy9LsQg5s,55459
|
|
228
228
|
opentrons/protocol_api/robot_context.py,sha256=vph_ZqfdmREOwLwpjSkXiSZSpI1HO0HuilhqjhgT7Rw,2660
|
|
229
229
|
opentrons/protocol_api/validation.py,sha256=bWRJOEw0cAqq9lRAXbhHHXGrl0hjjTiW3KW9SJa8f_A,18397
|
|
230
230
|
opentrons/protocol_api/core/__init__.py,sha256=-g74o8OtBB0LmmOvwkRvPgrHt7fF7T8FRHDj-x_-Onk,736
|
|
231
231
|
opentrons/protocol_api/core/common.py,sha256=sXWlP8F4ZAEGcDh1WuavrVxkoi-FultBbpY6JW0_9ZY,1029
|
|
232
232
|
opentrons/protocol_api/core/core_map.py,sha256=gq3CIYPxuPvozf8yj8FprqBfs3e4ZJGQ6s0ViPbwV08,1757
|
|
233
233
|
opentrons/protocol_api/core/instrument.py,sha256=C-noyr_D6164NwcHEU5RYLnwgAwj1u3ocF3gTGaeS0Q,9474
|
|
234
|
-
opentrons/protocol_api/core/labware.py,sha256=
|
|
234
|
+
opentrons/protocol_api/core/labware.py,sha256=SuHs0dP28F5pMWzeU1Ih0zzuD8h9Doyvmu2xIl14g7g,3946
|
|
235
235
|
opentrons/protocol_api/core/module.py,sha256=p02IstVzfSqTpwbfiCYkPv_xpeb78Hi__PQKJPePxNs,12548
|
|
236
|
-
opentrons/protocol_api/core/protocol.py,sha256=
|
|
236
|
+
opentrons/protocol_api/core/protocol.py,sha256=YUVZfbZvbRLOCLNZN5UKvmw8pwobiuL114GdMpmoLu4,7311
|
|
237
237
|
opentrons/protocol_api/core/well.py,sha256=quBAF0UjcsRcqZy_Cb13NIkfnx4y1VbEHZgGcDIl-wI,2393
|
|
238
238
|
opentrons/protocol_api/core/well_grid.py,sha256=BU28DKaBgEU_JdZ6pEzrwNxmuh6TkO4zlg7Pq1Rf5Xk,1516
|
|
239
239
|
opentrons/protocol_api/core/engine/__init__.py,sha256=B_5T7zgkWDb1mXPg4NbT-wBkQaK-WVokMMnJRNu7xiM,582
|
|
240
240
|
opentrons/protocol_api/core/engine/deck_conflict.py,sha256=0viwOidafVd0XhS8C7V72i68-ZYzHfDUNeqGozTA1G8,12012
|
|
241
241
|
opentrons/protocol_api/core/engine/exceptions.py,sha256=aZgNrmYEeuPZm21nX_KZYtvyjv5h_zPjxxgPkEV7_bw,725
|
|
242
242
|
opentrons/protocol_api/core/engine/instrument.py,sha256=BMqizINMrhZFjJmA0IXsD65xXvpA10V96y-S_JYb-NY,36075
|
|
243
|
-
opentrons/protocol_api/core/engine/labware.py,sha256=
|
|
243
|
+
opentrons/protocol_api/core/engine/labware.py,sha256=ra6leDHW9sEmvjPJIIx8iMVVIeFuAyJlLv3H92Ww7TM,7568
|
|
244
244
|
opentrons/protocol_api/core/engine/load_labware_params.py,sha256=cwbmGyYp5ZOyANtEm6KKwT_n8fnYc5RysBst9nRh7Ls,4607
|
|
245
|
-
opentrons/protocol_api/core/engine/module_core.py,sha256=
|
|
245
|
+
opentrons/protocol_api/core/engine/module_core.py,sha256=TWqMqRgekBISMOEtlveDByJQI6JfSu-rvYOnqQbTgGY,26923
|
|
246
246
|
opentrons/protocol_api/core/engine/overlap_versions.py,sha256=PyGvQtQUg1wzNtkuGZtxwXm019PoIjq7em2JiWaxbXc,675
|
|
247
|
-
opentrons/protocol_api/core/engine/pipette_movement_conflict.py,sha256=
|
|
247
|
+
opentrons/protocol_api/core/engine/pipette_movement_conflict.py,sha256=IxTcekperTA_Jv-fF6OonUif-jX5KESrdjf15oVD0GE,15360
|
|
248
248
|
opentrons/protocol_api/core/engine/point_calculations.py,sha256=C2eF0fvJQGMqQv3DzNhc1-m8HTAXTyTsHPJEPrEUEmo,2502
|
|
249
|
-
opentrons/protocol_api/core/engine/protocol.py,sha256=
|
|
249
|
+
opentrons/protocol_api/core/engine/protocol.py,sha256=gdt262cVHi8cwXl5H2WZBmayqzl0idbF4-OecSvKSYo,31914
|
|
250
250
|
opentrons/protocol_api/core/engine/stringify.py,sha256=Hu2nHILjQn_OSxqBOZgiah9jSsyznxhy-Md5EvWclUg,2421
|
|
251
251
|
opentrons/protocol_api/core/engine/well.py,sha256=9rbu0YbCnIz9j7OU1T2LEIWcdCclCIQsHMdHYLjy2F8,5381
|
|
252
252
|
opentrons/protocol_api/core/legacy/__init__.py,sha256=_9jCJNKG3SlS_vljVu8HHkZmtLf4F-f-JHALLF5d5go,401
|
|
253
253
|
opentrons/protocol_api/core/legacy/deck.py,sha256=qHqcGo-Kdkl9L1aOE0pwrm9tsAnwkXbt4rIOr_VEP-s,13955
|
|
254
254
|
opentrons/protocol_api/core/legacy/labware_offset_provider.py,sha256=uNNeHecIz_A9u19QalpVKF7pxloHqLg27EFcD9dbYtc,3735
|
|
255
255
|
opentrons/protocol_api/core/legacy/legacy_instrument_core.py,sha256=irXO6YbGgp7LWQwia6rLqlwRWIu1SmxCj1YS3gKEzWc,21993
|
|
256
|
-
opentrons/protocol_api/core/legacy/legacy_labware_core.py,sha256=
|
|
256
|
+
opentrons/protocol_api/core/legacy/legacy_labware_core.py,sha256=0LeoH2vIFTuPzXFdSSeddIWcnjdMRTPpOAEsuvLDtBU,7901
|
|
257
257
|
opentrons/protocol_api/core/legacy/legacy_module_core.py,sha256=tUhj88NKBMjCmCg6wjh1e2HX4d5hxjh8ZeJiYXaTaGY,23111
|
|
258
|
-
opentrons/protocol_api/core/legacy/legacy_protocol_core.py,sha256
|
|
258
|
+
opentrons/protocol_api/core/legacy/legacy_protocol_core.py,sha256=zoD5kqOZ4TUdZeFx2OdRLhMq9M9i7yATdqhynR6KNcM,21490
|
|
259
259
|
opentrons/protocol_api/core/legacy/legacy_well_core.py,sha256=E9RiflLhbBiakshjzDFQWSiH-WGiFaaHSMrU1Esk5ng,4377
|
|
260
260
|
opentrons/protocol_api/core/legacy/load_info.py,sha256=j-fzoUKwvXNS_5CQsE43XI5YOPfTu1WE6h1u9GzGCE4,1925
|
|
261
261
|
opentrons/protocol_api/core/legacy/module_geometry.py,sha256=wbWeHomppdCDmp_nKrnNWbnRAapOamkhFMnaoY7ShTw,20886
|
|
@@ -264,20 +264,20 @@ opentrons/protocol_api/core/legacy_simulator/__init__.py,sha256=m9bLHGDJ6LSYC2WP
|
|
|
264
264
|
opentrons/protocol_api/core/legacy_simulator/legacy_instrument_core.py,sha256=mcHgeVT1lXscc4wvCFAcOrfB7lq4JaAVOWo8aAc4_xQ,18655
|
|
265
265
|
opentrons/protocol_api/core/legacy_simulator/legacy_protocol_core.py,sha256=28HrrHzeUfnGKXpZqQ-VM8WbPiadqVhKj2S9y33q6Lo,2910
|
|
266
266
|
opentrons/protocol_engine/__init__.py,sha256=35cWIWtg_0OO-9v6sgWNuiJ5siDM9y77K3KsuCY69K4,3253
|
|
267
|
-
opentrons/protocol_engine/create_protocol_engine.py,sha256=
|
|
267
|
+
opentrons/protocol_engine/create_protocol_engine.py,sha256=tfDIsC7_JKlRiCXPB_8tuxRsssU6o0ViRmWbGPtX9QA,7582
|
|
268
268
|
opentrons/protocol_engine/engine_support.py,sha256=5wqk5CHudpOUCSNsalWRmBSeHaCT6bEmcYAn9P60L0w,923
|
|
269
269
|
opentrons/protocol_engine/error_recovery_policy.py,sha256=ejsIywnz9DMv_XK-mo58PynW34sSDgnziPAw2g5m9G8,2873
|
|
270
270
|
opentrons/protocol_engine/plugins.py,sha256=pSEzpItf4RVO2NwoGSbDpmNtO0B0-G2W0g2sIzdyjkI,3449
|
|
271
|
-
opentrons/protocol_engine/protocol_engine.py,sha256=
|
|
271
|
+
opentrons/protocol_engine/protocol_engine.py,sha256=zhWy2TBC1oDlg-blJF8QxXraLySZAO1WRj11E2QnAyQ,28063
|
|
272
272
|
opentrons/protocol_engine/slot_standardization.py,sha256=Nhw7UwC2-6p8g1v4cJsy2N390_3tnBMMjwlx7-E36gA,4353
|
|
273
273
|
opentrons/protocol_engine/types.py,sha256=F9CmNQXDI3KVCduK05HRQjNc-CPmIfkAAekjMSErXoc,36724
|
|
274
|
-
opentrons/protocol_engine/actions/__init__.py,sha256=
|
|
274
|
+
opentrons/protocol_engine/actions/__init__.py,sha256=Zm5AwWOkc9QZJo8WBww8P73KYIwRFjid0Vi1NLPXSik,1561
|
|
275
275
|
opentrons/protocol_engine/actions/action_dispatcher.py,sha256=CiJG8djKxyjZZX_T7lhPZnEuLXV1yE41ZnvzsmCHoLU,944
|
|
276
276
|
opentrons/protocol_engine/actions/action_handler.py,sha256=N907GFwLJc0OMiQFGa7Bz8RAgWtfeipN286QSwEZ1iA,341
|
|
277
|
-
opentrons/protocol_engine/actions/actions.py,sha256=
|
|
277
|
+
opentrons/protocol_engine/actions/actions.py,sha256=CEgvLYOxGkwvFGKAp25Pz4XwmP-L1XtydqxOwdTwcfg,8101
|
|
278
278
|
opentrons/protocol_engine/actions/get_state_update.py,sha256=tsnfhZDFHWER6y6UV57LlaYrnxYJnASBsfQ55fdGh5g,1128
|
|
279
279
|
opentrons/protocol_engine/clients/__init__.py,sha256=ILmfVL5SOkWzRpL2XXh0Q0MizOj7E2i-WObVuIsWAQE,161
|
|
280
|
-
opentrons/protocol_engine/clients/sync_client.py,sha256=
|
|
280
|
+
opentrons/protocol_engine/clients/sync_client.py,sha256=f65mhTO3zwTph1LtCl7Td6z3-chgtPwoeMdP6Lvo5Eg,5121
|
|
281
281
|
opentrons/protocol_engine/clients/transports.py,sha256=QejmtG5TjgOLUXpNhOzor_q-7MFI1qNfsguwkzY6Rxc,7177
|
|
282
282
|
opentrons/protocol_engine/commands/__init__.py,sha256=FKOX8Uq3g2_syxMQN0A70qEtpJrsJDlJfPhAxS4ZAII,14006
|
|
283
283
|
opentrons/protocol_engine/commands/aspirate.py,sha256=zOh7wqqFlAdkQCUC1-pp0-Zi-6QEpg3ntXDTpzlgc4Y,6137
|
|
@@ -299,11 +299,11 @@ opentrons/protocol_engine/commands/get_tip_presence.py,sha256=igvMiKJWzdetWBXlIa
|
|
|
299
299
|
opentrons/protocol_engine/commands/hash_command_params.py,sha256=obWy4TbVH97SyhNqrSD6iP1wgZ20JoaH1rilZCjXxIs,1530
|
|
300
300
|
opentrons/protocol_engine/commands/home.py,sha256=pmiul9vLcpVijHAOBwzkdHulW5tBCEiEcNey3bCXdAE,3075
|
|
301
301
|
opentrons/protocol_engine/commands/liquid_probe.py,sha256=nmrO2Mu65O1MwDnaeK-PcAMi1AKw4AtNFL6urydVN4o,12068
|
|
302
|
-
opentrons/protocol_engine/commands/load_labware.py,sha256=
|
|
302
|
+
opentrons/protocol_engine/commands/load_labware.py,sha256=UQSGj0dbfnkGjYxwPrQkVm2CNyrJYemu8L7g2xDhlt0,7584
|
|
303
303
|
opentrons/protocol_engine/commands/load_liquid.py,sha256=MIwzfqhzKR71DEALKvgcnykp1CbJ3kkssClLrT7jPrY,2781
|
|
304
|
-
opentrons/protocol_engine/commands/load_module.py,sha256=
|
|
304
|
+
opentrons/protocol_engine/commands/load_module.py,sha256=Vgu_O64tfDNgqAhVlVcjVrejt1TeKr_8ziar7L17-yw,7499
|
|
305
305
|
opentrons/protocol_engine/commands/load_pipette.py,sha256=bdPAzFI2zru-Rr5enKumVkd9MiJQkDcfqAWaSzIa_i0,5495
|
|
306
|
-
opentrons/protocol_engine/commands/move_labware.py,sha256=
|
|
306
|
+
opentrons/protocol_engine/commands/move_labware.py,sha256=jLdXc6PhHs1gxSoP1AlmnPZYPcNF9-nSJcKFGQMRszk,15521
|
|
307
307
|
opentrons/protocol_engine/commands/move_relative.py,sha256=S5740FZ953HtCjURqDuZRfYRYRN4cMeo0kwRv1OFPz4,3051
|
|
308
308
|
opentrons/protocol_engine/commands/move_to_addressable_area.py,sha256=cJRXXRLkawPx9H391yDpkC9DTCQk-IUsfRjGEMKftzg,6342
|
|
309
309
|
opentrons/protocol_engine/commands/move_to_addressable_area_for_drop_tip.py,sha256=5BAisk0npPcesI6bMQxKH2Xxz641uyR6RbtU9RiD5NM,7134
|
|
@@ -322,9 +322,9 @@ opentrons/protocol_engine/commands/verify_tip_presence.py,sha256=LyB6yvCi4IJIzQA
|
|
|
322
322
|
opentrons/protocol_engine/commands/wait_for_duration.py,sha256=DIATqpdBStGQWnLAbbqz6_e3WDc7lFo7U2ShKfMAuwo,2202
|
|
323
323
|
opentrons/protocol_engine/commands/wait_for_resume.py,sha256=yFNpYDJO5mgAhIpMb1i7Epo7ZhO15Ot9RsSUdW8AjUg,2178
|
|
324
324
|
opentrons/protocol_engine/commands/absorbance_reader/__init__.py,sha256=umS98LlkBEAToRCvxLpr4k43tRPPTfkYu-81-bLy5DU,1251
|
|
325
|
-
opentrons/protocol_engine/commands/absorbance_reader/close_lid.py,sha256=
|
|
325
|
+
opentrons/protocol_engine/commands/absorbance_reader/close_lid.py,sha256=i6kggql8hJgTxpUbc5dmdMdHDsYWiczfMvZNA72FmvI,5540
|
|
326
326
|
opentrons/protocol_engine/commands/absorbance_reader/initialize.py,sha256=HKsgwCfv6LR4SJ06721eq9_NhKcxtVR5lYIdaZPL-_4,4760
|
|
327
|
-
opentrons/protocol_engine/commands/absorbance_reader/open_lid.py,sha256=
|
|
327
|
+
opentrons/protocol_engine/commands/absorbance_reader/open_lid.py,sha256=Ef5coWs4GGOzmZbrAFZXTKq8hZCC7rJc2DVCOU2PFJg,5531
|
|
328
328
|
opentrons/protocol_engine/commands/absorbance_reader/read.py,sha256=xu5KijW_sSEtjdhNIEctYkQBZC8Baj650W6s8nXfTKw,8187
|
|
329
329
|
opentrons/protocol_engine/commands/calibration/__init__.py,sha256=JjNnULLBM3j8VtpfHOvH51em9jVLR_ezyrUJUWqxuYI,1611
|
|
330
330
|
opentrons/protocol_engine/commands/calibration/calibrate_gripper.py,sha256=1HgEsH-0ycGD-OlxdmCTIuBeSCzVTc1vepSjVirai-g,5570
|
|
@@ -362,7 +362,7 @@ opentrons/protocol_engine/commands/unsafe/__init__.py,sha256=lx3TFW_78XK0bdtLFuG
|
|
|
362
362
|
opentrons/protocol_engine/commands/unsafe/unsafe_blow_out_in_place.py,sha256=K1idiUT1RW_mWa_SIe3JOUaeuSsUbv12toWgAB1KSvM,3065
|
|
363
363
|
opentrons/protocol_engine/commands/unsafe/unsafe_drop_tip_in_place.py,sha256=v5h1sLxx_NMAhVCLbmECd7sD0PsecB4Dj-oaBEe0YBs,3635
|
|
364
364
|
opentrons/protocol_engine/commands/unsafe/unsafe_engage_axes.py,sha256=hCRqFeBInC9Mxz9LqUgIrjTTAjuMEq5MJxCqqXwi3N4,2552
|
|
365
|
-
opentrons/protocol_engine/commands/unsafe/unsafe_place_labware.py,sha256=
|
|
365
|
+
opentrons/protocol_engine/commands/unsafe/unsafe_place_labware.py,sha256=HnYnFViUtPx2p3UXntdMa5LyBLE2AYLjskvnIIWYZ24,7576
|
|
366
366
|
opentrons/protocol_engine/commands/unsafe/unsafe_ungrip_labware.py,sha256=MSYftVeLHqnIyX0n9IJLq6XOb7P835EQg7KR3n3PU6c,2397
|
|
367
367
|
opentrons/protocol_engine/commands/unsafe/update_position_estimators.py,sha256=pXew4UsDB4Kh7z9r2l7-S3D8bICNmdDr8lNkNEnByYE,2938
|
|
368
368
|
opentrons/protocol_engine/errors/__init__.py,sha256=rwpfKoEIZUN7c5kf0T9b0MHCJdDxZiUTCvQs64jPtVI,5174
|
|
@@ -377,8 +377,8 @@ opentrons/protocol_engine/execution/error_recovery_hardware_state_synchronizer.p
|
|
|
377
377
|
opentrons/protocol_engine/execution/gantry_mover.py,sha256=-Fd3I2onhkLkToA_Wdr_AOnVxr9k9bx8-RG9mjf2UY8,12234
|
|
378
378
|
opentrons/protocol_engine/execution/hardware_stopper.py,sha256=OXZK7AjkZSPu5A7TbqW-dscR4ErOOrr8ao3stcjsClM,5935
|
|
379
379
|
opentrons/protocol_engine/execution/heater_shaker_movement_flagger.py,sha256=BSFLzSSeELAYZCrCUfJZx5DdlrwU06Ur92TYd0T-hzM,9084
|
|
380
|
-
opentrons/protocol_engine/execution/labware_movement.py,sha256
|
|
381
|
-
opentrons/protocol_engine/execution/movement.py,sha256=
|
|
380
|
+
opentrons/protocol_engine/execution/labware_movement.py,sha256=-qnohEyIt9AxsFjhbg_IZiO_1ZwlDqmuWhWirkeo9wc,12269
|
|
381
|
+
opentrons/protocol_engine/execution/movement.py,sha256=jXGbJDj9P2JoagAZTF2-Cynm2s1RjViqTHrbs0_WjQ8,11492
|
|
382
382
|
opentrons/protocol_engine/execution/pipetting.py,sha256=dMBgc-fDH9kN2fm19InTxS5jlUICHpEpjWgmFBhYGWQ,14453
|
|
383
383
|
opentrons/protocol_engine/execution/queue_worker.py,sha256=riVVywKIOQ3Lx-woFuuSqqBtfeKFt23nCUnsk7gSVoI,2860
|
|
384
384
|
opentrons/protocol_engine/execution/rail_lights.py,sha256=eiJT6oI_kFk7rFuFkZzISZiLNnpf7Kkh86Kyk9wQ_Jo,590
|
|
@@ -391,9 +391,9 @@ opentrons/protocol_engine/notes/__init__.py,sha256=G0bIQswsov7MrJU0ArrOaWcOTxJU9
|
|
|
391
391
|
opentrons/protocol_engine/notes/notes.py,sha256=sVgFeFl_ljK7SbEozfLCi1sJtvU9XtZ8zuEMttG7WGc,1987
|
|
392
392
|
opentrons/protocol_engine/resources/__init__.py,sha256=yvGFYpmLoxHYQff_IwiaEH9viZUfal5D5K91UjYLwwY,805
|
|
393
393
|
opentrons/protocol_engine/resources/deck_configuration_provider.py,sha256=D5tPG9hVL4lJM1XBZL3SvSxNMgm7-6OFU15eXfo3vdo,5370
|
|
394
|
-
opentrons/protocol_engine/resources/deck_data_provider.py,sha256=
|
|
395
|
-
opentrons/protocol_engine/resources/file_provider.py,sha256=
|
|
396
|
-
opentrons/protocol_engine/resources/fixture_validation.py,sha256=
|
|
394
|
+
opentrons/protocol_engine/resources/deck_data_provider.py,sha256=iw4oKv6-dSxF4hZiqT9K0oNuFo0HjLwG847cWYbpkdY,2979
|
|
395
|
+
opentrons/protocol_engine/resources/file_provider.py,sha256=6btMCDN7NsyFlV7Icy5vDO7xsgbmtkeAM_KCuQ-GvRo,5903
|
|
396
|
+
opentrons/protocol_engine/resources/fixture_validation.py,sha256=WBGWFTmBwLPjOBFeqJYxnaSRHvo4pwxvdhT4XUW_FMY,1857
|
|
397
397
|
opentrons/protocol_engine/resources/labware_data_provider.py,sha256=QhEFpRfWgKFHzLwwKL1HDdq4SFsLX6U6ml9MxoDOjt8,2721
|
|
398
398
|
opentrons/protocol_engine/resources/labware_validation.py,sha256=3Rc--uqHJ6dSoT8hXY-LKHrgvGe3_rcbZQA7hITvgDg,1926
|
|
399
399
|
opentrons/protocol_engine/resources/model_utils.py,sha256=C3OHUi-OtuFUm3dS5rApSU3EJ0clnaCZEyBku5sTjzA,941
|
|
@@ -409,19 +409,19 @@ opentrons/protocol_engine/state/commands.py,sha256=RVjmeUZOnkAXxejNi-grilLY-tTRI
|
|
|
409
409
|
opentrons/protocol_engine/state/config.py,sha256=7jSGxC6Vqj1eA8fqZ2I3zjlxVXg8pxvcBYMztRIx9Mg,1515
|
|
410
410
|
opentrons/protocol_engine/state/files.py,sha256=czpKzSmtclHDGI8bEz1x-7tXEk_HSzvlAcBJSyCPFDc,1748
|
|
411
411
|
opentrons/protocol_engine/state/frustum_helpers.py,sha256=OMa7_3INieaNhkFb6wVC6lvq8NemepvWGCw0ai_Wbvg,16515
|
|
412
|
-
opentrons/protocol_engine/state/geometry.py,sha256
|
|
413
|
-
opentrons/protocol_engine/state/labware.py,sha256=
|
|
412
|
+
opentrons/protocol_engine/state/geometry.py,sha256=-yEsGHPfjUVNgVWJKeBiJyzl65wAzSvjS7W-kOxukCQ,67902
|
|
413
|
+
opentrons/protocol_engine/state/labware.py,sha256=Ns_GoUKxL55P6J2YEch5GZCVvTbQZS0h4CbZwCr7Frc,44758
|
|
414
414
|
opentrons/protocol_engine/state/liquids.py,sha256=TwchzB7xNt7CAd3wX3BA_5DXrQhGwj_uFQsv0FWOXXk,1886
|
|
415
|
-
opentrons/protocol_engine/state/modules.py,sha256=
|
|
416
|
-
opentrons/protocol_engine/state/motion.py,sha256=
|
|
415
|
+
opentrons/protocol_engine/state/modules.py,sha256=8d5YOPhGs8jnw5mDQiGSrhtvozZkCtcRQd49YesVmds,53936
|
|
416
|
+
opentrons/protocol_engine/state/motion.py,sha256=1KEm1HXdkuFKNe2lElZnNfJedml4afMFnmcDvG-3fLA,14937
|
|
417
417
|
opentrons/protocol_engine/state/pipettes.py,sha256=jXhPGLHT1Ypc_tt8UkWZz51sCZ9ld4umr7AyuhlvxoU,30861
|
|
418
418
|
opentrons/protocol_engine/state/state.py,sha256=HbkGfTLYNPlb9yu2sCi4UOJQrgXedi3w8xbYc0QCn-w,14550
|
|
419
419
|
opentrons/protocol_engine/state/state_summary.py,sha256=vTA4MLVtObroLSVEQFKspwE9hkKLfNHKacUA5QVIF5c,1058
|
|
420
420
|
opentrons/protocol_engine/state/tips.py,sha256=_1LZncAdhCavaKs2NBFKQAmTyExIorQw7vHOqomeb8g,20993
|
|
421
|
-
opentrons/protocol_engine/state/update_types.py,sha256=
|
|
421
|
+
opentrons/protocol_engine/state/update_types.py,sha256=w5H1BNM94CnJvX0ScIshvyE2uxUG82V12_37rv0XcQI,12298
|
|
422
422
|
opentrons/protocol_engine/state/wells.py,sha256=koKxb8KVR60Z3vBd5xtPnnR4QUI6A4be-cwCWYt_-hc,9049
|
|
423
423
|
opentrons/protocol_engine/state/module_substates/__init__.py,sha256=l4W-6uV3L8F3B1GsuSoDcmlq6XzsA18w7pKXbO2W3tg,1234
|
|
424
|
-
opentrons/protocol_engine/state/module_substates/absorbance_reader_substate.py,sha256=
|
|
424
|
+
opentrons/protocol_engine/state/module_substates/absorbance_reader_substate.py,sha256=jiD8WqFEafGnka5n46vJ_qhS8Ofh--hTxuBWXk8eefE,1431
|
|
425
425
|
opentrons/protocol_engine/state/module_substates/heater_shaker_module_substate.py,sha256=bfcG5sMWeiId-x6SFH2C8cVRmogsMYgdoFkdXjUCHuQ,3364
|
|
426
426
|
opentrons/protocol_engine/state/module_substates/magnetic_block_substate.py,sha256=kjzQK0wz4l1rt-OZ4c9J_rZejmEP4zwFX-QHEl_LNqE,362
|
|
427
427
|
opentrons/protocol_engine/state/module_substates/magnetic_module_substate.py,sha256=IJ5zpufz5WSRbJqHOAi-WroDxpsRZz-GvwznIL4v7VQ,2468
|
|
@@ -510,11 +510,11 @@ opentrons/util/entrypoint_util.py,sha256=5z9HjwvTfaWzvM4PcDVnvJfzB_UkNHfhQ0Ly3AQ
|
|
|
510
510
|
opentrons/util/get_union_elements.py,sha256=H1KqLnG1zYvI2kanhc3MXRZT-S07E5a2vF1jEkhXpCs,1073
|
|
511
511
|
opentrons/util/helpers.py,sha256=3hr801bWGbxEcOFAS7f-iOhmnUhoK5qahbB8SIvaCfY,165
|
|
512
512
|
opentrons/util/linal.py,sha256=IlKAP9HkNBBgULeSf4YVwSKHdx9jnCjSr7nvDvlRALg,5753
|
|
513
|
-
opentrons/util/logging_config.py,sha256=
|
|
513
|
+
opentrons/util/logging_config.py,sha256=t3xRxQ5zfXQsU8S4gl6yvrtqx6dxOGyBwIM43CGRyjE,6887
|
|
514
514
|
opentrons/util/performance_helpers.py,sha256=ew7H8XD20iS6-2TJAzbQeyzStZkkE6PzHt_Adx3wbZQ,5172
|
|
515
|
-
opentrons-8.2.
|
|
516
|
-
opentrons-8.2.
|
|
517
|
-
opentrons-8.2.
|
|
518
|
-
opentrons-8.2.
|
|
519
|
-
opentrons-8.2.
|
|
520
|
-
opentrons-8.2.
|
|
515
|
+
opentrons-8.2.0a1.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
516
|
+
opentrons-8.2.0a1.dist-info/METADATA,sha256=1X3bpJiJdC2f93wQJUlj-jC0LTujfDRA2Rdrk4895lw,5019
|
|
517
|
+
opentrons-8.2.0a1.dist-info/WHEEL,sha256=_4XEmVmaBFWtekSGrbfOGNjC2I5lUr0lZSRblBllIFA,109
|
|
518
|
+
opentrons-8.2.0a1.dist-info/entry_points.txt,sha256=fTa6eGCYkvOtv0ov-KVE8LLGetgb35LQLF9x85OWPVw,106
|
|
519
|
+
opentrons-8.2.0a1.dist-info/top_level.txt,sha256=wk6whpbMZdBQpcK0Fg0YVfUGrAgVOFON7oQAhOMGMW8,10
|
|
520
|
+
opentrons-8.2.0a1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|