opentrons-shared-data 8.7.0a11__py3-none-any.whl → 8.8.0a6__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_shared_data/_version.py +2 -2
- opentrons_shared_data/data/command/schemas/10.json +1 -1
- opentrons_shared_data/data/command/schemas/11.json +1 -1
- opentrons_shared_data/data/command/schemas/12.json +1 -1
- opentrons_shared_data/data/command/schemas/13.json +1 -1
- opentrons_shared_data/data/command/schemas/14.json +6 -1
- opentrons_shared_data/data/command/schemas/15.json +7676 -0
- opentrons_shared_data/data/command/schemas/8.json +1 -1
- opentrons_shared_data/data/command/schemas/9.json +1 -1
- opentrons_shared_data/data/deck/definitions/5/ot2_short_trash.json +13 -0
- opentrons_shared_data/data/deck/definitions/5/ot2_standard.json +13 -0
- opentrons_shared_data/data/deck/definitions/5/ot3_standard.json +138 -69
- opentrons_shared_data/data/deck/schemas/5.json +7 -1
- opentrons_shared_data/data/errors/definitions/1/errors.json +8 -0
- opentrons_shared_data/data/labware/definitions/2/agilent_1_reservoir_290ml/4.json +80 -0
- opentrons_shared_data/data/labware/definitions/2/axygen_1_reservoir_90ml/3.json +72 -0
- opentrons_shared_data/data/labware/definitions/2/biorad_96_wellplate_200ul_pcr/5.json +1187 -0
- opentrons_shared_data/data/labware/definitions/2/black_96_well_microtiter_plate_lid/1.json +1 -1
- opentrons_shared_data/data/labware/definitions/2/corning_12_wellplate_6.9ml_flat/5.json +210 -0
- opentrons_shared_data/data/labware/definitions/2/corning_24_wellplate_3.4ml_flat/5.json +342 -0
- opentrons_shared_data/data/labware/definitions/2/corning_384_wellplate_112ul_flat/5.json +5116 -0
- opentrons_shared_data/data/labware/definitions/2/corning_48_wellplate_1.6ml_flat/6.json +610 -0
- opentrons_shared_data/data/labware/definitions/2/corning_6_wellplate_16.8ml_flat/5.json +134 -0
- opentrons_shared_data/data/labware/definitions/2/corning_96_wellplate_330ul/1.json +1170 -0
- opentrons_shared_data/data/labware/definitions/2/corning_96_wellplate_360ul_flat/5.json +1177 -0
- opentrons_shared_data/data/labware/definitions/2/corning_falcon_384_wellplate_130ul_flat/1.json +5147 -0
- opentrons_shared_data/data/labware/definitions/2/corning_falcon_384_wellplate_130ul_flat_lid/1.json +118 -0
- opentrons_shared_data/data/labware/definitions/2/costar_96_wellplate_2.2ml/1.json +1372 -0
- opentrons_shared_data/data/labware/definitions/2/eppendorf_384_wellplate_45ul/1.json +4758 -0
- opentrons_shared_data/data/labware/definitions/2/eppendorf_96_wellplate_150ul/1.json +1184 -0
- opentrons_shared_data/data/labware/definitions/2/eppendorf_96_wellplate_2000ul/1.json +1395 -0
- opentrons_shared_data/data/labware/definitions/2/eppendorf_96_wellplate_2000ul_lobind/1.json +1395 -0
- opentrons_shared_data/data/labware/definitions/2/eppendorf_96_wellplate_350ul_lobind/1.json +1184 -0
- opentrons_shared_data/data/labware/definitions/2/eppendorf_96_wellplate_500ul/1.json +1170 -0
- opentrons_shared_data/data/labware/definitions/2/eppendorf_96_wellplate_500ul_lobind/1.json +1170 -0
- opentrons_shared_data/data/labware/definitions/2/greiner_384_wellplate_240ul/1.json +5209 -0
- opentrons_shared_data/data/labware/definitions/2/greiner_96_wellplate_323ul/1.json +1197 -0
- opentrons_shared_data/data/labware/definitions/2/greiner_96_wellplate_340ul_chimney/1.json +1166 -0
- opentrons_shared_data/data/labware/definitions/2/greiner_96_wellplate_382ul/1.json +1156 -0
- opentrons_shared_data/data/labware/definitions/2/nest_12_reservoir_15ml/3.json +226 -0
- opentrons_shared_data/data/labware/definitions/2/nest_1_reservoir_195ml/4.json +83 -0
- opentrons_shared_data/data/labware/definitions/2/nest_1_reservoir_290ml/4.json +80 -0
- opentrons_shared_data/data/labware/definitions/2/nest_96_wellplate_100ul_pcr_full_skirt/5.json +1166 -0
- opentrons_shared_data/data/labware/definitions/2/nest_96_wellplate_200ul_flat/5.json +1145 -0
- opentrons_shared_data/data/labware/definitions/2/nest_96_wellplate_2ml_deep/5.json +1261 -0
- opentrons_shared_data/data/labware/definitions/2/nunc_384_wellplate_100ul/1.json +5136 -0
- opentrons_shared_data/data/labware/definitions/2/nunc_96_wellplate_450ul/1.json +1159 -0
- opentrons_shared_data/data/labware/definitions/2/opentrons_10_tuberack_falcon_4x50ml_6x15ml_conical/3.json +232 -0
- opentrons_shared_data/data/labware/definitions/2/opentrons_15_tuberack_eppendorf_15ml_conical/1.json +314 -0
- opentrons_shared_data/data/labware/definitions/2/opentrons_15_tuberack_falcon_15ml_conical/3.json +259 -0
- opentrons_shared_data/data/labware/definitions/2/opentrons_24_aluminumblock_nest_0.5ml_screwcap/4.json +370 -0
- opentrons_shared_data/data/labware/definitions/2/opentrons_24_aluminumblock_nest_1.5ml_screwcap/3.json +356 -0
- opentrons_shared_data/data/labware/definitions/2/opentrons_24_aluminumblock_nest_1.5ml_snapcap/3.json +358 -0
- opentrons_shared_data/data/labware/definitions/2/opentrons_24_aluminumblock_nest_2ml_screwcap/3.json +350 -0
- opentrons_shared_data/data/labware/definitions/2/opentrons_24_aluminumblock_nest_2ml_snapcap/3.json +386 -0
- opentrons_shared_data/data/labware/definitions/2/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/3.json +418 -0
- opentrons_shared_data/data/labware/definitions/2/opentrons_24_tuberack_eppendorf_2ml_safelock_snapcap/3.json +473 -0
- opentrons_shared_data/data/labware/definitions/2/opentrons_24_tuberack_nest_0.5ml_screwcap/4.json +371 -0
- opentrons_shared_data/data/labware/definitions/2/opentrons_6_tuberack_nest_50ml_conical/3.json +150 -0
- opentrons_shared_data/data/labware/definitions/2/opentrons_flex_tiprack_lid/1.json +1 -1
- opentrons_shared_data/data/labware/definitions/2/opentrons_tough_universal_lid/1.json +5 -0
- opentrons_shared_data/data/labware/definitions/2/opentrons_tough_universal_lid/2.json +101 -0
- opentrons_shared_data/data/labware/definitions/2/thermoscientific_96_wellplate_800ul/1.json +1194 -0
- opentrons_shared_data/data/labware/definitions/2/thermoscientific_abgene_96_wellplate_1.2ml/1.json +1314 -0
- opentrons_shared_data/data/labware/definitions/2/usascientific_12_reservoir_22ml/4.json +237 -0
- opentrons_shared_data/data/labware/definitions/2/usascientific_96_wellplate_2.4ml_deep/4.json +1243 -0
- opentrons_shared_data/data/labware/definitions/3/schema3test_96_wellplate_200ul_pcr_full_skirt/999.json +0 -27
- opentrons_shared_data/data/labware/definitions/3/schema3test_96_wellplate_360ul_flat/999.json +1189 -0
- opentrons_shared_data/data/labware/definitions/3/schema3test_tough_pcr_auto_sealing_lid/999.json +0 -47
- opentrons_shared_data/data/labware/definitions/3/schema3test_universal_flat_adapter/999.json +25 -5
- opentrons_shared_data/data/labware/schemas/2.json +1 -1
- opentrons_shared_data/data/labware/schemas/3.json +78 -0
- opentrons_shared_data/data/module/definitions/3/absorbanceReaderV1.json +6 -0
- opentrons_shared_data/data/module/definitions/3/flexStackerModuleV1.json +10 -93
- opentrons_shared_data/data/module/definitions/3/heaterShakerModuleV1.json +30 -1
- opentrons_shared_data/data/module/definitions/3/magneticBlockV1.json +14 -0
- opentrons_shared_data/data/module/definitions/3/magneticModuleV1.json +13 -0
- opentrons_shared_data/data/module/definitions/3/magneticModuleV2.json +13 -0
- opentrons_shared_data/data/module/definitions/3/temperatureModuleV1.json +13 -0
- opentrons_shared_data/data/module/definitions/3/temperatureModuleV2.json +21 -0
- opentrons_shared_data/data/module/definitions/3/thermocyclerModuleV1.json +3 -0
- opentrons_shared_data/data/module/definitions/3/thermocyclerModuleV2.json +4 -0
- opentrons_shared_data/data/module/schemas/3.json +24 -0
- opentrons_shared_data/data/pipette/definitions/2/geometry/ninety_six_channel/p1000/3_0.json +1 -1
- opentrons_shared_data/data/pipette/definitions/2/geometry/ninety_six_channel/p1000/3_3.json +1 -1
- opentrons_shared_data/data/pipette/definitions/2/geometry/ninety_six_channel/p1000/3_4.json +1 -1
- opentrons_shared_data/data/pipette/definitions/2/geometry/ninety_six_channel/p1000/3_5.json +1 -1
- opentrons_shared_data/data/pipette/definitions/2/geometry/ninety_six_channel/p1000/3_6.json +1 -1
- opentrons_shared_data/data/pipette/definitions/2/geometry/ninety_six_channel/p200/3_0.json +1 -1
- opentrons_shared_data/data/pipette/definitions/2/geometry/ninety_six_channel/p200/3_1.json +1 -1
- opentrons_shared_data/data/pipette/definitions/2/geometry/ninety_six_channel/p200/3_2.json +1 -1
- opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p1000/3_0.json +2 -2
- opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p1000/3_3.json +2 -2
- opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p1000/3_4.json +2 -2
- opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p1000/3_5.json +2 -2
- opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p1000/3_6.json +2 -2
- opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p1000/3_7.json +2 -2
- opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p50/3_0.json +2 -2
- opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p50/3_3.json +2 -2
- opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p50/3_4.json +2 -2
- opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p50/3_5.json +2 -2
- opentrons_shared_data/data/pipette/definitions/2/geometry/single_channel/p50/3_6.json +2 -2
- opentrons_shared_data/data_files/__init__.py +26 -0
- opentrons_shared_data/data_files/types.py +84 -0
- opentrons_shared_data/deck/types.py +3 -1
- opentrons_shared_data/errors/codes.py +2 -0
- opentrons_shared_data/errors/exceptions.py +28 -1
- opentrons_shared_data/labware/labware_definition.py +1 -0
- opentrons_shared_data/labware/types.py +32 -0
- opentrons_shared_data/module/types.py +9 -1
- opentrons_shared_data/protocol/models/shared_models.py +1 -0
- {opentrons_shared_data-8.7.0a11.dist-info → opentrons_shared_data-8.8.0a6.dist-info}/METADATA +1 -1
- {opentrons_shared_data-8.7.0a11.dist-info → opentrons_shared_data-8.8.0a6.dist-info}/RECORD +115 -62
- {opentrons_shared_data-8.7.0a11.dist-info → opentrons_shared_data-8.8.0a6.dist-info}/WHEEL +0 -0
- {opentrons_shared_data-8.7.0a11.dist-info → opentrons_shared_data-8.8.0a6.dist-info}/licenses/LICENSE +0 -0
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"pathTo3D": "pipette/definitions/2/geometry/single_channel/p1000/placeholder.gltf",
|
|
4
4
|
"nozzleOffset": [-8.0, -22.0, -259.15],
|
|
5
5
|
"pipetteBoundingBoxOffsets": {
|
|
6
|
-
"backLeftCorner": [-
|
|
7
|
-
"frontRightCorner": [
|
|
6
|
+
"backLeftCorner": [-38.0, 0.0, -259.15],
|
|
7
|
+
"frontRightCorner": [11.5, -64.0, -259.15]
|
|
8
8
|
},
|
|
9
9
|
"orderedRows": [{ "key": "A", "orderedNozzles": ["A1"] }],
|
|
10
10
|
"orderedColumns": [{ "key": "1", "orderedNozzles": ["A1"] }],
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"pathTo3D": "pipette/definitions/2/geometry/single_channel/p1000/placeholder.gltf",
|
|
4
4
|
"nozzleOffset": [-8.0, -22.0, -259.15],
|
|
5
5
|
"pipetteBoundingBoxOffsets": {
|
|
6
|
-
"backLeftCorner": [-
|
|
7
|
-
"frontRightCorner": [
|
|
6
|
+
"backLeftCorner": [-38.0, 0.0, -259.15],
|
|
7
|
+
"frontRightCorner": [11.5, -64.0, -259.15]
|
|
8
8
|
},
|
|
9
9
|
"orderedRows": [{ "key": "A", "orderedNozzles": ["A1"] }],
|
|
10
10
|
"orderedColumns": [{ "key": "1", "orderedNozzles": ["A1"] }],
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"pathTo3D": "pipette/definitions/2/geometry/single_channel/p1000/placeholder.gltf",
|
|
4
4
|
"nozzleOffset": [-8.0, -22.0, -259.15],
|
|
5
5
|
"pipetteBoundingBoxOffsets": {
|
|
6
|
-
"backLeftCorner": [-
|
|
7
|
-
"frontRightCorner": [
|
|
6
|
+
"backLeftCorner": [-38.0, 0.0, -259.15],
|
|
7
|
+
"frontRightCorner": [11.5, -64.0, -259.15]
|
|
8
8
|
},
|
|
9
9
|
"orderedRows": [{ "key": "A", "orderedNozzles": ["A1"] }],
|
|
10
10
|
"orderedColumns": [{ "key": "1", "orderedNozzles": ["A1"] }],
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"pathTo3D": "pipette/definitions/2/geometry/single_channel/p50/placeholder.gltf",
|
|
4
4
|
"nozzleOffset": [-8.0, -22.0, -259.15],
|
|
5
5
|
"pipetteBoundingBoxOffsets": {
|
|
6
|
-
"backLeftCorner": [-
|
|
7
|
-
"frontRightCorner": [
|
|
6
|
+
"backLeftCorner": [-38.0, 0.0, -259.15],
|
|
7
|
+
"frontRightCorner": [11.5, -64.0, -259.15]
|
|
8
8
|
},
|
|
9
9
|
"orderedRows": [{ "key": "A", "orderedNozzles": ["A1"] }],
|
|
10
10
|
"orderedColumns": [{ "key": "1", "orderedNozzles": ["A1"] }],
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"pathTo3D": "pipette/definitions/2/geometry/single_channel/p50/placeholder.gltf",
|
|
4
4
|
"nozzleOffset": [-8.0, -22.0, -259.15],
|
|
5
5
|
"pipetteBoundingBoxOffsets": {
|
|
6
|
-
"backLeftCorner": [-
|
|
7
|
-
"frontRightCorner": [
|
|
6
|
+
"backLeftCorner": [-38.0, 0.0, -259.15],
|
|
7
|
+
"frontRightCorner": [11.5, -64.0, -259.15]
|
|
8
8
|
},
|
|
9
9
|
"orderedRows": [{ "key": "A", "orderedNozzles": ["A1"] }],
|
|
10
10
|
"orderedColumns": [{ "key": "1", "orderedNozzles": ["A1"] }],
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"pathTo3D": "pipette/definitions/2/geometry/single_channel/p50/placeholder.gltf",
|
|
4
4
|
"nozzleOffset": [-8.0, -22.0, -259.15],
|
|
5
5
|
"pipetteBoundingBoxOffsets": {
|
|
6
|
-
"backLeftCorner": [-
|
|
7
|
-
"frontRightCorner": [
|
|
6
|
+
"backLeftCorner": [-38.0, 0.0, -259.15],
|
|
7
|
+
"frontRightCorner": [11.5, -64.0, -259.15]
|
|
8
8
|
},
|
|
9
9
|
"orderedRows": [{ "key": "A", "orderedNozzles": ["A1"] }],
|
|
10
10
|
"orderedColumns": [{ "key": "1", "orderedNozzles": ["A1"] }],
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"pathTo3D": "pipette/definitions/2/geometry/single_channel/p50/placeholder.gltf",
|
|
4
4
|
"nozzleOffset": [-8.0, -22.0, -259.15],
|
|
5
5
|
"pipetteBoundingBoxOffsets": {
|
|
6
|
-
"backLeftCorner": [-
|
|
7
|
-
"frontRightCorner": [
|
|
6
|
+
"backLeftCorner": [-38.0, 0.0, -259.15],
|
|
7
|
+
"frontRightCorner": [11.5, -64.0, -259.15]
|
|
8
8
|
},
|
|
9
9
|
"orderedRows": [{ "key": "A", "orderedNozzles": ["A1"] }],
|
|
10
10
|
"orderedColumns": [{ "key": "1", "orderedNozzles": ["A1"] }],
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"pathTo3D": "pipette/definitions/2/geometry/single_channel/p50/placeholder.gltf",
|
|
4
4
|
"nozzleOffset": [-8.0, -22.0, -259.15],
|
|
5
5
|
"pipetteBoundingBoxOffsets": {
|
|
6
|
-
"backLeftCorner": [-
|
|
7
|
-
"frontRightCorner": [
|
|
6
|
+
"backLeftCorner": [-38.0, 0.0, -259.15],
|
|
7
|
+
"frontRightCorner": [11.5, -64.0, -259.15]
|
|
8
8
|
},
|
|
9
9
|
"orderedRows": [{ "key": "A", "orderedNozzles": ["A1"] }],
|
|
10
10
|
"orderedColumns": [{ "key": "1", "orderedNozzles": ["A1"] }],
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"""Types and functions for accessing data files."""
|
|
2
|
+
|
|
3
|
+
from .types import (
|
|
4
|
+
DataFileInfo,
|
|
5
|
+
InputDataFileInfo,
|
|
6
|
+
OutputDataFileInfo,
|
|
7
|
+
CmdDataFileInfo,
|
|
8
|
+
MimeType,
|
|
9
|
+
IODataFileInfo,
|
|
10
|
+
DataFileSource,
|
|
11
|
+
DataFileInfoWithCommands,
|
|
12
|
+
RunFileNameMetadata,
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
__all__ = [
|
|
17
|
+
"DataFileInfo",
|
|
18
|
+
"InputDataFileInfo",
|
|
19
|
+
"OutputDataFileInfo",
|
|
20
|
+
"IODataFileInfo",
|
|
21
|
+
"CmdDataFileInfo",
|
|
22
|
+
"MimeType",
|
|
23
|
+
"DataFileSource",
|
|
24
|
+
"RunFileNameMetadata",
|
|
25
|
+
"DataFileInfoWithCommands",
|
|
26
|
+
]
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"""opentrons_shared_data.data_files.types: types for data files."""
|
|
2
|
+
|
|
3
|
+
from dataclasses import dataclass
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
from enum import Enum
|
|
6
|
+
from typing import Union, Optional
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@dataclass(frozen=True)
|
|
10
|
+
class RunFileNameMetadata:
|
|
11
|
+
"""Data from the run used that may be used to build a finalized file name."""
|
|
12
|
+
|
|
13
|
+
robot_name: str
|
|
14
|
+
run_id: str
|
|
15
|
+
run_created_at: datetime
|
|
16
|
+
protocol_name: Optional[str]
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class MimeType(str, Enum):
|
|
20
|
+
"""File mime types."""
|
|
21
|
+
|
|
22
|
+
TEXT_CSV = "text/csv"
|
|
23
|
+
IMAGE_JPEG = "image/jpeg"
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class DataFileSource(Enum):
|
|
27
|
+
"""The source this data file is from."""
|
|
28
|
+
|
|
29
|
+
UPLOADED = "uploaded"
|
|
30
|
+
GENERATED = "generated"
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
@dataclass(frozen=True)
|
|
34
|
+
class DataFileInfo:
|
|
35
|
+
"""Metadata about a data file."""
|
|
36
|
+
|
|
37
|
+
id: str
|
|
38
|
+
name: str
|
|
39
|
+
path: str
|
|
40
|
+
stored: bool
|
|
41
|
+
generated: bool
|
|
42
|
+
file_hash: str
|
|
43
|
+
mime_type: MimeType
|
|
44
|
+
created_at: datetime
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
@dataclass(frozen=True)
|
|
48
|
+
class CmdDataFileInfo:
|
|
49
|
+
"""Command metadata info utilized by data files."""
|
|
50
|
+
|
|
51
|
+
command_id: str
|
|
52
|
+
prev_command_id: str
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
@dataclass(frozen=True)
|
|
56
|
+
class DataFileInfoWithCommands(DataFileInfo):
|
|
57
|
+
"""Data file info with associated command information."""
|
|
58
|
+
|
|
59
|
+
command_info: CmdDataFileInfo
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
@dataclass(frozen=True)
|
|
63
|
+
class BaseInputOutputDataFileInfo:
|
|
64
|
+
"""Base metadata info for data files acting as input or output to a run."""
|
|
65
|
+
|
|
66
|
+
run_id: str
|
|
67
|
+
file_id: str
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
@dataclass(frozen=True)
|
|
71
|
+
class InputDataFileInfo(BaseInputOutputDataFileInfo):
|
|
72
|
+
"""Metadata of a data file used as input to a run."""
|
|
73
|
+
|
|
74
|
+
command_info: None
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
@dataclass(frozen=True)
|
|
78
|
+
class OutputDataFileInfo(BaseInputOutputDataFileInfo):
|
|
79
|
+
"""Metadata of a data file used as output from a run."""
|
|
80
|
+
|
|
81
|
+
command_info: CmdDataFileInfo
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
IODataFileInfo = Union[InputDataFileInfo, OutputDataFileInfo]
|
|
@@ -7,7 +7,7 @@ This should only be imported if typing.TYPE_CHECKING is True
|
|
|
7
7
|
from typing import Any, Dict, List, NewType, Union
|
|
8
8
|
from typing_extensions import Literal, TypedDict
|
|
9
9
|
|
|
10
|
-
from ..module.types import ModuleType
|
|
10
|
+
from ..module.types import ModuleType, ModuleOrientation
|
|
11
11
|
from opentrons_shared_data.labware.types import LocatingFeatures
|
|
12
12
|
|
|
13
13
|
|
|
@@ -46,6 +46,7 @@ class SlotDefV3(TypedDict, total=False):
|
|
|
46
46
|
compatibleModuleTypes: List[ModuleType]
|
|
47
47
|
matingSurfaceUnitVector: List[Union[Literal[1], Literal[-1]]]
|
|
48
48
|
features: LocatingFeatures
|
|
49
|
+
orientation: ModuleOrientation
|
|
49
50
|
|
|
50
51
|
|
|
51
52
|
class CalibrationPoint(TypedDict):
|
|
@@ -112,6 +113,7 @@ class AddressableAreaV5(_RequiredAddressableArea, total=False):
|
|
|
112
113
|
ableToDropTips: bool
|
|
113
114
|
ableToDropLabware: bool
|
|
114
115
|
features: LocatingFeatures
|
|
116
|
+
orientation: Union[ModuleOrientation, None]
|
|
115
117
|
|
|
116
118
|
|
|
117
119
|
class Cutout(TypedDict):
|
|
@@ -98,6 +98,8 @@ class ErrorCodes(Enum):
|
|
|
98
98
|
MISSING_CONFIGURATION_DATA = _code_from_dict_entry("4009")
|
|
99
99
|
RUNTIME_PARAMETER_VALUE_REQUIRED = _code_from_dict_entry("4010")
|
|
100
100
|
INCORRECT_API_VERSION = _code_from_dict_entry("4011")
|
|
101
|
+
LABWARE_LOCATING_FEATURE_ERROR = _code_from_dict_entry("4012")
|
|
102
|
+
CAMERA_ERROR = _code_from_dict_entry("4013")
|
|
101
103
|
|
|
102
104
|
@classmethod
|
|
103
105
|
@lru_cache(25)
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
"""Exception hierarchy for error codes."""
|
|
2
2
|
|
|
3
|
-
from
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from typing import (
|
|
5
|
+
Dict,
|
|
6
|
+
Any,
|
|
7
|
+
Optional,
|
|
8
|
+
List,
|
|
9
|
+
Iterator,
|
|
10
|
+
Union,
|
|
11
|
+
Sequence,
|
|
12
|
+
overload,
|
|
13
|
+
Type,
|
|
14
|
+
TypeVar,
|
|
15
|
+
)
|
|
4
16
|
from logging import getLogger
|
|
5
17
|
from traceback import format_exception_only, format_tb
|
|
6
18
|
import inspect
|
|
@@ -16,6 +28,18 @@ log = getLogger(__name__)
|
|
|
16
28
|
class EnumeratedError(Exception):
|
|
17
29
|
"""The root class of error-code-bearing exceptions."""
|
|
18
30
|
|
|
31
|
+
@classmethod
|
|
32
|
+
def ensure(cls: Type[_ET], exception: Exception) -> _ET:
|
|
33
|
+
"""Ensure that an exception is enumerated.
|
|
34
|
+
|
|
35
|
+
If the passed exception is an EnumeratedError, returns it; otherwise, wraps it in an appropriate
|
|
36
|
+
child class.
|
|
37
|
+
"""
|
|
38
|
+
if isinstance(exception, cls):
|
|
39
|
+
return exception
|
|
40
|
+
else:
|
|
41
|
+
return PythonException(exception) # type: ignore[return-value]
|
|
42
|
+
|
|
19
43
|
def __init__(
|
|
20
44
|
self,
|
|
21
45
|
code: ErrorCodes,
|
|
@@ -50,6 +74,9 @@ class EnumeratedError(Exception):
|
|
|
50
74
|
)
|
|
51
75
|
|
|
52
76
|
|
|
77
|
+
_ET = TypeVar("_ET", bound=EnumeratedError, covariant=True)
|
|
78
|
+
|
|
79
|
+
|
|
53
80
|
class CommunicationError(EnumeratedError):
|
|
54
81
|
"""An exception indicating an unknown communications error.
|
|
55
82
|
|
|
@@ -608,6 +608,7 @@ class LabwareDefinition3(BaseModel):
|
|
|
608
608
|
wells: dict[str, WellDefinition3]
|
|
609
609
|
groups: list[Group]
|
|
610
610
|
stackingOffsetWithLabware: dict[str, Vector3D] = Field(default_factory=dict)
|
|
611
|
+
legacyStackingOffsetWithLabware: dict[str, Vector3D] = Field(default_factory=dict)
|
|
611
612
|
stackingOffsetWithModule: dict[str, Vector3D] = Field(default_factory=dict)
|
|
612
613
|
allowedRoles: list[LabwareRole] = Field(default_factory=list)
|
|
613
614
|
gripperOffsets: dict[str, GripperOffsets] = Field(default_factory=dict)
|
|
@@ -180,6 +180,29 @@ class OpentronsFlexTipRackLidAsChildFeature(TypedDict):
|
|
|
180
180
|
matingZ: float
|
|
181
181
|
|
|
182
182
|
|
|
183
|
+
class HeaterShakerUniversalFlatAdapterDeckSide(TypedDict):
|
|
184
|
+
wallX: float
|
|
185
|
+
screwCenter: Vector3D
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
class HeaterShakerUniversalFlatAdapterFeature(TypedDict):
|
|
189
|
+
flatSupportThermalCouplingZ: float
|
|
190
|
+
deckLeft: HeaterShakerUniversalFlatAdapterDeckSide
|
|
191
|
+
deckRight: HeaterShakerUniversalFlatAdapterDeckSide
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
class FlatSupportThermalCouplingAsChildFeature(TypedDict):
|
|
195
|
+
wellExteriorBottomZ: float
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
class ScrewAnchoredAsParentFeature(TypedDict):
|
|
199
|
+
screwCenter: Vector3D
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
class ScrewAnchoredAsChildFeature(TypedDict):
|
|
203
|
+
screwCenter: Vector3D
|
|
204
|
+
|
|
205
|
+
|
|
183
206
|
class LocatingFeatures(TypedDict):
|
|
184
207
|
"""A dictionary of locating features."""
|
|
185
208
|
|
|
@@ -188,6 +211,14 @@ class LocatingFeatures(TypedDict):
|
|
|
188
211
|
springDirectionalForceAsParent: NotRequired[SpringDirectionalForce]
|
|
189
212
|
opentronsFlexTipRackLidAsParent: NotRequired[OpentronsFlexTipRackLidAsParentFeature]
|
|
190
213
|
opentronsFlexTipRackLidAsChild: NotRequired[OpentronsFlexTipRackLidAsChildFeature]
|
|
214
|
+
heaterShakerUniversalFlatAdapter: NotRequired[
|
|
215
|
+
HeaterShakerUniversalFlatAdapterFeature
|
|
216
|
+
]
|
|
217
|
+
flatSupportThermalCouplingAsChild: NotRequired[
|
|
218
|
+
FlatSupportThermalCouplingAsChildFeature
|
|
219
|
+
]
|
|
220
|
+
screwAnchoredAsParent: NotRequired[ScrewAnchoredAsParentFeature]
|
|
221
|
+
screwAnchoredAsChild: NotRequired[ScrewAnchoredAsChildFeature]
|
|
191
222
|
|
|
192
223
|
|
|
193
224
|
class LabwareDefinition2(TypedDict):
|
|
@@ -237,6 +268,7 @@ class LabwareDefinition3(_OTSharedSchemaMixin, TypedDict):
|
|
|
237
268
|
wells: dict[str, WellDefinition3]
|
|
238
269
|
groups: list[WellGroup]
|
|
239
270
|
stackingOffsetWithLabware: NotRequired[dict[str, Vector3D]]
|
|
271
|
+
legacyStackingOffsetWithLabware: NotRequired[dict[str, Vector3D]]
|
|
240
272
|
stackingOffsetWithModule: NotRequired[dict[str, Vector3D]]
|
|
241
273
|
allowedRoles: NotRequired[list[LabwareRoles]]
|
|
242
274
|
gripperOffsets: NotRequired[dict[str, GripperOffsets]]
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
opentrons_shared_data.module.types: types requiring typing_extensions
|
|
3
3
|
for modules
|
|
4
4
|
"""
|
|
5
|
-
|
|
5
|
+
import enum
|
|
6
6
|
from typing import Any, Dict, List, Union
|
|
7
7
|
from typing_extensions import Literal, TypedDict
|
|
8
8
|
|
|
@@ -112,6 +112,13 @@ class TOFSensorBaseline(TypedDict):
|
|
|
112
112
|
Z: TOFBaseline
|
|
113
113
|
|
|
114
114
|
|
|
115
|
+
class ModuleOrientation(enum.Enum):
|
|
116
|
+
LEFT = "left"
|
|
117
|
+
RIGHT = "right"
|
|
118
|
+
CENTER = "center"
|
|
119
|
+
NOT_APPLICABLE = None
|
|
120
|
+
|
|
121
|
+
|
|
115
122
|
# TODO(mc, 2022-03-18): potentially move from typed-dict to Pydantic
|
|
116
123
|
ModuleDefinitionV3 = TypedDict(
|
|
117
124
|
"ModuleDefinitionV3",
|
|
@@ -133,6 +140,7 @@ ModuleDefinitionV3 = TypedDict(
|
|
|
133
140
|
"uniqueModuleData": Dict[str, Any],
|
|
134
141
|
"incompatibleWithDecks": List[str],
|
|
135
142
|
"gripperOffsets": Dict[str, GripperOffsets],
|
|
143
|
+
"orientation": Dict[str, str],
|
|
136
144
|
},
|
|
137
145
|
total=False,
|
|
138
146
|
)
|
{opentrons_shared_data-8.7.0a11.dist-info → opentrons_shared_data-8.8.0a6.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: opentrons_shared_data
|
|
3
|
-
Version: 8.
|
|
3
|
+
Version: 8.8.0a6
|
|
4
4
|
Summary: A bundle of data and python binding that supports the Opentrons API.Does not need to be installed manually; only a dependency of the opentrons package
|
|
5
5
|
Project-URL: Source Code, https://github.com/Opentrons/opentrons
|
|
6
6
|
Author-email: Opentrons <engineering@opentrons.com>
|