opentrons 8.4.0a0__py2.py3-none-any.whl → 8.4.0a2__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.
Potentially problematic release.
This version of opentrons might be problematic. Click here for more details.
- opentrons/hardware_control/backends/subsystem_manager.py +4 -5
- opentrons/protocol_api/instrument_context.py +1 -0
- opentrons/protocol_engine/commands/evotip_seal_pipette.py +22 -20
- opentrons/protocol_engine/commands/prepare_to_aspirate.py +14 -1
- opentrons/protocol_engine/commands/unsafe/unsafe_drop_tip_in_place.py +6 -1
- opentrons/protocol_engine/labware_offset_standardization.py +1 -1
- opentrons/protocol_engine/state/frustum_helpers.py +1 -1
- opentrons/protocol_engine/types/labware.py +1 -0
- opentrons/protocol_engine/types/labware_offset_location.py +6 -3
- {opentrons-8.4.0a0.dist-info → opentrons-8.4.0a2.dist-info}/METADATA +4 -4
- {opentrons-8.4.0a0.dist-info → opentrons-8.4.0a2.dist-info}/RECORD +15 -15
- {opentrons-8.4.0a0.dist-info → opentrons-8.4.0a2.dist-info}/LICENSE +0 -0
- {opentrons-8.4.0a0.dist-info → opentrons-8.4.0a2.dist-info}/WHEEL +0 -0
- {opentrons-8.4.0a0.dist-info → opentrons-8.4.0a2.dist-info}/entry_points.txt +0 -0
- {opentrons-8.4.0a0.dist-info → opentrons-8.4.0a2.dist-info}/top_level.txt +0 -0
|
@@ -58,7 +58,7 @@ class SubsystemManager:
|
|
|
58
58
|
_expected_core_targets: Set[FirmwareTarget]
|
|
59
59
|
_present_tools: tools.types.ToolSummary
|
|
60
60
|
_tool_task_condition: asyncio.Condition
|
|
61
|
-
_tool_task_state: Union[bool,
|
|
61
|
+
_tool_task_state: Union[bool, BaseException]
|
|
62
62
|
_updates_required: Dict[FirmwareTarget, FirmwareUpdateRequirements]
|
|
63
63
|
_updates_ongoing: Dict[SubSystem, UpdateStatus]
|
|
64
64
|
_update_bag: FirmwareUpdate
|
|
@@ -370,7 +370,8 @@ class SubsystemManager:
|
|
|
370
370
|
async def _tool_detection_task_main(self) -> None:
|
|
371
371
|
try:
|
|
372
372
|
await self._tool_detection_task_protected()
|
|
373
|
-
except
|
|
373
|
+
except BaseException as e:
|
|
374
|
+
log.exception("Tool reader task failed")
|
|
374
375
|
async with self._tool_task_condition:
|
|
375
376
|
self._tool_task_state = e
|
|
376
377
|
self._tool_task_condition.notify_all()
|
|
@@ -414,9 +415,7 @@ class SubsystemManager:
|
|
|
414
415
|
)
|
|
415
416
|
self._present_tools = await self._tool_detector.resolve(to_resolve, 10.0)
|
|
416
417
|
log.info(f"Present tools are now {self._present_tools}")
|
|
417
|
-
await network.log_motor_usage_data(
|
|
418
|
-
self._can_messenger, list(set(base_can_nodes + [t for t in tool_nodes]))
|
|
419
|
-
)
|
|
418
|
+
await network.log_motor_usage_data(self._can_messenger)
|
|
420
419
|
async with self._tool_task_condition:
|
|
421
420
|
self._tool_task_state = True
|
|
422
421
|
self._tool_task_condition.notify_all()
|
|
@@ -778,6 +778,7 @@ class InstrumentContext(publisher.CommandPublisher):
|
|
|
778
778
|
target = loc.labware.as_well().top(height)
|
|
779
779
|
self.move_to(target, publish=False)
|
|
780
780
|
if self.api_version >= _AIR_GAP_TRACKING_ADDED_IN:
|
|
781
|
+
self._core.prepare_to_aspirate()
|
|
781
782
|
c_vol = self._core.get_available_volume() if volume is None else volume
|
|
782
783
|
flow_rate = self._core.get_aspirate_flow_rate()
|
|
783
784
|
self._core.air_gap_in_place(c_vol, flow_rate)
|
|
@@ -40,9 +40,12 @@ if TYPE_CHECKING:
|
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
EvotipSealPipetteCommandType = Literal["evotipSealPipette"]
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
_CAM_PREP_DISTANCE_DEFAULT = 8.25
|
|
44
|
+
_CAM_PRESS_DISTANCE_DEFAULT = 3.5
|
|
45
|
+
_CAM_EJECTOR_PUSH_MM_DEFAULT = 7.0
|
|
46
|
+
_PRESS_FIT_PREP_DISTANCE_DEFAULT = 0
|
|
47
|
+
_PRESS_FIT_PRESS_DISTANCE_DEFAULT = -11.0
|
|
48
|
+
_PRESS_FIT_EJECTOR_PUSH_MM_DEFAULT = 0
|
|
46
49
|
_SAFE_TOP_VOLUME = 1000
|
|
47
50
|
|
|
48
51
|
|
|
@@ -244,29 +247,28 @@ class EvotipSealPipetteImplementation(
|
|
|
244
247
|
channels = self._state_view.tips.get_pipette_active_channels(pipette_id)
|
|
245
248
|
mount = self._state_view.pipettes.get_mount(pipette_id)
|
|
246
249
|
tip_pick_up_params = params.tipPickUpParams
|
|
247
|
-
if tip_pick_up_params is None:
|
|
248
|
-
tip_pick_up_params = TipPickUpParams(
|
|
249
|
-
prepDistance=_PREP_DISTANCE_DEFAULT,
|
|
250
|
-
pressDistance=_PRESS_DISTANCE_DEFAULT,
|
|
251
|
-
ejectorPushMm=_EJECTOR_PUSH_MM_DEFAULT,
|
|
252
|
-
)
|
|
253
250
|
|
|
254
|
-
if channels
|
|
255
|
-
|
|
256
|
-
tip_pick_up_params=
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
251
|
+
if channels == 96:
|
|
252
|
+
if tip_pick_up_params is None:
|
|
253
|
+
tip_pick_up_params = TipPickUpParams(
|
|
254
|
+
prepDistance=_CAM_PREP_DISTANCE_DEFAULT,
|
|
255
|
+
pressDistance=_CAM_PRESS_DISTANCE_DEFAULT,
|
|
256
|
+
ejectorPushMm=_CAM_EJECTOR_PUSH_MM_DEFAULT,
|
|
257
|
+
)
|
|
260
258
|
await self.cam_action_relative_pickup_tip(
|
|
261
259
|
tip_pick_up_params=tip_pick_up_params,
|
|
262
260
|
mount=mount,
|
|
263
261
|
)
|
|
264
262
|
else:
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
263
|
+
if tip_pick_up_params is None:
|
|
264
|
+
tip_pick_up_params = TipPickUpParams(
|
|
265
|
+
prepDistance=_PRESS_FIT_PREP_DISTANCE_DEFAULT,
|
|
266
|
+
pressDistance=_PRESS_FIT_PRESS_DISTANCE_DEFAULT,
|
|
267
|
+
ejectorPushMm=_PRESS_FIT_EJECTOR_PUSH_MM_DEFAULT,
|
|
268
|
+
)
|
|
269
|
+
await self.relative_pickup_tip(
|
|
270
|
+
tip_pick_up_params=tip_pick_up_params,
|
|
271
|
+
mount=mount,
|
|
270
272
|
)
|
|
271
273
|
|
|
272
274
|
# cache_tip
|
|
@@ -5,7 +5,11 @@ from pydantic import BaseModel
|
|
|
5
5
|
from typing import TYPE_CHECKING, Optional, Type, Union
|
|
6
6
|
from typing_extensions import Literal
|
|
7
7
|
|
|
8
|
-
from .pipetting_common import
|
|
8
|
+
from .pipetting_common import (
|
|
9
|
+
OverpressureError,
|
|
10
|
+
PipetteIdMixin,
|
|
11
|
+
prepare_for_aspirate,
|
|
12
|
+
)
|
|
9
13
|
from .command import (
|
|
10
14
|
AbstractCommandImpl,
|
|
11
15
|
BaseCommand,
|
|
@@ -66,6 +70,14 @@ class PrepareToAspirateImplementation(
|
|
|
66
70
|
|
|
67
71
|
async def execute(self, params: PrepareToAspirateParams) -> _ExecuteReturn:
|
|
68
72
|
"""Prepare the pipette to aspirate."""
|
|
73
|
+
ready_to_aspirate = self._pipetting_handler.get_is_ready_to_aspirate(
|
|
74
|
+
pipette_id=params.pipetteId
|
|
75
|
+
)
|
|
76
|
+
if ready_to_aspirate:
|
|
77
|
+
return SuccessData(
|
|
78
|
+
public=PrepareToAspirateResult(),
|
|
79
|
+
)
|
|
80
|
+
|
|
69
81
|
current_position = await self._gantry_mover.get_position(params.pipetteId)
|
|
70
82
|
prepare_result = await prepare_for_aspirate(
|
|
71
83
|
pipette_id=params.pipetteId,
|
|
@@ -79,6 +91,7 @@ class PrepareToAspirateImplementation(
|
|
|
79
91
|
)
|
|
80
92
|
},
|
|
81
93
|
)
|
|
94
|
+
|
|
82
95
|
if isinstance(prepare_result, DefinedErrorData):
|
|
83
96
|
return prepare_result
|
|
84
97
|
else:
|
|
@@ -78,7 +78,12 @@ class UnsafeDropTipInPlaceImplementation(
|
|
|
78
78
|
[Axis.of_main_tool_actuator(pipette_location.mount.to_hw_mount())]
|
|
79
79
|
)
|
|
80
80
|
await self._tip_handler.drop_tip(
|
|
81
|
-
pipette_id=params.pipetteId,
|
|
81
|
+
pipette_id=params.pipetteId,
|
|
82
|
+
home_after=params.homeAfter,
|
|
83
|
+
ignore_plunger=(
|
|
84
|
+
self._state_view.tips.get_pipette_active_channels(params.pipetteId)
|
|
85
|
+
== 96
|
|
86
|
+
),
|
|
82
87
|
)
|
|
83
88
|
|
|
84
89
|
state_update = StateUpdate()
|
|
@@ -135,7 +135,7 @@ def _offset_location_sequence_to_legacy_offset_location(
|
|
|
135
135
|
)
|
|
136
136
|
(
|
|
137
137
|
cutout_id,
|
|
138
|
-
|
|
138
|
+
_cutout_fixtures,
|
|
139
139
|
) = deck_configuration_provider.get_potential_cutout_fixtures(
|
|
140
140
|
last_element.addressableAreaName, deck_definition
|
|
141
141
|
)
|
|
@@ -402,7 +402,7 @@ def _find_height_in_partial_frustum(
|
|
|
402
402
|
section_top_height, section_volume = capacity
|
|
403
403
|
if (
|
|
404
404
|
bottom_section_volume
|
|
405
|
-
|
|
405
|
+
<= target_volume
|
|
406
406
|
<= (bottom_section_volume + section_volume)
|
|
407
407
|
):
|
|
408
408
|
relative_target_volume = target_volume - bottom_section_volume
|
|
@@ -34,6 +34,7 @@ class LabwareOffset(BaseModel):
|
|
|
34
34
|
definitionUri: str = Field(..., description="The URI for the labware's definition.")
|
|
35
35
|
location: LegacyLabwareOffsetLocation = Field(
|
|
36
36
|
...,
|
|
37
|
+
deprecated=True,
|
|
37
38
|
description="Where the labware is located on the robot. Deprecated and present only for backwards compatibility; cannot represent certain locations. Use locationSequence instead.",
|
|
38
39
|
)
|
|
39
40
|
locationSequence: Optional[LabwareOffsetLocationSequence] = Field(
|
|
@@ -18,7 +18,10 @@ class OnLabwareOffsetLocationSequenceComponent(BaseModel):
|
|
|
18
18
|
kind: Literal["onLabware"] = "onLabware"
|
|
19
19
|
labwareUri: str = Field(
|
|
20
20
|
...,
|
|
21
|
-
description=
|
|
21
|
+
description=(
|
|
22
|
+
"The definition URI of another labware, probably an adapter,"
|
|
23
|
+
" that the labware will be loaded onto."
|
|
24
|
+
),
|
|
22
25
|
)
|
|
23
26
|
|
|
24
27
|
|
|
@@ -99,8 +102,8 @@ class LegacyLabwareOffsetLocation(BaseModel):
|
|
|
99
102
|
definitionUri: Optional[str] = Field(
|
|
100
103
|
None,
|
|
101
104
|
description=(
|
|
102
|
-
"The definition URI of
|
|
103
|
-
" if applicable."
|
|
105
|
+
"The definition URI of another labware, probably an adapter, that the"
|
|
106
|
+
" labware will be loaded onto, if applicable."
|
|
104
107
|
"\n\n"
|
|
105
108
|
"This can be combined with moduleModel if the labware is loaded on top of"
|
|
106
109
|
" an adapter that is loaded on a module."
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: opentrons
|
|
3
|
-
Version: 8.4.
|
|
3
|
+
Version: 8.4.0a2
|
|
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.4.
|
|
24
|
+
Requires-Dist: opentrons-shared-data (==8.4.0a2)
|
|
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)
|
|
@@ -35,9 +35,9 @@ Requires-Dist: pyusb (==1.2.1)
|
|
|
35
35
|
Requires-Dist: packaging (>=21.0)
|
|
36
36
|
Requires-Dist: importlib-metadata (>=1.0) ; python_version < "3.8"
|
|
37
37
|
Provides-Extra: flex-hardware
|
|
38
|
-
Requires-Dist: opentrons-hardware[flex] (==8.4.
|
|
38
|
+
Requires-Dist: opentrons-hardware[flex] (==8.4.0a2) ; extra == 'flex-hardware'
|
|
39
39
|
Provides-Extra: ot2-hardware
|
|
40
|
-
Requires-Dist: opentrons-hardware (==8.4.
|
|
40
|
+
Requires-Dist: opentrons-hardware (==8.4.0a2) ; extra == 'ot2-hardware'
|
|
41
41
|
|
|
42
42
|
.. _Full API Documentation: http://docs.opentrons.com
|
|
43
43
|
|
|
@@ -124,7 +124,7 @@ opentrons/hardware_control/backends/ot3simulator.py,sha256=rmEKUtwwQV6Der-gqOWcf
|
|
|
124
124
|
opentrons/hardware_control/backends/ot3utils.py,sha256=VYpyvaE3M9CzhgLL4ObgcXP3gmSGyaOyiRVqcbudCn0,23087
|
|
125
125
|
opentrons/hardware_control/backends/simulator.py,sha256=q_9PQlBdOyCa9sj2gLqYWZ-fG9v4mddDAiScL-yHCXY,17549
|
|
126
126
|
opentrons/hardware_control/backends/status_bar_state.py,sha256=ftNn2ouBhPZiFbUm79I4z6ndup7XDmcNowhb-KREspE,8529
|
|
127
|
-
opentrons/hardware_control/backends/subsystem_manager.py,sha256=
|
|
127
|
+
opentrons/hardware_control/backends/subsystem_manager.py,sha256=_bcVUdb5R8UB_x_n1BPyz5OsfkyyaMLYxotvo3fIoh0,16685
|
|
128
128
|
opentrons/hardware_control/backends/tip_presence_manager.py,sha256=wzK8bvcr4lcCOwIwAz8ParXtXfrbt5hod7-stTP0ts0,5973
|
|
129
129
|
opentrons/hardware_control/backends/types.py,sha256=Fo7qTDyYfKW-NhcymqLQfkPBWOm6GO89q3JUqNnLIUo,329
|
|
130
130
|
opentrons/hardware_control/emulation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -228,7 +228,7 @@ opentrons/protocol_api/config.py,sha256=r9lyvXjagTX_g3q5FGURPpcz2IA9sSF7Oa_1mKx-
|
|
|
228
228
|
opentrons/protocol_api/create_protocol_context.py,sha256=wwsZje0L__oDnu1Yrihau320_f-ASloR9eL1QCtkOh8,7612
|
|
229
229
|
opentrons/protocol_api/deck.py,sha256=94vFceg1SC1bAGd7TvC1ZpYwnJR-VlzurEZ6jkacYeg,8910
|
|
230
230
|
opentrons/protocol_api/disposal_locations.py,sha256=NRiSGmDR0LnbyEkWSOM-o64uR2fUoB1NWJG7Y7SsJSs,7920
|
|
231
|
-
opentrons/protocol_api/instrument_context.py,sha256=
|
|
231
|
+
opentrons/protocol_api/instrument_context.py,sha256=ZR8GZF35-hUEGYTUkWm55v4KvI775t1Nfrl1g4pgu00,111773
|
|
232
232
|
opentrons/protocol_api/labware.py,sha256=q980jPZuBwvgwzIdBRyGn7bsJKiEPoAxO7y3iGPoczk,61406
|
|
233
233
|
opentrons/protocol_api/module_contexts.py,sha256=3tVXj6Q7n-WuTJPU_dvIQLzzGv1P-jsMuDtMVpuhAf8,48291
|
|
234
234
|
opentrons/protocol_api/module_validation_and_errors.py,sha256=XL_m72P8rcvGO2fynY7UzXLcpGuI6X4s0V6Xf735Iyc,1464
|
|
@@ -278,7 +278,7 @@ opentrons/protocol_engine/__init__.py,sha256=UPSk7MbidkiSH_h4V3yxMvyTePKpRr5DM9-
|
|
|
278
278
|
opentrons/protocol_engine/create_protocol_engine.py,sha256=tfDIsC7_JKlRiCXPB_8tuxRsssU6o0ViRmWbGPtX9QA,7582
|
|
279
279
|
opentrons/protocol_engine/engine_support.py,sha256=5wqk5CHudpOUCSNsalWRmBSeHaCT6bEmcYAn9P60L0w,923
|
|
280
280
|
opentrons/protocol_engine/error_recovery_policy.py,sha256=ejsIywnz9DMv_XK-mo58PynW34sSDgnziPAw2g5m9G8,2873
|
|
281
|
-
opentrons/protocol_engine/labware_offset_standardization.py,sha256=
|
|
281
|
+
opentrons/protocol_engine/labware_offset_standardization.py,sha256=nXkqW6lVhWIc0CvA10SZVQNVRF6qPh1qpp1F_KbwMXo,6836
|
|
282
282
|
opentrons/protocol_engine/plugins.py,sha256=pSEzpItf4RVO2NwoGSbDpmNtO0B0-G2W0g2sIzdyjkI,3449
|
|
283
283
|
opentrons/protocol_engine/protocol_engine.py,sha256=lM7yfRuigE6Je4NwhR9-oKS4jzXPw8NSDXNugtKEdbk,28343
|
|
284
284
|
opentrons/protocol_engine/slot_standardization.py,sha256=1YjzQSLHrVPeoTDDN9evu9kbJKCpQzLHT2-C3uINwoU,4004
|
|
@@ -309,7 +309,7 @@ opentrons/protocol_engine/commands/dispense_while_tracking.py,sha256=VCLWwlAbaTr
|
|
|
309
309
|
opentrons/protocol_engine/commands/drop_tip.py,sha256=ZZ63IoiT4dgWcemAHhNQfV4DUhkl-ToJyTRTxIiyAkc,7895
|
|
310
310
|
opentrons/protocol_engine/commands/drop_tip_in_place.py,sha256=gwSNEKBwds7kOTucXKSK74ozrDe7Cqhta7NR6IqKV3g,7062
|
|
311
311
|
opentrons/protocol_engine/commands/evotip_dispense.py,sha256=5OPrBmLMne1HiUzfkHJN5joZxiJAbkeZxbEsGPTtfVI,4636
|
|
312
|
-
opentrons/protocol_engine/commands/evotip_seal_pipette.py,sha256=
|
|
312
|
+
opentrons/protocol_engine/commands/evotip_seal_pipette.py,sha256=Xo5sYVd1zuvrKLyGbmZuhQNvpNBSDNlUNgjYCxs9R_8,11239
|
|
313
313
|
opentrons/protocol_engine/commands/evotip_unseal_pipette.py,sha256=RXCo2opcKrFiR97hISNXfPGrHGj0eiPHwAZJMi0jY9w,4888
|
|
314
314
|
opentrons/protocol_engine/commands/generate_command_schema.py,sha256=21Al_XQyRMNTb2ssVaxcNSPlgreOsCtKVXf8kZgpvR4,2296
|
|
315
315
|
opentrons/protocol_engine/commands/get_next_tip.py,sha256=JS5hN_UScAiUIo_j7KT2cR1GDj3hDvaNPTSovWbgTHo,4828
|
|
@@ -334,7 +334,7 @@ opentrons/protocol_engine/commands/move_to_well.py,sha256=fM8m5IcLjYZXy5fNjH_As4
|
|
|
334
334
|
opentrons/protocol_engine/commands/movement_common.py,sha256=bnJuwcp6nkyoxkTXqfSXnnKgZ7TKflkMGZSHXuPWsRk,11950
|
|
335
335
|
opentrons/protocol_engine/commands/pick_up_tip.py,sha256=pa2PXDvPyh5ZIYQeu_9XUnybE9CQ6VXooDO07gXCS5U,7726
|
|
336
336
|
opentrons/protocol_engine/commands/pipetting_common.py,sha256=Rok3Fy3jwJj_irXVRnUSjzpRpKVzVbYCv7odRQAYWEY,15222
|
|
337
|
-
opentrons/protocol_engine/commands/prepare_to_aspirate.py,sha256=
|
|
337
|
+
opentrons/protocol_engine/commands/prepare_to_aspirate.py,sha256=0Xh0E0OEE2730zR-hhmp4y__MMKyJLZ0S8I68BTH83g,3776
|
|
338
338
|
opentrons/protocol_engine/commands/reload_labware.py,sha256=eB1X7M9rHso1qc0beBTVHm5SHbjS6IODsIDj9RhR3mI,2910
|
|
339
339
|
opentrons/protocol_engine/commands/retract_axis.py,sha256=3h0eb6O3fjrCBY89q9tnjDFUGQXN9qafURxvXGcmCm4,2889
|
|
340
340
|
opentrons/protocol_engine/commands/save_position.py,sha256=koxPh6t8s7Cl1vjPt9e6raZz5_rQtXsg_IGdWqAPzPI,3395
|
|
@@ -399,7 +399,7 @@ opentrons/protocol_engine/commands/thermocycler/wait_for_block_temperature.py,sh
|
|
|
399
399
|
opentrons/protocol_engine/commands/thermocycler/wait_for_lid_temperature.py,sha256=KZHt1dUWPrWUk_d0hl0TiAQhfaVdc_YZcxyMcZ0FLq8,2971
|
|
400
400
|
opentrons/protocol_engine/commands/unsafe/__init__.py,sha256=lx3TFW_78XK0bdtLFuGXrvUGaeYrSFj5pHucEL-IYHI,2499
|
|
401
401
|
opentrons/protocol_engine/commands/unsafe/unsafe_blow_out_in_place.py,sha256=uK9240g-lx0JE1N1f6Nfj_crhf9olHmzcxbUk6sMZoU,3374
|
|
402
|
-
opentrons/protocol_engine/commands/unsafe/unsafe_drop_tip_in_place.py,sha256=
|
|
402
|
+
opentrons/protocol_engine/commands/unsafe/unsafe_drop_tip_in_place.py,sha256=BHBK14fC4P9B3IWILj-qWfK8QFdfntnJAwP1eRkThnM,4061
|
|
403
403
|
opentrons/protocol_engine/commands/unsafe/unsafe_engage_axes.py,sha256=Ze5hLslsXdd7l3lF0GKOPoWCdTmqTTGIjiTQyNhL-W4,2502
|
|
404
404
|
opentrons/protocol_engine/commands/unsafe/unsafe_place_labware.py,sha256=mcIPhcQvVCUL_wfb2-JPrCvIFTXMVD93VeJb4H1LmhM,7873
|
|
405
405
|
opentrons/protocol_engine/commands/unsafe/unsafe_ungrip_labware.py,sha256=9Sjx92JZhi-tRY1P77M--jJp4JzIGESXUakIpstESwQ,2461
|
|
@@ -449,7 +449,7 @@ opentrons/protocol_engine/state/commands.py,sha256=aoON_C5DbiIEPxOGATvwCsSG9eHsF
|
|
|
449
449
|
opentrons/protocol_engine/state/config.py,sha256=7jSGxC6Vqj1eA8fqZ2I3zjlxVXg8pxvcBYMztRIx9Mg,1515
|
|
450
450
|
opentrons/protocol_engine/state/files.py,sha256=w8xxxg8HY0RqKKEGSfHWfrjV54Gb02O3dwtisJ-9j8E,1753
|
|
451
451
|
opentrons/protocol_engine/state/fluid_stack.py,sha256=uwkf0qYk1UX5iU52xmk-e3yLPK8OG-TtMCcBqrkVFpM,5932
|
|
452
|
-
opentrons/protocol_engine/state/frustum_helpers.py,sha256=
|
|
452
|
+
opentrons/protocol_engine/state/frustum_helpers.py,sha256=ux9wCwQQXrZ9nr-KldtGTilpyW6zXdG5RfHUIUcqlTw,16822
|
|
453
453
|
opentrons/protocol_engine/state/geometry.py,sha256=EQI9dBCqjuR0Pbfp3aoi10UIO_iNoRYg6FZ0G1e4dfo,94790
|
|
454
454
|
opentrons/protocol_engine/state/labware.py,sha256=rehy7R1HIhxx3DTtTHIKxqHoBQJ_1tDhhiculMJeIy8,57556
|
|
455
455
|
opentrons/protocol_engine/state/liquid_classes.py,sha256=u_z75UYdiFAKG0yB3mr1il4T3qaS0Sotq8sL7KLODP8,2990
|
|
@@ -478,9 +478,9 @@ opentrons/protocol_engine/types/execution.py,sha256=6g_NvlF4niXjFQwDjkmTgKx-N6I8
|
|
|
478
478
|
opentrons/protocol_engine/types/hardware_passthrough.py,sha256=tpTE3XHbRjXWQqY0rgosIfcOAGHqMkOpIU3IpIXgdAA,534
|
|
479
479
|
opentrons/protocol_engine/types/instrument.py,sha256=sqiY6OKYgI0ViQ2UsuYMkL9MI6OpvdgLzC1mvclrp2M,984
|
|
480
480
|
opentrons/protocol_engine/types/instrument_sensors.py,sha256=CGcChvuxpRXVJHLZP_wd1ej3XDD9x1S9biugMAnk0tM,1449
|
|
481
|
-
opentrons/protocol_engine/types/labware.py,sha256=
|
|
481
|
+
opentrons/protocol_engine/types/labware.py,sha256=_M1-UlCLGlDDEFuXD5zKH2brnEm6lvvi9hv5sP81HOY,3922
|
|
482
482
|
opentrons/protocol_engine/types/labware_movement.py,sha256=BEZIDc-6YhU9LRACi0ozroIxuOIq-tngvrFE22uufjs,577
|
|
483
|
-
opentrons/protocol_engine/types/labware_offset_location.py,sha256=
|
|
483
|
+
opentrons/protocol_engine/types/labware_offset_location.py,sha256=gXOmIHLD1Hk6OhfhmV9Uf2HN0rIKD6syWSPfYehB9QQ,4237
|
|
484
484
|
opentrons/protocol_engine/types/labware_offset_vector.py,sha256=5Hhyv60I8KpZdUDnN--3ULURcLtJhTrVVLqiIOPtRps,1008
|
|
485
485
|
opentrons/protocol_engine/types/liquid.py,sha256=6Ec0fC0SEN3jKHYeFSwbQxdEAj5hxDPHlDcL1wXlx6k,810
|
|
486
486
|
opentrons/protocol_engine/types/liquid_class.py,sha256=SF5WS3s38S87efUqawRGSIYqjhwa4pNx7fB1xdiGHl0,2384
|
|
@@ -582,9 +582,9 @@ opentrons/util/helpers.py,sha256=3hr801bWGbxEcOFAS7f-iOhmnUhoK5qahbB8SIvaCfY,165
|
|
|
582
582
|
opentrons/util/linal.py,sha256=IlKAP9HkNBBgULeSf4YVwSKHdx9jnCjSr7nvDvlRALg,5753
|
|
583
583
|
opentrons/util/logging_config.py,sha256=UHoY7dyD6WMYNP5GKowbMxUSG_hlXeI5TaIwksR5u-U,6887
|
|
584
584
|
opentrons/util/performance_helpers.py,sha256=ew7H8XD20iS6-2TJAzbQeyzStZkkE6PzHt_Adx3wbZQ,5172
|
|
585
|
-
opentrons-8.4.
|
|
586
|
-
opentrons-8.4.
|
|
587
|
-
opentrons-8.4.
|
|
588
|
-
opentrons-8.4.
|
|
589
|
-
opentrons-8.4.
|
|
590
|
-
opentrons-8.4.
|
|
585
|
+
opentrons-8.4.0a2.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
586
|
+
opentrons-8.4.0a2.dist-info/METADATA,sha256=TuBx_GurDW920K5Rdm5rU-KrVQQYvp28TlwZIOkTEH4,5084
|
|
587
|
+
opentrons-8.4.0a2.dist-info/WHEEL,sha256=qUzzGenXXuJTzyjFah76kDVqDvnk-YDzY00svnrl84w,109
|
|
588
|
+
opentrons-8.4.0a2.dist-info/entry_points.txt,sha256=fTa6eGCYkvOtv0ov-KVE8LLGetgb35LQLF9x85OWPVw,106
|
|
589
|
+
opentrons-8.4.0a2.dist-info/top_level.txt,sha256=wk6whpbMZdBQpcK0Fg0YVfUGrAgVOFON7oQAhOMGMW8,10
|
|
590
|
+
opentrons-8.4.0a2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|