opentrons 8.6.0a2__py3-none-any.whl → 8.6.0a3__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 +7 -2
- opentrons/protocol_api/core/engine/module_core.py +2 -0
- opentrons/protocol_engine/commands/flex_stacker/store.py +46 -33
- opentrons/protocol_engine/state/geometry.py +3 -1
- opentrons/protocol_engine/types/__init__.py +2 -0
- opentrons/protocol_engine/types/module.py +7 -0
- {opentrons-8.6.0a2.dist-info → opentrons-8.6.0a3.dist-info}/METADATA +4 -4
- {opentrons-8.6.0a2.dist-info → opentrons-8.6.0a3.dist-info}/RECORD +12 -12
- {opentrons-8.6.0a2.dist-info → opentrons-8.6.0a3.dist-info}/WHEEL +0 -0
- {opentrons-8.6.0a2.dist-info → opentrons-8.6.0a3.dist-info}/entry_points.txt +0 -0
- {opentrons-8.6.0a2.dist-info → opentrons-8.6.0a3.dist-info}/licenses/LICENSE +0 -0
opentrons/_version.py
CHANGED
|
@@ -17,5 +17,5 @@ __version__: str
|
|
|
17
17
|
__version_tuple__: VERSION_TUPLE
|
|
18
18
|
version_tuple: VERSION_TUPLE
|
|
19
19
|
|
|
20
|
-
__version__ = version = '8.6.
|
|
21
|
-
__version_tuple__ = version_tuple = (8, 6, 0, '
|
|
20
|
+
__version__ = version = '8.6.0a3'
|
|
21
|
+
__version_tuple__ = version_tuple = (8, 6, 0, 'a3')
|
|
@@ -263,8 +263,13 @@ class SerialConnection:
|
|
|
263
263
|
return
|
|
264
264
|
|
|
265
265
|
lower = response.lower()
|
|
266
|
-
|
|
267
|
-
|
|
266
|
+
try:
|
|
267
|
+
res_gcode = response.split()[0]
|
|
268
|
+
req_gcode = request.split()[0]
|
|
269
|
+
except IndexError:
|
|
270
|
+
# this means the response is an empty string or something, which is weird
|
|
271
|
+
# but not a canonical error
|
|
272
|
+
return
|
|
268
273
|
|
|
269
274
|
# Make sure this is not just a normal response that happens to contain the
|
|
270
275
|
# `err` or `alarm` keyword in the message body by checking the gcode values
|
|
@@ -24,6 +24,7 @@ from opentrons.protocol_engine.types import (
|
|
|
24
24
|
ABSMeasureMode,
|
|
25
25
|
StackerFillEmptyStrategy,
|
|
26
26
|
StackerStoredLabwareGroup,
|
|
27
|
+
StackerLabwareMovementStrategy,
|
|
27
28
|
)
|
|
28
29
|
from opentrons.types import DeckSlotName
|
|
29
30
|
from opentrons.protocol_engine.clients import SyncClient as ProtocolEngineClient
|
|
@@ -747,6 +748,7 @@ class FlexStackerCore(ModuleCore, AbstractFlexStackerCore[LabwareCore]):
|
|
|
747
748
|
self._engine_client.execute_command(
|
|
748
749
|
cmd.flex_stacker.StoreParams(
|
|
749
750
|
moduleId=self.module_id,
|
|
751
|
+
strategy=StackerLabwareMovementStrategy.AUTOMATIC,
|
|
750
752
|
)
|
|
751
753
|
)
|
|
752
754
|
|
|
@@ -41,6 +41,7 @@ from ...types import (
|
|
|
41
41
|
InStackerHopperLocation,
|
|
42
42
|
StackerStoredLabwareGroup,
|
|
43
43
|
ModuleLocation,
|
|
44
|
+
StackerLabwareMovementStrategy,
|
|
44
45
|
)
|
|
45
46
|
|
|
46
47
|
if TYPE_CHECKING:
|
|
@@ -59,6 +60,13 @@ class StoreParams(BaseModel):
|
|
|
59
60
|
...,
|
|
60
61
|
description="Unique ID of the flex stacker.",
|
|
61
62
|
)
|
|
63
|
+
strategy: StackerLabwareMovementStrategy = Field(
|
|
64
|
+
...,
|
|
65
|
+
description=(
|
|
66
|
+
"If manual, indicates that labware has been moved to the hopper "
|
|
67
|
+
"manually by the user, as required in error recovery."
|
|
68
|
+
),
|
|
69
|
+
)
|
|
62
70
|
|
|
63
71
|
|
|
64
72
|
class StoreResult(BaseModel):
|
|
@@ -201,42 +209,47 @@ class StoreImpl(AbstractCommandImpl[StoreParams, _ExecuteReturn]):
|
|
|
201
209
|
stacker_hw = self._equipment.get_module_hardware_api(stacker_state.module_id)
|
|
202
210
|
|
|
203
211
|
state_update = update_types.StateUpdate()
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
212
|
+
if stacker_hw is not None:
|
|
213
|
+
stacker_hw.set_stacker_identify(True)
|
|
214
|
+
|
|
215
|
+
if (
|
|
216
|
+
params.strategy is StackerLabwareMovementStrategy.AUTOMATIC
|
|
217
|
+
and stacker_hw is not None
|
|
218
|
+
):
|
|
219
|
+
try:
|
|
207
220
|
await stacker_hw.store_labware(
|
|
208
221
|
labware_height=stacker_state.get_pool_height_minus_overlap()
|
|
209
222
|
)
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
223
|
+
except FlexStackerStallError as e:
|
|
224
|
+
return DefinedErrorData(
|
|
225
|
+
public=FlexStackerStallOrCollisionError(
|
|
226
|
+
id=self._model_utils.generate_id(),
|
|
227
|
+
createdAt=self._model_utils.get_timestamp(),
|
|
228
|
+
wrappedErrors=[
|
|
229
|
+
ErrorOccurrence.from_failed(
|
|
230
|
+
id=self._model_utils.generate_id(),
|
|
231
|
+
createdAt=self._model_utils.get_timestamp(),
|
|
232
|
+
error=e,
|
|
233
|
+
)
|
|
234
|
+
],
|
|
235
|
+
errorInfo={"labwareId": primary_id},
|
|
236
|
+
),
|
|
237
|
+
)
|
|
238
|
+
except FlexStackerShuttleMissingError as e:
|
|
239
|
+
return DefinedErrorData(
|
|
240
|
+
public=FlexStackerShuttleError(
|
|
241
|
+
id=self._model_utils.generate_id(),
|
|
242
|
+
createdAt=self._model_utils.get_timestamp(),
|
|
243
|
+
wrappedErrors=[
|
|
244
|
+
ErrorOccurrence.from_failed(
|
|
245
|
+
id=self._model_utils.generate_id(),
|
|
246
|
+
createdAt=self._model_utils.get_timestamp(),
|
|
247
|
+
error=e,
|
|
248
|
+
)
|
|
249
|
+
],
|
|
250
|
+
errorInfo={"labwareId": primary_id},
|
|
251
|
+
),
|
|
252
|
+
)
|
|
240
253
|
|
|
241
254
|
id_list = [
|
|
242
255
|
id for id in (primary_id, maybe_adapter_id, maybe_lid_id) if id is not None
|
|
@@ -1099,7 +1099,9 @@ class GeometryView:
|
|
|
1099
1099
|
|
|
1100
1100
|
middle_slot_fixture = (
|
|
1101
1101
|
self._addressable_areas.get_fixture_by_deck_slot_name(
|
|
1102
|
-
DeckSlotName.SLOT_C2
|
|
1102
|
+
DeckSlotName.SLOT_C2.to_equivalent_for_robot_type(
|
|
1103
|
+
self._config.robot_type
|
|
1104
|
+
)
|
|
1103
1105
|
)
|
|
1104
1106
|
)
|
|
1105
1107
|
if middle_slot_fixture is None:
|
|
@@ -68,6 +68,7 @@ from .module import (
|
|
|
68
68
|
ModuleOffsetData,
|
|
69
69
|
StackerFillEmptyStrategy,
|
|
70
70
|
StackerStoredLabwareGroup,
|
|
71
|
+
StackerLabwareMovementStrategy,
|
|
71
72
|
)
|
|
72
73
|
from .location import (
|
|
73
74
|
DeckSlotLocation,
|
|
@@ -212,6 +213,7 @@ __all__ = [
|
|
|
212
213
|
"ModuleOffsetData",
|
|
213
214
|
"StackerFillEmptyStrategy",
|
|
214
215
|
"StackerStoredLabwareGroup",
|
|
216
|
+
"StackerLabwareMovementStrategy",
|
|
215
217
|
# Locations of things on deck
|
|
216
218
|
"DeckSlotLocation",
|
|
217
219
|
"StagingSlotLocation",
|
|
@@ -276,6 +276,13 @@ class StackerFillEmptyStrategy(str, Enum):
|
|
|
276
276
|
LOGICAL = "logical"
|
|
277
277
|
|
|
278
278
|
|
|
279
|
+
class StackerLabwareMovementStrategy(str, Enum):
|
|
280
|
+
"""Strategy to retrieve or store labware."""
|
|
281
|
+
|
|
282
|
+
AUTOMATIC = "automatic"
|
|
283
|
+
MANUAL = "manual"
|
|
284
|
+
|
|
285
|
+
|
|
279
286
|
class StackerStoredLabwareGroup(BaseModel):
|
|
280
287
|
"""Represents one group of labware stored in a stacker hopper."""
|
|
281
288
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: opentrons
|
|
3
|
-
Version: 8.6.
|
|
3
|
+
Version: 8.6.0a3
|
|
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.6.
|
|
27
|
+
Requires-Dist: opentrons-shared-data==8.6.0a3
|
|
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.6.
|
|
35
|
+
Requires-Dist: opentrons-hardware[flex]==8.6.0a3; extra == 'flex-hardware'
|
|
36
36
|
Provides-Extra: ot2-hardware
|
|
37
|
-
Requires-Dist: opentrons-hardware==8.6.
|
|
37
|
+
Requires-Dist: opentrons-hardware==8.6.0a3; 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=xD_T0KGoygCgIVCg4T4APgS97uLDmrAh1HwkwJPEeNk,519
|
|
3
3
|
opentrons/execute.py,sha256=Y88qICDiHWQjU0L4Ou7DI5OXXu7zZcdkUvNUYmZqIfc,29282
|
|
4
4
|
opentrons/legacy_broker.py,sha256=XnuEBBlrHCThc31RFW2UR0tGqctqWZ-CZ9vSC4L9whU,1553
|
|
5
5
|
opentrons/ordered_set.py,sha256=g-SB3qA14yxHu9zjGyc2wC7d2TUCBE6fKZlHAtbPzI8,4082
|
|
@@ -53,7 +53,7 @@ opentrons/drivers/asyncio/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
|
|
|
53
53
|
opentrons/drivers/asyncio/communication/__init__.py,sha256=b-rd_I0ecbexGm6b9T91JLfFUrCyui9V1N1j-fzy0SQ,523
|
|
54
54
|
opentrons/drivers/asyncio/communication/async_serial.py,sha256=oL92Uh3IGP3IEcP2814YaT4_uHbwjLPRVZtkoID0LmQ,5311
|
|
55
55
|
opentrons/drivers/asyncio/communication/errors.py,sha256=-4pNGVKE83VUPNt1UTBLDzKtty3LxAhUNp-9yLENqyw,2678
|
|
56
|
-
opentrons/drivers/asyncio/communication/serial_connection.py,sha256=
|
|
56
|
+
opentrons/drivers/asyncio/communication/serial_connection.py,sha256=cWcISWe0FfoZj63oYVQD-KkwBojzMTVrzJ64-Gd1u90,18876
|
|
57
57
|
opentrons/drivers/flex_stacker/__init__.py,sha256=LiM0onRlgC-JfFBd0QseQU0-3WuuIxa7GNFj7Douiq8,351
|
|
58
58
|
opentrons/drivers/flex_stacker/abstract.py,sha256=50xrkTC5qI_BsvlBGpdBLwF3GVi7HhKVSgloKwcrzNA,6744
|
|
59
59
|
opentrons/drivers/flex_stacker/driver.py,sha256=TEy2yz5fU-vSmuLjHoZqi8fYmvdrmhoWYCMhx7ldZsg,31342
|
|
@@ -257,7 +257,7 @@ opentrons/protocol_api/core/engine/exceptions.py,sha256=aZgNrmYEeuPZm21nX_KZYtvy
|
|
|
257
257
|
opentrons/protocol_api/core/engine/instrument.py,sha256=lDrCqOZm7ceu1E50EYiSh7qTDMci5cgw4bM-AvLyMjE,98890
|
|
258
258
|
opentrons/protocol_api/core/engine/labware.py,sha256=-2oygShyRZo1-R0UOoBtXniFOXfc3cSdGM-qa_l9wh8,8610
|
|
259
259
|
opentrons/protocol_api/core/engine/load_labware_params.py,sha256=CxSbCBXVXHtBszP-3Ko8hsQTjvvogKRo0CCzCmMfIic,3003
|
|
260
|
-
opentrons/protocol_api/core/engine/module_core.py,sha256=
|
|
260
|
+
opentrons/protocol_api/core/engine/module_core.py,sha256=qxxcqpH-A4Zil9hHDxnvh4H8JuPvK6-sgkODU5YdjZQ,39537
|
|
261
261
|
opentrons/protocol_api/core/engine/overlap_versions.py,sha256=PyGvQtQUg1wzNtkuGZtxwXm019PoIjq7em2JiWaxbXc,675
|
|
262
262
|
opentrons/protocol_api/core/engine/pipette_movement_conflict.py,sha256=x54RIYtkL1rdzvkSp2JgusLY3EEvY8bX3OwipeVKdsE,15511
|
|
263
263
|
opentrons/protocol_api/core/engine/point_calculations.py,sha256=C2eF0fvJQGMqQv3DzNhc1-m8HTAXTyTsHPJEPrEUEmo,2502
|
|
@@ -369,7 +369,7 @@ opentrons/protocol_engine/commands/flex_stacker/empty.py,sha256=1R0AwQtLn_wfuFH0
|
|
|
369
369
|
opentrons/protocol_engine/commands/flex_stacker/fill.py,sha256=3qhAQxJfaSp4EAFGIUotkrJVuOvdFrwzmkMCa2v6khA,10866
|
|
370
370
|
opentrons/protocol_engine/commands/flex_stacker/retrieve.py,sha256=kh9Lh-FW-RrXmV4RS8txmTYPfPDKhQhjW0UXr8k0vhc,12763
|
|
371
371
|
opentrons/protocol_engine/commands/flex_stacker/set_stored_labware.py,sha256=5VdqCcBdIHmpWqIJN3rCKeZ6IKwfxAdQTXMTD-KL-5w,12484
|
|
372
|
-
opentrons/protocol_engine/commands/flex_stacker/store.py,sha256=
|
|
372
|
+
opentrons/protocol_engine/commands/flex_stacker/store.py,sha256=8iS77NRj9CVp12S9uVfCJTl-Q0iaJkCQDcOJWZnSeI0,12770
|
|
373
373
|
opentrons/protocol_engine/commands/heater_shaker/__init__.py,sha256=ImAPrYSUvP8tI7obvoHmrJbjwLldgGNTnFYRgfXj8hI,2757
|
|
374
374
|
opentrons/protocol_engine/commands/heater_shaker/close_labware_latch.py,sha256=Q7sqFtzUD8wclRLL2PLWjnClIeLtJsiMCobStvzoJKc,2847
|
|
375
375
|
opentrons/protocol_engine/commands/heater_shaker/deactivate_heater.py,sha256=UYeGrTmnGtfw22p0agefI2ZnpukKlIgFcmJv9v58Xnc,2755
|
|
@@ -461,7 +461,7 @@ opentrons/protocol_engine/state/commands.py,sha256=y5WE2pKmnMalgHFHEiBnBurO2TZ9w
|
|
|
461
461
|
opentrons/protocol_engine/state/config.py,sha256=7jSGxC6Vqj1eA8fqZ2I3zjlxVXg8pxvcBYMztRIx9Mg,1515
|
|
462
462
|
opentrons/protocol_engine/state/files.py,sha256=w8xxxg8HY0RqKKEGSfHWfrjV54Gb02O3dwtisJ-9j8E,1753
|
|
463
463
|
opentrons/protocol_engine/state/fluid_stack.py,sha256=uwkf0qYk1UX5iU52xmk-e3yLPK8OG-TtMCcBqrkVFpM,5932
|
|
464
|
-
opentrons/protocol_engine/state/geometry.py,sha256=
|
|
464
|
+
opentrons/protocol_engine/state/geometry.py,sha256=WmS1hg7F4Ng3vn7HQS91DIWPvuT3nKgBE69E-0IGha4,101642
|
|
465
465
|
opentrons/protocol_engine/state/inner_well_math_utils.py,sha256=UhemsPpcuKwVc-iGXI2-v--miOGNunAnAVznJTVADlQ,20598
|
|
466
466
|
opentrons/protocol_engine/state/labware.py,sha256=CRY84JCj9Y31aA-QWgqboql_PRD7QFZh1ja6Iboo0Wg,61308
|
|
467
467
|
opentrons/protocol_engine/state/liquid_classes.py,sha256=u_z75UYdiFAKG0yB3mr1il4T3qaS0Sotq8sL7KLODP8,2990
|
|
@@ -482,7 +482,7 @@ opentrons/protocol_engine/state/module_substates/magnetic_block_substate.py,sha2
|
|
|
482
482
|
opentrons/protocol_engine/state/module_substates/magnetic_module_substate.py,sha256=IJ5zpufz5WSRbJqHOAi-WroDxpsRZz-GvwznIL4v7VQ,2468
|
|
483
483
|
opentrons/protocol_engine/state/module_substates/temperature_module_substate.py,sha256=w9h6EBM1YY8SeUOlUz5-nW1Zoyce8-zua8Z6mX4sDNg,2310
|
|
484
484
|
opentrons/protocol_engine/state/module_substates/thermocycler_module_substate.py,sha256=fLt2jMsbnfe8Q25vAjloxLBGdx8sotqM34VxbwfegpE,5167
|
|
485
|
-
opentrons/protocol_engine/types/__init__.py,sha256=
|
|
485
|
+
opentrons/protocol_engine/types/__init__.py,sha256=8nOYquZPSvQAqkCz9Jfev86SmQ1Tou-AL5RMMvSz07o,8344
|
|
486
486
|
opentrons/protocol_engine/types/automatic_tip_selection.py,sha256=I_B3iWei1Sl7F7IrMKqOn4S12heZXRnfKvtCTUXIMyM,1118
|
|
487
487
|
opentrons/protocol_engine/types/command_annotations.py,sha256=5A4k_R_4A2_nGl0K85SKwNlnKA09fUhEIe_mdU55yro,1843
|
|
488
488
|
opentrons/protocol_engine/types/deck_configuration.py,sha256=3dhkk3Z_PrJvqb26brkEdlyzMAGih_UopoEzu9k6SRk,2422
|
|
@@ -499,7 +499,7 @@ opentrons/protocol_engine/types/liquid_class.py,sha256=SF5WS3s38S87efUqawRGSIYqj
|
|
|
499
499
|
opentrons/protocol_engine/types/liquid_handling.py,sha256=Xx1GihrNRJJdJJA5zIwWvIYNydbSXAHjSUAliF18Iu0,319
|
|
500
500
|
opentrons/protocol_engine/types/liquid_level_detection.py,sha256=hdSztrZcexko7p4lEkC8YuKlepv3j6ovKhMeQZuUHcg,6348
|
|
501
501
|
opentrons/protocol_engine/types/location.py,sha256=qIYBs86RO1ws2aXStmdx0CqEVNF9enlj-ACknf75nSs,5707
|
|
502
|
-
opentrons/protocol_engine/types/module.py,sha256=
|
|
502
|
+
opentrons/protocol_engine/types/module.py,sha256=EDfRqa1Wb1siZ8vt7zQVCjCRcTiGoOjqzrgySdxm-zw,9729
|
|
503
503
|
opentrons/protocol_engine/types/partial_tip_configuration.py,sha256=4RMtHOAX-dgpXWA737tthj_izTBnhKphBcA24LAKmhI,2760
|
|
504
504
|
opentrons/protocol_engine/types/run_time_parameters.py,sha256=5gH4GmGK7e3OkSClftZT6VA4wXELIvEMgpmQ__waceU,4468
|
|
505
505
|
opentrons/protocol_engine/types/tip.py,sha256=qfjnCPG7RAlTGS80SAQB8rGwtFW3yRWYj7DpYy0oDow,389
|
|
@@ -594,8 +594,8 @@ opentrons/util/linal.py,sha256=IlKAP9HkNBBgULeSf4YVwSKHdx9jnCjSr7nvDvlRALg,5753
|
|
|
594
594
|
opentrons/util/logging_config.py,sha256=7et4YYuQdWdq_e50U-8vFS_QyNBRgdnqPGAQJm8qrIo,9954
|
|
595
595
|
opentrons/util/logging_queue_handler.py,sha256=ZsSJwy-oV8DXwpYiZisQ1PbYwmK2cOslD46AcyJ1E4I,2484
|
|
596
596
|
opentrons/util/performance_helpers.py,sha256=ew7H8XD20iS6-2TJAzbQeyzStZkkE6PzHt_Adx3wbZQ,5172
|
|
597
|
-
opentrons-8.6.
|
|
598
|
-
opentrons-8.6.
|
|
599
|
-
opentrons-8.6.
|
|
600
|
-
opentrons-8.6.
|
|
601
|
-
opentrons-8.6.
|
|
597
|
+
opentrons-8.6.0a3.dist-info/METADATA,sha256=2OzHrnc75fEw1gcKzSg87PJzcTgAY75e8BhN5PijOwI,1607
|
|
598
|
+
opentrons-8.6.0a3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
599
|
+
opentrons-8.6.0a3.dist-info/entry_points.txt,sha256=fTa6eGCYkvOtv0ov-KVE8LLGetgb35LQLF9x85OWPVw,106
|
|
600
|
+
opentrons-8.6.0a3.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
601
|
+
opentrons-8.6.0a3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|