opentrons 8.3.0a9__py2.py3-none-any.whl → 8.3.0b0__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/protocol_api/labware.py +2 -17
- opentrons/protocol_engine/commands/drop_tip_in_place.py +6 -67
- opentrons/protocol_engine/commands/evotip_seal_pipette.py +3 -3
- {opentrons-8.3.0a9.dist-info → opentrons-8.3.0b0.dist-info}/METADATA +4 -4
- {opentrons-8.3.0a9.dist-info → opentrons-8.3.0b0.dist-info}/RECORD +9 -9
- {opentrons-8.3.0a9.dist-info → opentrons-8.3.0b0.dist-info}/LICENSE +0 -0
- {opentrons-8.3.0a9.dist-info → opentrons-8.3.0b0.dist-info}/WHEEL +0 -0
- {opentrons-8.3.0a9.dist-info → opentrons-8.3.0b0.dist-info}/entry_points.txt +0 -0
- {opentrons-8.3.0a9.dist-info → opentrons-8.3.0b0.dist-info}/top_level.txt +0 -0
|
@@ -115,23 +115,8 @@ class Well:
|
|
|
115
115
|
@property
|
|
116
116
|
@requires_version(2, 0)
|
|
117
117
|
def has_tip(self) -> bool:
|
|
118
|
-
"""Whether this well contains
|
|
119
|
-
|
|
120
|
-
From API v2.2 on:
|
|
121
|
-
|
|
122
|
-
- Returns ``False`` if:
|
|
123
|
-
|
|
124
|
-
- the well has no tip present, or
|
|
125
|
-
- the well has a tip that's been used by the protocol previously
|
|
126
|
-
|
|
127
|
-
- Returns ``True`` if the well has an unused tip.
|
|
128
|
-
|
|
129
|
-
Before API v2.2:
|
|
130
|
-
|
|
131
|
-
- Returns ``True`` as long as the well has a tip, even if it is used.
|
|
132
|
-
|
|
133
|
-
Always ``False`` if the parent labware isn't a tip rack.
|
|
134
|
-
"""
|
|
118
|
+
"""Whether this well contains a tip. Always ``False`` if the parent labware
|
|
119
|
+
isn't a tip rack."""
|
|
135
120
|
return self._core.has_tip()
|
|
136
121
|
|
|
137
122
|
@has_tip.setter
|
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
"""Drop tip in place command request, result, and implementation models."""
|
|
2
2
|
from __future__ import annotations
|
|
3
3
|
|
|
4
|
-
from typing import TYPE_CHECKING, Optional, Type, Any
|
|
4
|
+
from typing import TYPE_CHECKING, Optional, Type, Any
|
|
5
5
|
|
|
6
6
|
from pydantic import Field, BaseModel
|
|
7
7
|
from pydantic.json_schema import SkipJsonSchema
|
|
8
8
|
from typing_extensions import Literal
|
|
9
9
|
|
|
10
|
-
from opentrons_shared_data.errors.exceptions import (
|
|
11
|
-
PipetteOverpressureError,
|
|
12
|
-
StallOrCollisionDetectedError,
|
|
13
|
-
)
|
|
14
|
-
|
|
15
10
|
from .command import (
|
|
16
11
|
AbstractCommandImpl,
|
|
17
12
|
BaseCommand,
|
|
@@ -19,12 +14,7 @@ from .command import (
|
|
|
19
14
|
DefinedErrorData,
|
|
20
15
|
SuccessData,
|
|
21
16
|
)
|
|
22
|
-
from .
|
|
23
|
-
from .pipetting_common import (
|
|
24
|
-
PipetteIdMixin,
|
|
25
|
-
TipPhysicallyAttachedError,
|
|
26
|
-
OverpressureError,
|
|
27
|
-
)
|
|
17
|
+
from .pipetting_common import PipetteIdMixin, TipPhysicallyAttachedError
|
|
28
18
|
from ..errors.exceptions import TipAttachedError
|
|
29
19
|
from ..errors.error_occurrence import ErrorOccurrence
|
|
30
20
|
from ..resources.model_utils import ModelUtils
|
|
@@ -61,12 +51,9 @@ class DropTipInPlaceResult(BaseModel):
|
|
|
61
51
|
pass
|
|
62
52
|
|
|
63
53
|
|
|
64
|
-
_ExecuteReturn =
|
|
65
|
-
SuccessData[DropTipInPlaceResult]
|
|
66
|
-
|
|
67
|
-
| DefinedErrorData[OverpressureError]
|
|
68
|
-
| DefinedErrorData[StallOrCollisionError]
|
|
69
|
-
]
|
|
54
|
+
_ExecuteReturn = (
|
|
55
|
+
SuccessData[DropTipInPlaceResult] | DefinedErrorData[TipPhysicallyAttachedError]
|
|
56
|
+
)
|
|
70
57
|
|
|
71
58
|
|
|
72
59
|
class DropTipInPlaceImplementation(
|
|
@@ -118,50 +105,6 @@ class DropTipInPlaceImplementation(
|
|
|
118
105
|
state_update=state_update,
|
|
119
106
|
state_update_if_false_positive=state_update_if_false_positive,
|
|
120
107
|
)
|
|
121
|
-
except PipetteOverpressureError as exception:
|
|
122
|
-
state_update_if_false_positive = update_types.StateUpdate()
|
|
123
|
-
state_update_if_false_positive.update_pipette_tip_state(
|
|
124
|
-
pipette_id=params.pipetteId, tip_geometry=None
|
|
125
|
-
)
|
|
126
|
-
state_update.set_fluid_unknown(pipette_id=params.pipetteId)
|
|
127
|
-
return DefinedErrorData(
|
|
128
|
-
public=OverpressureError(
|
|
129
|
-
id=self._model_utils.generate_id(),
|
|
130
|
-
createdAt=self._model_utils.get_timestamp(),
|
|
131
|
-
wrappedErrors=[
|
|
132
|
-
ErrorOccurrence.from_failed(
|
|
133
|
-
id=self._model_utils.generate_id(),
|
|
134
|
-
createdAt=self._model_utils.get_timestamp(),
|
|
135
|
-
error=exception,
|
|
136
|
-
)
|
|
137
|
-
],
|
|
138
|
-
errorInfo={"retryLocation": retry_location},
|
|
139
|
-
),
|
|
140
|
-
state_update=state_update,
|
|
141
|
-
state_update_if_false_positive=state_update_if_false_positive,
|
|
142
|
-
)
|
|
143
|
-
except StallOrCollisionDetectedError as exception:
|
|
144
|
-
state_update_if_false_positive = update_types.StateUpdate()
|
|
145
|
-
state_update_if_false_positive.update_pipette_tip_state(
|
|
146
|
-
pipette_id=params.pipetteId, tip_geometry=None
|
|
147
|
-
)
|
|
148
|
-
state_update.set_fluid_unknown(pipette_id=params.pipetteId)
|
|
149
|
-
return DefinedErrorData(
|
|
150
|
-
public=StallOrCollisionError(
|
|
151
|
-
id=self._model_utils.generate_id(),
|
|
152
|
-
createdAt=self._model_utils.get_timestamp(),
|
|
153
|
-
wrappedErrors=[
|
|
154
|
-
ErrorOccurrence.from_failed(
|
|
155
|
-
id=self._model_utils.generate_id(),
|
|
156
|
-
createdAt=self._model_utils.get_timestamp(),
|
|
157
|
-
error=exception,
|
|
158
|
-
)
|
|
159
|
-
],
|
|
160
|
-
errorInfo={"retryLocation": retry_location},
|
|
161
|
-
),
|
|
162
|
-
state_update=state_update,
|
|
163
|
-
state_update_if_false_positive=state_update_if_false_positive,
|
|
164
|
-
)
|
|
165
108
|
else:
|
|
166
109
|
state_update.set_fluid_unknown(pipette_id=params.pipetteId)
|
|
167
110
|
state_update.update_pipette_tip_state(
|
|
@@ -171,11 +114,7 @@ class DropTipInPlaceImplementation(
|
|
|
171
114
|
|
|
172
115
|
|
|
173
116
|
class DropTipInPlace(
|
|
174
|
-
BaseCommand[
|
|
175
|
-
DropTipInPlaceParams,
|
|
176
|
-
DropTipInPlaceResult,
|
|
177
|
-
TipPhysicallyAttachedError | OverpressureError | StallOrCollisionError,
|
|
178
|
-
]
|
|
117
|
+
BaseCommand[DropTipInPlaceParams, DropTipInPlaceResult, TipPhysicallyAttachedError]
|
|
179
118
|
):
|
|
180
119
|
"""Drop tip in place command model."""
|
|
181
120
|
|
|
@@ -44,7 +44,6 @@ EvotipSealPipetteCommandType = Literal["evotipSealPipette"]
|
|
|
44
44
|
_PREP_DISTANCE_DEFAULT = 8.25
|
|
45
45
|
_PRESS_DISTANCE_DEFAULT = 3.5
|
|
46
46
|
_EJECTOR_PUSH_MM_DEFAULT = 7.0
|
|
47
|
-
_SAFE_TOP_VOLUME = 400
|
|
48
47
|
|
|
49
48
|
|
|
50
49
|
class TipPickUpParams(BaseModel):
|
|
@@ -241,6 +240,7 @@ class EvotipSealPipetteImplementation(
|
|
|
241
240
|
tip_geometry = self._state_view.geometry.get_nominal_tip_geometry(
|
|
242
241
|
pipette_id, labware_id, well_name
|
|
243
242
|
)
|
|
243
|
+
maximum_volume = self._state_view.pipettes.get_maximum_volume(pipette_id)
|
|
244
244
|
if self._state_view.pipettes.get_mount(pipette_id) == MountType.LEFT:
|
|
245
245
|
await self._hardware_api.home(axes=[Axis.P_L])
|
|
246
246
|
else:
|
|
@@ -281,7 +281,7 @@ class EvotipSealPipetteImplementation(
|
|
|
281
281
|
self._tip_handler.cache_tip(pipette_id, tip_geometry)
|
|
282
282
|
hw_instr = self._hardware_api.hardware_instruments[mount.to_hw_mount()]
|
|
283
283
|
if hw_instr is not None:
|
|
284
|
-
hw_instr.set_current_volume(
|
|
284
|
+
hw_instr.set_current_volume(maximum_volume)
|
|
285
285
|
|
|
286
286
|
state_update = StateUpdate()
|
|
287
287
|
state_update.update_pipette_tip_state(
|
|
@@ -291,7 +291,7 @@ class EvotipSealPipetteImplementation(
|
|
|
291
291
|
|
|
292
292
|
state_update.set_fluid_aspirated(
|
|
293
293
|
pipette_id=pipette_id,
|
|
294
|
-
fluid=AspiratedFluid(kind=FluidKind.LIQUID, volume=
|
|
294
|
+
fluid=AspiratedFluid(kind=FluidKind.LIQUID, volume=maximum_volume),
|
|
295
295
|
)
|
|
296
296
|
return SuccessData(
|
|
297
297
|
public=EvotipSealPipetteResult(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: opentrons
|
|
3
|
-
Version: 8.3.
|
|
3
|
+
Version: 8.3.0b0
|
|
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.3.
|
|
24
|
+
Requires-Dist: opentrons-shared-data (==8.3.0b0)
|
|
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.3.
|
|
38
|
+
Requires-Dist: opentrons-hardware[flex] (==8.3.0b0) ; extra == 'flex-hardware'
|
|
39
39
|
Provides-Extra: ot2-hardware
|
|
40
|
-
Requires-Dist: opentrons-hardware (==8.3.
|
|
40
|
+
Requires-Dist: opentrons-hardware (==8.3.0b0) ; extra == 'ot2-hardware'
|
|
41
41
|
|
|
42
42
|
.. _Full API Documentation: http://docs.opentrons.com
|
|
43
43
|
|
|
@@ -227,7 +227,7 @@ opentrons/protocol_api/create_protocol_context.py,sha256=wwsZje0L__oDnu1Yrihau32
|
|
|
227
227
|
opentrons/protocol_api/deck.py,sha256=94vFceg1SC1bAGd7TvC1ZpYwnJR-VlzurEZ6jkacYeg,8910
|
|
228
228
|
opentrons/protocol_api/disposal_locations.py,sha256=NRiSGmDR0LnbyEkWSOM-o64uR2fUoB1NWJG7Y7SsJSs,7920
|
|
229
229
|
opentrons/protocol_api/instrument_context.py,sha256=m6J8W5J9jy-gHU5f5A_hoFtAt1v3iP7Q0uKKgL8bEWo,107284
|
|
230
|
-
opentrons/protocol_api/labware.py,sha256=
|
|
230
|
+
opentrons/protocol_api/labware.py,sha256=3pTaZlk7tbhY0wU9eNoq8ivaRC1uBo1h2f7eAZoLmHY,58879
|
|
231
231
|
opentrons/protocol_api/module_contexts.py,sha256=jU3IMPE5L78-KuZRfaPwB6xO0kiTup65IteqMPFOFR0,42262
|
|
232
232
|
opentrons/protocol_api/module_validation_and_errors.py,sha256=XL_m72P8rcvGO2fynY7UzXLcpGuI6X4s0V6Xf735Iyc,1464
|
|
233
233
|
opentrons/protocol_api/protocol_context.py,sha256=Y9jCj1t3wzawarPyOVcp-8qUmEnIhpyVSaHujVfT9Nk,60601
|
|
@@ -303,9 +303,9 @@ opentrons/protocol_engine/commands/custom.py,sha256=vOJc7QSNnYTpLvJm98OfDKjgcvVF
|
|
|
303
303
|
opentrons/protocol_engine/commands/dispense.py,sha256=wbDBDpc80c14AudywUoFTQYWPL8EJHirtSfrEMDZyNY,6293
|
|
304
304
|
opentrons/protocol_engine/commands/dispense_in_place.py,sha256=h2ASkZW-PlrJViN7ZNBDaaklIeF5n3sZkIAdrPcTqgA,6147
|
|
305
305
|
opentrons/protocol_engine/commands/drop_tip.py,sha256=2L4tGsDFh8xQwro5FKiZ6onVgo5FRpGVe708vvhsDs4,6900
|
|
306
|
-
opentrons/protocol_engine/commands/drop_tip_in_place.py,sha256=
|
|
306
|
+
opentrons/protocol_engine/commands/drop_tip_in_place.py,sha256=pVC0Yh_LkRTuTjzmFJufBWDlgRyMT8sJBl3TLAZFSUc,4497
|
|
307
307
|
opentrons/protocol_engine/commands/evotip_dispense.py,sha256=RKnItIOHJHTa0J_SioyWI2s4DuRrbnakA6lGp6UrPXI,4847
|
|
308
|
-
opentrons/protocol_engine/commands/evotip_seal_pipette.py,sha256=
|
|
308
|
+
opentrons/protocol_engine/commands/evotip_seal_pipette.py,sha256=iVDD349BjD6eKCX8Oft57a51g45IXWTIDEcWUD4rt_A,11529
|
|
309
309
|
opentrons/protocol_engine/commands/evotip_unseal_pipette.py,sha256=JBhG8Kbu5PFrDa5b_Q8n-O582oq55ZgPn65kUAZwh0A,5363
|
|
310
310
|
opentrons/protocol_engine/commands/generate_command_schema.py,sha256=OzjMuHNJ7uCyjA7XBrQ18-j0L48W2kLPDFJ6FBM5aUo,1184
|
|
311
311
|
opentrons/protocol_engine/commands/get_next_tip.py,sha256=JS5hN_UScAiUIo_j7KT2cR1GDj3hDvaNPTSovWbgTHo,4828
|
|
@@ -542,9 +542,9 @@ opentrons/util/helpers.py,sha256=3hr801bWGbxEcOFAS7f-iOhmnUhoK5qahbB8SIvaCfY,165
|
|
|
542
542
|
opentrons/util/linal.py,sha256=IlKAP9HkNBBgULeSf4YVwSKHdx9jnCjSr7nvDvlRALg,5753
|
|
543
543
|
opentrons/util/logging_config.py,sha256=UHoY7dyD6WMYNP5GKowbMxUSG_hlXeI5TaIwksR5u-U,6887
|
|
544
544
|
opentrons/util/performance_helpers.py,sha256=ew7H8XD20iS6-2TJAzbQeyzStZkkE6PzHt_Adx3wbZQ,5172
|
|
545
|
-
opentrons-8.3.
|
|
546
|
-
opentrons-8.3.
|
|
547
|
-
opentrons-8.3.
|
|
548
|
-
opentrons-8.3.
|
|
549
|
-
opentrons-8.3.
|
|
550
|
-
opentrons-8.3.
|
|
545
|
+
opentrons-8.3.0b0.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
546
|
+
opentrons-8.3.0b0.dist-info/METADATA,sha256=Ql4CicBbg8zTSEerjA0X2m7_Ttz2sAWeXTzuFnzzF0I,5084
|
|
547
|
+
opentrons-8.3.0b0.dist-info/WHEEL,sha256=qUzzGenXXuJTzyjFah76kDVqDvnk-YDzY00svnrl84w,109
|
|
548
|
+
opentrons-8.3.0b0.dist-info/entry_points.txt,sha256=fTa6eGCYkvOtv0ov-KVE8LLGetgb35LQLF9x85OWPVw,106
|
|
549
|
+
opentrons-8.3.0b0.dist-info/top_level.txt,sha256=wk6whpbMZdBQpcK0Fg0YVfUGrAgVOFON7oQAhOMGMW8,10
|
|
550
|
+
opentrons-8.3.0b0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|