UncountablePythonSDK 0.0.16__py3-none-any.whl → 0.0.18__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 UncountablePythonSDK might be problematic. Click here for more details.
- {UncountablePythonSDK-0.0.16.dist-info → UncountablePythonSDK-0.0.18.dist-info}/METADATA +14 -1
- {UncountablePythonSDK-0.0.16.dist-info → UncountablePythonSDK-0.0.18.dist-info}/RECORD +81 -33
- {UncountablePythonSDK-0.0.16.dist-info → UncountablePythonSDK-0.0.18.dist-info}/top_level.txt +1 -0
- docs/.gitignore +1 -0
- docs/conf.py +52 -0
- docs/index.md +13 -0
- docs/justfile +12 -0
- docs/quickstart.md +19 -0
- docs/requirements.txt +7 -0
- docs/static/favicons/android-chrome-192x192.png +0 -0
- docs/static/favicons/android-chrome-512x512.png +0 -0
- docs/static/favicons/apple-touch-icon.png +0 -0
- docs/static/favicons/browserconfig.xml +9 -0
- docs/static/favicons/favicon-16x16.png +0 -0
- docs/static/favicons/favicon-32x32.png +0 -0
- docs/static/favicons/manifest.json +18 -0
- docs/static/favicons/mstile-150x150.png +0 -0
- docs/static/favicons/safari-pinned-tab.svg +32 -0
- docs/static/logo_blue.png +0 -0
- examples/create_entity.py +23 -16
- pkgs/argument_parser/_is_enum.py +1 -1
- pkgs/argument_parser/argument_parser.py +26 -19
- pkgs/serialization/serial_class.py +3 -3
- pkgs/serialization_util/_get_type_for_serialization.py +1 -3
- pkgs/serialization_util/serialization_helpers.py +1 -3
- pkgs/strenum_compat/strenum_compat.py +1 -9
- pkgs/type_spec/actions_registry/__init__.py +0 -0
- pkgs/type_spec/actions_registry/__main__.py +114 -0
- pkgs/type_spec/actions_registry/emit_typescript.py +120 -0
- pkgs/type_spec/builder.py +14 -10
- pkgs/type_spec/config.py +3 -2
- pkgs/type_spec/emit_python.py +54 -17
- pkgs/type_spec/emit_typescript.py +8 -9
- pkgs/type_spec/emit_typescript_util.py +1 -2
- pkgs/type_spec/load_types.py +2 -1
- pkgs/type_spec/open_api_util.py +2 -2
- pkgs/type_spec/parts/base.py.prepart +2 -1
- pkgs/type_spec/util.py +9 -9
- pkgs/type_spec/value_spec/__main__.py +2 -2
- pkgs/type_spec/value_spec/emit_python.py +1 -0
- type_spec/external/api/batch/execute_batch_load_async.yaml +18 -0
- type_spec/external/api/chemical/convert_chemical_formats.yaml +33 -0
- type_spec/external/api/entity/create_entities.yaml +1 -1
- type_spec/external/api/entity/create_entity.yaml +1 -1
- type_spec/external/api/id_source/list_id_source.yaml +35 -0
- type_spec/external/api/id_source/match_id_source.yaml +32 -0
- type_spec/external/api/recipe_links/create_recipe_link.yaml +25 -0
- type_spec/external/api/recipes/associate_recipe_as_input.yaml +19 -0
- type_spec/external/api/recipes/associate_recipe_as_lot.yaml +19 -0
- type_spec/external/api/recipes/create_recipe.yaml +38 -0
- type_spec/external/api/recipes/get_recipes_data.yaml +21 -21
- type_spec/external/api/recipes/set_recipe_inputs.yaml +6 -0
- type_spec/external/api/recipes/set_recipe_metadata.yaml +19 -0
- type_spec/external/api/triggers/run_trigger.yaml +18 -0
- uncountable/core/client.py +13 -14
- uncountable/types/__init__.py +30 -0
- uncountable/types/api/batch/execute_batch_load_async.py +35 -0
- uncountable/types/api/chemical/__init__.py +1 -0
- uncountable/types/api/chemical/convert_chemical_formats.py +50 -0
- uncountable/types/api/entity/create_entities.py +1 -1
- uncountable/types/api/entity/create_entity.py +1 -1
- uncountable/types/api/id_source/__init__.py +1 -0
- uncountable/types/api/id_source/list_id_source.py +46 -0
- uncountable/types/api/id_source/match_id_source.py +48 -0
- uncountable/types/api/recipe_links/__init__.py +1 -0
- uncountable/types/api/recipe_links/create_recipe_link.py +39 -0
- uncountable/types/api/recipes/associate_recipe_as_input.py +35 -0
- uncountable/types/api/recipes/associate_recipe_as_lot.py +36 -0
- uncountable/types/api/recipes/create_recipe.py +43 -0
- uncountable/types/api/recipes/set_recipe_inputs.py +2 -0
- uncountable/types/api/recipes/set_recipe_metadata.py +36 -0
- uncountable/types/api/triggers/__init__.py +1 -0
- uncountable/types/api/triggers/run_trigger.py +36 -0
- uncountable/types/async_batch.py +45 -0
- uncountable/types/base.py +2 -1
- uncountable/types/chemical_structure.py +27 -0
- uncountable/types/client_base.py +404 -2
- uncountable/types/id_source.py +49 -0
- uncountable/types/identifier.py +54 -0
- uncountable/types/recipe_identifiers.py +62 -0
- {UncountablePythonSDK-0.0.16.dist-info → UncountablePythonSDK-0.0.18.dist-info}/WHEEL +0 -0
uncountable/types/__init__.py
CHANGED
|
@@ -3,15 +3,23 @@
|
|
|
3
3
|
# ruff: noqa: E402
|
|
4
4
|
# fmt: off
|
|
5
5
|
# isort: skip_file
|
|
6
|
+
from .api.recipes import associate_recipe_as_input as associate_recipe_as_input_t
|
|
7
|
+
from .api.recipes import associate_recipe_as_lot as associate_recipe_as_lot_t
|
|
8
|
+
from . import async_batch as async_batch_t
|
|
6
9
|
from . import base as base_t
|
|
7
10
|
from . import calculations as calculations_t
|
|
11
|
+
from . import chemical_structure as chemical_structure_t
|
|
12
|
+
from .api.chemical import convert_chemical_formats as convert_chemical_formats_t
|
|
8
13
|
from .api.entity import create_entities as create_entities_t
|
|
9
14
|
from .api.entity import create_entity as create_entity_t
|
|
10
15
|
from .api.inputs import create_inputs as create_inputs_t
|
|
16
|
+
from .api.recipes import create_recipe as create_recipe_t
|
|
17
|
+
from .api.recipe_links import create_recipe_link as create_recipe_link_t
|
|
11
18
|
from .api.recipes import create_recipes as create_recipes_t
|
|
12
19
|
from . import curves as curves_t
|
|
13
20
|
from . import entity as entity_t
|
|
14
21
|
from .api.batch import execute_batch as execute_batch_t
|
|
22
|
+
from .api.batch import execute_batch_load_async as execute_batch_load_async_t
|
|
15
23
|
from . import experiment_groups as experiment_groups_t
|
|
16
24
|
from . import field_values as field_values_t
|
|
17
25
|
from . import fields as fields_t
|
|
@@ -31,11 +39,16 @@ from .api.recipe_metadata import get_recipe_metadata_data as get_recipe_metadata
|
|
|
31
39
|
from .api.recipes import get_recipe_names as get_recipe_names_t
|
|
32
40
|
from .api.recipes import get_recipe_output_metadata as get_recipe_output_metadata_t
|
|
33
41
|
from .api.recipes import get_recipes_data as get_recipes_data_t
|
|
42
|
+
from . import id_source as id_source_t
|
|
43
|
+
from . import identifier as identifier_t
|
|
34
44
|
from . import input_attributes as input_attributes_t
|
|
35
45
|
from . import inputs as inputs_t
|
|
36
46
|
from .api.entity import list_entities as list_entities_t
|
|
47
|
+
from .api.id_source import list_id_source as list_id_source_t
|
|
48
|
+
from .api.id_source import match_id_source as match_id_source_t
|
|
37
49
|
from . import outputs as outputs_t
|
|
38
50
|
from . import phases as phases_t
|
|
51
|
+
from . import recipe_identifiers as recipe_identifiers_t
|
|
39
52
|
from . import recipe_links as recipe_links_t
|
|
40
53
|
from . import recipe_metadata as recipe_metadata_t
|
|
41
54
|
from . import recipe_output_metadata as recipe_output_metadata_t
|
|
@@ -43,8 +56,10 @@ from . import recipe_tags as recipe_tags_t
|
|
|
43
56
|
from .api.entity import resolve_entity_ids as resolve_entity_ids_t
|
|
44
57
|
from .api.outputs import resolve_output_conditions as resolve_output_conditions_t
|
|
45
58
|
from . import response as response_t
|
|
59
|
+
from .api.triggers import run_trigger as run_trigger_t
|
|
46
60
|
from .api.inputs import set_input_attribute_values as set_input_attribute_values_t
|
|
47
61
|
from .api.recipes import set_recipe_inputs as set_recipe_inputs_t
|
|
62
|
+
from .api.recipes import set_recipe_metadata as set_recipe_metadata_t
|
|
48
63
|
from .api.recipes import set_recipe_outputs as set_recipe_outputs_t
|
|
49
64
|
from .api.entity import set_values as set_values_t
|
|
50
65
|
from . import units as units_t
|
|
@@ -53,15 +68,23 @@ from . import workflows as workflows_t
|
|
|
53
68
|
|
|
54
69
|
|
|
55
70
|
__all__: list[str] = [
|
|
71
|
+
"associate_recipe_as_input_t",
|
|
72
|
+
"associate_recipe_as_lot_t",
|
|
73
|
+
"async_batch_t",
|
|
56
74
|
"base_t",
|
|
57
75
|
"calculations_t",
|
|
76
|
+
"chemical_structure_t",
|
|
77
|
+
"convert_chemical_formats_t",
|
|
58
78
|
"create_entities_t",
|
|
59
79
|
"create_entity_t",
|
|
60
80
|
"create_inputs_t",
|
|
81
|
+
"create_recipe_t",
|
|
82
|
+
"create_recipe_link_t",
|
|
61
83
|
"create_recipes_t",
|
|
62
84
|
"curves_t",
|
|
63
85
|
"entity_t",
|
|
64
86
|
"execute_batch_t",
|
|
87
|
+
"execute_batch_load_async_t",
|
|
65
88
|
"experiment_groups_t",
|
|
66
89
|
"field_values_t",
|
|
67
90
|
"fields_t",
|
|
@@ -81,11 +104,16 @@ __all__: list[str] = [
|
|
|
81
104
|
"get_recipe_names_t",
|
|
82
105
|
"get_recipe_output_metadata_t",
|
|
83
106
|
"get_recipes_data_t",
|
|
107
|
+
"id_source_t",
|
|
108
|
+
"identifier_t",
|
|
84
109
|
"input_attributes_t",
|
|
85
110
|
"inputs_t",
|
|
86
111
|
"list_entities_t",
|
|
112
|
+
"list_id_source_t",
|
|
113
|
+
"match_id_source_t",
|
|
87
114
|
"outputs_t",
|
|
88
115
|
"phases_t",
|
|
116
|
+
"recipe_identifiers_t",
|
|
89
117
|
"recipe_links_t",
|
|
90
118
|
"recipe_metadata_t",
|
|
91
119
|
"recipe_output_metadata_t",
|
|
@@ -93,8 +121,10 @@ __all__: list[str] = [
|
|
|
93
121
|
"resolve_entity_ids_t",
|
|
94
122
|
"resolve_output_conditions_t",
|
|
95
123
|
"response_t",
|
|
124
|
+
"run_trigger_t",
|
|
96
125
|
"set_input_attribute_values_t",
|
|
97
126
|
"set_recipe_inputs_t",
|
|
127
|
+
"set_recipe_metadata_t",
|
|
98
128
|
"set_recipe_outputs_t",
|
|
99
129
|
"set_values_t",
|
|
100
130
|
"units_t",
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# flake8: noqa: F821
|
|
3
|
+
# ruff: noqa: E402
|
|
4
|
+
# fmt: off
|
|
5
|
+
# isort: skip_file
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
import typing # noqa: F401
|
|
8
|
+
import datetime # noqa: F401
|
|
9
|
+
from decimal import Decimal # noqa: F401
|
|
10
|
+
from dataclasses import dataclass
|
|
11
|
+
from ... import async_batch as async_batch_t
|
|
12
|
+
from ... import base as base_t
|
|
13
|
+
|
|
14
|
+
__all__: list[str] = [
|
|
15
|
+
"Arguments",
|
|
16
|
+
"Data",
|
|
17
|
+
"ENDPOINT_METHOD",
|
|
18
|
+
"ENDPOINT_PATH",
|
|
19
|
+
]
|
|
20
|
+
|
|
21
|
+
ENDPOINT_METHOD = "POST"
|
|
22
|
+
ENDPOINT_PATH = "api/external/batch/execute_batch_load_async"
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
26
|
+
@dataclass(kw_only=True)
|
|
27
|
+
class Arguments:
|
|
28
|
+
requests: list[async_batch_t.AsyncBatchRequest]
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
32
|
+
@dataclass(kw_only=True)
|
|
33
|
+
class Data:
|
|
34
|
+
job_id: base_t.ObjectId
|
|
35
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# flake8: noqa: F821
|
|
3
|
+
# ruff: noqa: E402
|
|
4
|
+
# fmt: off
|
|
5
|
+
# isort: skip_file
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
import typing # noqa: F401
|
|
8
|
+
import datetime # noqa: F401
|
|
9
|
+
from decimal import Decimal # noqa: F401
|
|
10
|
+
from dataclasses import dataclass
|
|
11
|
+
from pkgs.serialization import serial_class
|
|
12
|
+
from ... import base as base_t
|
|
13
|
+
|
|
14
|
+
__all__: list[str] = [
|
|
15
|
+
"Arguments",
|
|
16
|
+
"ChemicalStructureFile",
|
|
17
|
+
"Data",
|
|
18
|
+
"ENDPOINT_METHOD",
|
|
19
|
+
"ENDPOINT_PATH",
|
|
20
|
+
"UncountableChemicalStructure",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
ENDPOINT_METHOD = "POST"
|
|
24
|
+
ENDPOINT_PATH = "api/external/chemical/convert_chemical_formats"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
28
|
+
@dataclass(kw_only=True)
|
|
29
|
+
class ChemicalStructureFile:
|
|
30
|
+
struct_file: str
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
34
|
+
@dataclass(kw_only=True)
|
|
35
|
+
class Arguments:
|
|
36
|
+
source_chemical_structures: list[ChemicalStructureFile]
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
40
|
+
UncountableChemicalStructure = dict[str, base_t.JsonValue]
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
44
|
+
@serial_class(
|
|
45
|
+
unconverted_values={"chemical_structures"},
|
|
46
|
+
)
|
|
47
|
+
@dataclass(kw_only=True)
|
|
48
|
+
class Data:
|
|
49
|
+
chemical_structures: list[UncountableChemicalStructure]
|
|
50
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -34,7 +34,7 @@ class EntityToCreate:
|
|
|
34
34
|
@dataclass(kw_only=True)
|
|
35
35
|
class Arguments:
|
|
36
36
|
definition_id: base_t.ObjectId
|
|
37
|
-
entity_type: typing.Union[typing.Literal[entity_t.EntityType.LAB_REQUEST], typing.Literal[entity_t.EntityType.APPROVAL], typing.Literal[entity_t.EntityType.CUSTOM_ENTITY], typing.Literal[entity_t.EntityType.TASK], typing.Literal[entity_t.EntityType.PROJECT]]
|
|
37
|
+
entity_type: typing.Union[typing.Literal[entity_t.EntityType.LAB_REQUEST], typing.Literal[entity_t.EntityType.APPROVAL], typing.Literal[entity_t.EntityType.CUSTOM_ENTITY], typing.Literal[entity_t.EntityType.TASK], typing.Literal[entity_t.EntityType.PROJECT], typing.Literal[entity_t.EntityType.EQUIPMENT], typing.Literal[entity_t.EntityType.INV_LOCAL_LOCATIONS]]
|
|
38
38
|
entities_to_create: list[EntityToCreate]
|
|
39
39
|
|
|
40
40
|
|
|
@@ -40,7 +40,7 @@ class EntityFieldInitialValue:
|
|
|
40
40
|
@dataclass(kw_only=True)
|
|
41
41
|
class Arguments:
|
|
42
42
|
definition_id: base_t.ObjectId
|
|
43
|
-
entity_type: typing.Union[typing.Literal[entity_t.EntityType.LAB_REQUEST], typing.Literal[entity_t.EntityType.APPROVAL], typing.Literal[entity_t.EntityType.CUSTOM_ENTITY], typing.Literal[entity_t.EntityType.TASK], typing.Literal[entity_t.EntityType.PROJECT]]
|
|
43
|
+
entity_type: typing.Union[typing.Literal[entity_t.EntityType.LAB_REQUEST], typing.Literal[entity_t.EntityType.APPROVAL], typing.Literal[entity_t.EntityType.CUSTOM_ENTITY], typing.Literal[entity_t.EntityType.TASK], typing.Literal[entity_t.EntityType.PROJECT], typing.Literal[entity_t.EntityType.EQUIPMENT], typing.Literal[entity_t.EntityType.INV_LOCAL_LOCATIONS]]
|
|
44
44
|
field_values: typing.Optional[typing.Optional[list[field_values_t.FieldRefNameValue]]] = None
|
|
45
45
|
|
|
46
46
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# flake8: noqa: F821
|
|
3
|
+
# ruff: noqa: E402
|
|
4
|
+
# fmt: off
|
|
5
|
+
# isort: skip_file
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
import typing # noqa: F401
|
|
8
|
+
import datetime # noqa: F401
|
|
9
|
+
from decimal import Decimal # noqa: F401
|
|
10
|
+
from dataclasses import dataclass
|
|
11
|
+
from ... import base as base_t
|
|
12
|
+
from ... import id_source as id_source_t
|
|
13
|
+
|
|
14
|
+
__all__: list[str] = [
|
|
15
|
+
"Arguments",
|
|
16
|
+
"Data",
|
|
17
|
+
"ENDPOINT_METHOD",
|
|
18
|
+
"ENDPOINT_PATH",
|
|
19
|
+
"IdName",
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
ENDPOINT_METHOD = "GET"
|
|
23
|
+
ENDPOINT_PATH = "api/external/id_source/list_id_source"
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
27
|
+
@dataclass(kw_only=True)
|
|
28
|
+
class Arguments:
|
|
29
|
+
spec: id_source_t.IdSourceSpec
|
|
30
|
+
search_label: str
|
|
31
|
+
offset: typing.Optional[typing.Optional[int]] = None
|
|
32
|
+
limit: typing.Optional[typing.Optional[int]] = None
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
36
|
+
@dataclass(kw_only=True)
|
|
37
|
+
class IdName:
|
|
38
|
+
id: typing.Union[base_t.ObjectId, str]
|
|
39
|
+
name: str
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
43
|
+
@dataclass(kw_only=True)
|
|
44
|
+
class Data:
|
|
45
|
+
results: list[IdName]
|
|
46
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# flake8: noqa: F821
|
|
3
|
+
# ruff: noqa: E402
|
|
4
|
+
# fmt: off
|
|
5
|
+
# isort: skip_file
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
import typing # noqa: F401
|
|
8
|
+
import datetime # noqa: F401
|
|
9
|
+
from decimal import Decimal # noqa: F401
|
|
10
|
+
from dataclasses import dataclass
|
|
11
|
+
from pkgs.serialization import serial_class
|
|
12
|
+
from ... import base as base_t
|
|
13
|
+
from ... import id_source as id_source_t
|
|
14
|
+
|
|
15
|
+
__all__: list[str] = [
|
|
16
|
+
"Arguments",
|
|
17
|
+
"Data",
|
|
18
|
+
"ENDPOINT_METHOD",
|
|
19
|
+
"ENDPOINT_PATH",
|
|
20
|
+
"Match",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
ENDPOINT_METHOD = "GET"
|
|
24
|
+
ENDPOINT_PATH = "api/external/id_source/match_id_source"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
28
|
+
@dataclass(kw_only=True)
|
|
29
|
+
class Arguments:
|
|
30
|
+
spec: id_source_t.IdSourceSpec
|
|
31
|
+
names: list[str]
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
35
|
+
@dataclass(kw_only=True)
|
|
36
|
+
class Match:
|
|
37
|
+
name: str
|
|
38
|
+
ids: list[typing.Union[base_t.ObjectId, str]]
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
42
|
+
@serial_class(
|
|
43
|
+
unconverted_values={"results"},
|
|
44
|
+
)
|
|
45
|
+
@dataclass(kw_only=True)
|
|
46
|
+
class Data:
|
|
47
|
+
results: list[Match]
|
|
48
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# flake8: noqa: F821
|
|
3
|
+
# ruff: noqa: E402
|
|
4
|
+
# fmt: off
|
|
5
|
+
# isort: skip_file
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
import typing # noqa: F401
|
|
8
|
+
import datetime # noqa: F401
|
|
9
|
+
from decimal import Decimal # noqa: F401
|
|
10
|
+
from dataclasses import dataclass
|
|
11
|
+
from ... import async_batch as async_batch_t
|
|
12
|
+
from ... import identifier as identifier_t
|
|
13
|
+
from ... import recipe_links as recipe_links_t
|
|
14
|
+
|
|
15
|
+
__all__: list[str] = [
|
|
16
|
+
"Arguments",
|
|
17
|
+
"Data",
|
|
18
|
+
"ENDPOINT_METHOD",
|
|
19
|
+
"ENDPOINT_PATH",
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
ENDPOINT_METHOD = "POST"
|
|
23
|
+
ENDPOINT_PATH = "api/external/recipe_links/create_recipe_link"
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
27
|
+
@dataclass(kw_only=True)
|
|
28
|
+
class Arguments:
|
|
29
|
+
recipe_from_key: identifier_t.IdentifierKey
|
|
30
|
+
recipe_to_key: identifier_t.IdentifierKey
|
|
31
|
+
link_type: typing.Union[typing.Literal[recipe_links_t.RecipeLinkType.CHILD], typing.Literal[recipe_links_t.RecipeLinkType.CONTROL], typing.Literal[recipe_links_t.RecipeLinkType.USER_LINK]]
|
|
32
|
+
name: str
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
36
|
+
@dataclass(kw_only=True)
|
|
37
|
+
class Data(async_batch_t.AsyncBatchActionReturn):
|
|
38
|
+
pass
|
|
39
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# flake8: noqa: F821
|
|
3
|
+
# ruff: noqa: E402
|
|
4
|
+
# fmt: off
|
|
5
|
+
# isort: skip_file
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
import typing # noqa: F401
|
|
8
|
+
import datetime # noqa: F401
|
|
9
|
+
from decimal import Decimal # noqa: F401
|
|
10
|
+
from dataclasses import dataclass
|
|
11
|
+
from ... import base as base_t
|
|
12
|
+
from ... import identifier as identifier_t
|
|
13
|
+
|
|
14
|
+
__all__: list[str] = [
|
|
15
|
+
"Arguments",
|
|
16
|
+
"Data",
|
|
17
|
+
"ENDPOINT_METHOD",
|
|
18
|
+
"ENDPOINT_PATH",
|
|
19
|
+
]
|
|
20
|
+
|
|
21
|
+
ENDPOINT_METHOD = "POST"
|
|
22
|
+
ENDPOINT_PATH = "api/external/recipes/associate_recipe_as_input"
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
26
|
+
@dataclass(kw_only=True)
|
|
27
|
+
class Arguments:
|
|
28
|
+
recipe_key: identifier_t.IdentifierKey
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
32
|
+
@dataclass(kw_only=True)
|
|
33
|
+
class Data:
|
|
34
|
+
result_id: base_t.ObjectId
|
|
35
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# flake8: noqa: F821
|
|
3
|
+
# ruff: noqa: E402
|
|
4
|
+
# fmt: off
|
|
5
|
+
# isort: skip_file
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
import typing # noqa: F401
|
|
8
|
+
import datetime # noqa: F401
|
|
9
|
+
from decimal import Decimal # noqa: F401
|
|
10
|
+
from dataclasses import dataclass
|
|
11
|
+
from ... import async_batch as async_batch_t
|
|
12
|
+
from ... import identifier as identifier_t
|
|
13
|
+
|
|
14
|
+
__all__: list[str] = [
|
|
15
|
+
"Arguments",
|
|
16
|
+
"Data",
|
|
17
|
+
"ENDPOINT_METHOD",
|
|
18
|
+
"ENDPOINT_PATH",
|
|
19
|
+
]
|
|
20
|
+
|
|
21
|
+
ENDPOINT_METHOD = "POST"
|
|
22
|
+
ENDPOINT_PATH = "api/external/recipes/associate_recipe_as_lot"
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
26
|
+
@dataclass(kw_only=True)
|
|
27
|
+
class Arguments:
|
|
28
|
+
recipe_key: identifier_t.IdentifierKey
|
|
29
|
+
ingredient_key: identifier_t.IdentifierKey
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
33
|
+
@dataclass(kw_only=True)
|
|
34
|
+
class Data(async_batch_t.AsyncBatchActionReturn):
|
|
35
|
+
pass
|
|
36
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# flake8: noqa: F821
|
|
3
|
+
# ruff: noqa: E402
|
|
4
|
+
# fmt: off
|
|
5
|
+
# isort: skip_file
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
import typing # noqa: F401
|
|
8
|
+
import datetime # noqa: F401
|
|
9
|
+
from decimal import Decimal # noqa: F401
|
|
10
|
+
from dataclasses import dataclass
|
|
11
|
+
from ... import base as base_t
|
|
12
|
+
from ... import identifier as identifier_t
|
|
13
|
+
from ... import recipe_identifiers as recipe_identifiers_t
|
|
14
|
+
from ... import recipe_metadata as recipe_metadata_t
|
|
15
|
+
|
|
16
|
+
__all__: list[str] = [
|
|
17
|
+
"Arguments",
|
|
18
|
+
"Data",
|
|
19
|
+
"ENDPOINT_METHOD",
|
|
20
|
+
"ENDPOINT_PATH",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
ENDPOINT_METHOD = "POST"
|
|
24
|
+
ENDPOINT_PATH = "api/external/recipes/create_recipe"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
28
|
+
@dataclass(kw_only=True)
|
|
29
|
+
class Arguments:
|
|
30
|
+
material_family_id: base_t.ObjectId
|
|
31
|
+
workflow_id: base_t.ObjectId
|
|
32
|
+
identifiers: recipe_identifiers_t.RecipeIdentifiers
|
|
33
|
+
name: typing.Optional[str] = None
|
|
34
|
+
workflow_variant_id: typing.Optional[typing.Optional[base_t.ObjectId]] = None
|
|
35
|
+
recipe_metadata: typing.Optional[list[recipe_metadata_t.MetadataValue]] = None
|
|
36
|
+
definition_key: typing.Optional[identifier_t.IdentifierKey] = None
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
40
|
+
@dataclass(kw_only=True)
|
|
41
|
+
class Data:
|
|
42
|
+
result_id: base_t.ObjectId
|
|
43
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -35,6 +35,8 @@ class RecipeInputValue:
|
|
|
35
35
|
value_numeric: typing.Optional[Decimal] = None
|
|
36
36
|
value_str: typing.Optional[str] = None
|
|
37
37
|
set_actual_value: typing.Optional[bool] = None
|
|
38
|
+
lot_recipe_id: typing.Optional[base_t.ObjectId] = None
|
|
39
|
+
remove: typing.Optional[bool] = None
|
|
38
40
|
|
|
39
41
|
|
|
40
42
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# flake8: noqa: F821
|
|
3
|
+
# ruff: noqa: E402
|
|
4
|
+
# fmt: off
|
|
5
|
+
# isort: skip_file
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
import typing # noqa: F401
|
|
8
|
+
import datetime # noqa: F401
|
|
9
|
+
from decimal import Decimal # noqa: F401
|
|
10
|
+
from dataclasses import dataclass
|
|
11
|
+
from ... import identifier as identifier_t
|
|
12
|
+
from ... import recipe_metadata as recipe_metadata_t
|
|
13
|
+
|
|
14
|
+
__all__: list[str] = [
|
|
15
|
+
"Arguments",
|
|
16
|
+
"Data",
|
|
17
|
+
"ENDPOINT_METHOD",
|
|
18
|
+
"ENDPOINT_PATH",
|
|
19
|
+
]
|
|
20
|
+
|
|
21
|
+
ENDPOINT_METHOD = "POST"
|
|
22
|
+
ENDPOINT_PATH = "api/external/recipes/set_recipe_metadata"
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
26
|
+
@dataclass(kw_only=True)
|
|
27
|
+
class Arguments:
|
|
28
|
+
recipe_key: identifier_t.IdentifierKey
|
|
29
|
+
recipe_metadata: list[recipe_metadata_t.MetadataValue]
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
33
|
+
@dataclass(kw_only=True)
|
|
34
|
+
class Data:
|
|
35
|
+
pass
|
|
36
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# flake8: noqa: F821
|
|
3
|
+
# ruff: noqa: E402
|
|
4
|
+
# fmt: off
|
|
5
|
+
# isort: skip_file
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
import typing # noqa: F401
|
|
8
|
+
import datetime # noqa: F401
|
|
9
|
+
from decimal import Decimal # noqa: F401
|
|
10
|
+
from dataclasses import dataclass
|
|
11
|
+
from ... import entity as entity_t
|
|
12
|
+
from ... import response as response_t
|
|
13
|
+
|
|
14
|
+
__all__: list[str] = [
|
|
15
|
+
"Arguments",
|
|
16
|
+
"Data",
|
|
17
|
+
"ENDPOINT_METHOD",
|
|
18
|
+
"ENDPOINT_PATH",
|
|
19
|
+
]
|
|
20
|
+
|
|
21
|
+
ENDPOINT_METHOD = "POST"
|
|
22
|
+
ENDPOINT_PATH = "api/external/triggers/run_trigger"
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
26
|
+
@dataclass(kw_only=True)
|
|
27
|
+
class Arguments:
|
|
28
|
+
trigger_ref_name: str
|
|
29
|
+
entity: typing.Optional[entity_t.Entity] = None
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
33
|
+
@dataclass(kw_only=True)
|
|
34
|
+
class Data(response_t.Response):
|
|
35
|
+
pass
|
|
36
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# flake8: noqa: F821
|
|
3
|
+
# ruff: noqa: E402
|
|
4
|
+
# fmt: off
|
|
5
|
+
# isort: skip_file
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
import typing # noqa: F401
|
|
8
|
+
import datetime # noqa: F401
|
|
9
|
+
from decimal import Decimal # noqa: F401
|
|
10
|
+
from pkgs.strenum_compat import StrEnum
|
|
11
|
+
from dataclasses import dataclass
|
|
12
|
+
from pkgs.serialization import serial_class
|
|
13
|
+
from . import base as base_t
|
|
14
|
+
|
|
15
|
+
__all__: list[str] = [
|
|
16
|
+
"AsyncBatchActionReturn",
|
|
17
|
+
"AsyncBatchRequest",
|
|
18
|
+
"AsyncBatchRequestPath",
|
|
19
|
+
]
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
23
|
+
class AsyncBatchRequestPath(StrEnum):
|
|
24
|
+
CREATE_RECIPE = "recipes/create_recipe"
|
|
25
|
+
SET_RECIPE_METADATA = "recipes/set_recipe_metadata"
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
29
|
+
@serial_class(
|
|
30
|
+
unconverted_values={"data"},
|
|
31
|
+
)
|
|
32
|
+
@dataclass(kw_only=True)
|
|
33
|
+
class AsyncBatchRequest:
|
|
34
|
+
path: AsyncBatchRequestPath
|
|
35
|
+
data: base_t.JsonValue
|
|
36
|
+
batch_reference: str
|
|
37
|
+
depends_on: typing.Optional[list[str]] = None
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
41
|
+
@dataclass(kw_only=True)
|
|
42
|
+
class AsyncBatchActionReturn:
|
|
43
|
+
modification_made: bool
|
|
44
|
+
result_id: typing.Optional[base_t.ObjectId] = None
|
|
45
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
uncountable/types/base.py
CHANGED
|
@@ -18,7 +18,8 @@ __all__: list[str] = [
|
|
|
18
18
|
"""
|
|
19
19
|
Types that type_spec will use in the emitted files.
|
|
20
20
|
"""
|
|
21
|
-
from typing import Union,
|
|
21
|
+
from typing import Union, Any, TYPE_CHECKING
|
|
22
|
+
from collections.abc import Mapping, Sequence
|
|
22
23
|
|
|
23
24
|
# These two are part of the core output, thus don't duplicate here
|
|
24
25
|
# from decimal import Decimal
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# flake8: noqa: F821
|
|
3
|
+
# ruff: noqa: E402
|
|
4
|
+
# fmt: off
|
|
5
|
+
# isort: skip_file
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
import typing # noqa: F401
|
|
8
|
+
import datetime # noqa: F401
|
|
9
|
+
from decimal import Decimal # noqa: F401
|
|
10
|
+
from dataclasses import dataclass
|
|
11
|
+
from pkgs.serialization import serial_class
|
|
12
|
+
|
|
13
|
+
__all__: list[str] = [
|
|
14
|
+
"ChemicalStructure",
|
|
15
|
+
]
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
19
|
+
@serial_class(
|
|
20
|
+
to_string_values={"molecular_weight"},
|
|
21
|
+
)
|
|
22
|
+
@dataclass(kw_only=True)
|
|
23
|
+
class ChemicalStructure:
|
|
24
|
+
ketcher_file: typing.Optional[str] = None
|
|
25
|
+
gross_formula: typing.Optional[str] = None
|
|
26
|
+
molecular_weight: typing.Optional[Decimal] = None
|
|
27
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|