UncountablePythonSDK 0.0.91__py3-none-any.whl → 0.0.93__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.91.dist-info → UncountablePythonSDK-0.0.93.dist-info}/METADATA +2 -2
- UncountablePythonSDK-0.0.93.dist-info/RECORD +301 -0
- {UncountablePythonSDK-0.0.91.dist-info → UncountablePythonSDK-0.0.93.dist-info}/WHEEL +1 -1
- examples/set_recipe_metadata_file.py +1 -1
- examples/upload_files.py +1 -2
- pkgs/argument_parser/__init__.py +3 -0
- pkgs/argument_parser/argument_parser.py +52 -23
- pkgs/filesystem_utils/__init__.py +1 -0
- pkgs/filesystem_utils/_gdrive_session.py +4 -4
- pkgs/filesystem_utils/_s3_session.py +2 -1
- pkgs/filesystem_utils/_sftp_session.py +2 -3
- pkgs/filesystem_utils/file_type_utils.py +10 -10
- pkgs/serialization/annotation.py +5 -5
- pkgs/serialization/missing_sentry.py +1 -1
- pkgs/serialization/serial_alias.py +3 -3
- pkgs/serialization/serial_class.py +10 -10
- pkgs/serialization/serial_generic.py +1 -1
- pkgs/serialization/serial_union.py +10 -10
- pkgs/serialization_util/__init__.py +2 -0
- pkgs/serialization_util/serialization_helpers.py +1 -4
- pkgs/type_spec/actions_registry/__main__.py +0 -4
- pkgs/type_spec/builder.py +121 -40
- pkgs/type_spec/config.py +10 -5
- pkgs/type_spec/emit_open_api.py +2 -2
- pkgs/type_spec/emit_open_api_util.py +1 -1
- pkgs/type_spec/emit_python.py +145 -63
- pkgs/type_spec/emit_typescript.py +57 -10
- pkgs/type_spec/load_types.py +1 -2
- pkgs/type_spec/open_api_util.py +1 -2
- pkgs/type_spec/parts/base.py.prepart +2 -0
- pkgs/type_spec/type_info/emit_type_info.py +8 -8
- pkgs/type_spec/util.py +5 -7
- pkgs/type_spec/value_spec/__main__.py +15 -5
- pkgs/type_spec/value_spec/emit_python.py +5 -2
- pkgs/type_spec/value_spec/types.py +1 -1
- uncountable/core/client.py +16 -15
- uncountable/core/file_upload.py +39 -15
- uncountable/integration/construct_client.py +3 -3
- uncountable/integration/executors/generic_upload_executor.py +1 -1
- uncountable/integration/job.py +2 -2
- uncountable/integration/queue_runner/command_server/types.py +1 -1
- uncountable/integration/queue_runner/worker.py +1 -1
- uncountable/integration/server.py +4 -4
- uncountable/integration/telemetry.py +11 -0
- uncountable/types/__init__.py +0 -1
- uncountable/types/api/batch/execute_batch.py +1 -2
- uncountable/types/api/batch/execute_batch_load_async.py +0 -1
- uncountable/types/api/chemical/convert_chemical_formats.py +0 -1
- uncountable/types/api/entity/create_entities.py +3 -4
- uncountable/types/api/entity/create_entity.py +4 -5
- uncountable/types/api/entity/get_entities_data.py +0 -1
- uncountable/types/api/entity/grant_entity_permissions.py +3 -4
- uncountable/types/api/entity/list_entities.py +5 -6
- uncountable/types/api/entity/lock_entity.py +1 -2
- uncountable/types/api/entity/resolve_entity_ids.py +2 -3
- uncountable/types/api/entity/set_entity_field_values.py +0 -1
- uncountable/types/api/entity/set_values.py +0 -1
- uncountable/types/api/entity/transition_entity_phase.py +1 -2
- uncountable/types/api/entity/unlock_entity.py +0 -1
- uncountable/types/api/equipment/associate_equipment_input.py +0 -1
- uncountable/types/api/field_options/upsert_field_options.py +3 -4
- uncountable/types/api/files/download_file.py +1 -2
- uncountable/types/api/id_source/list_id_source.py +3 -4
- uncountable/types/api/id_source/match_id_source.py +1 -2
- uncountable/types/api/input_groups/get_input_group_names.py +0 -1
- uncountable/types/api/inputs/create_inputs.py +4 -5
- uncountable/types/api/inputs/get_input_data.py +5 -6
- uncountable/types/api/inputs/get_input_names.py +3 -4
- uncountable/types/api/inputs/get_inputs_data.py +0 -1
- uncountable/types/api/inputs/set_input_attribute_values.py +2 -3
- uncountable/types/api/inputs/set_input_category.py +2 -3
- uncountable/types/api/inputs/set_input_subcategories.py +0 -1
- uncountable/types/api/inputs/set_intermediate_type.py +1 -2
- uncountable/types/api/material_families/update_entity_material_families.py +1 -2
- uncountable/types/api/outputs/get_output_data.py +6 -7
- uncountable/types/api/outputs/get_output_names.py +2 -3
- uncountable/types/api/outputs/resolve_output_conditions.py +2 -3
- uncountable/types/api/permissions/set_core_permissions.py +3 -4
- uncountable/types/api/project/get_projects.py +3 -4
- uncountable/types/api/project/get_projects_data.py +4 -5
- uncountable/types/api/recipe_links/create_recipe_link.py +1 -2
- uncountable/types/api/recipe_links/remove_recipe_link.py +1 -2
- uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +3 -4
- uncountable/types/api/recipes/add_recipe_to_project.py +0 -1
- uncountable/types/api/recipes/archive_recipes.py +1 -2
- uncountable/types/api/recipes/associate_recipe_as_input.py +2 -3
- uncountable/types/api/recipes/associate_recipe_as_lot.py +0 -1
- uncountable/types/api/recipes/clear_recipe_outputs.py +0 -1
- uncountable/types/api/recipes/create_recipe.py +6 -7
- uncountable/types/api/recipes/create_recipes.py +4 -5
- uncountable/types/api/recipes/disassociate_recipe_as_input.py +0 -1
- uncountable/types/api/recipes/edit_recipe_inputs.py +9 -10
- uncountable/types/api/recipes/get_column_calculation_values.py +1 -2
- uncountable/types/api/recipes/get_curve.py +2 -3
- uncountable/types/api/recipes/get_recipe_calculations.py +3 -4
- uncountable/types/api/recipes/get_recipe_links.py +1 -2
- uncountable/types/api/recipes/get_recipe_names.py +0 -1
- uncountable/types/api/recipes/get_recipe_output_metadata.py +0 -1
- uncountable/types/api/recipes/get_recipes_data.py +22 -23
- uncountable/types/api/recipes/lock_recipes.py +3 -4
- uncountable/types/api/recipes/remove_recipe_from_project.py +0 -1
- uncountable/types/api/recipes/set_recipe_inputs.py +6 -7
- uncountable/types/api/recipes/set_recipe_metadata.py +0 -1
- uncountable/types/api/recipes/set_recipe_output_annotations.py +5 -6
- uncountable/types/api/recipes/set_recipe_output_file.py +2 -3
- uncountable/types/api/recipes/set_recipe_outputs.py +8 -9
- uncountable/types/api/recipes/set_recipe_tags.py +2 -3
- uncountable/types/api/recipes/unarchive_recipes.py +0 -1
- uncountable/types/api/recipes/unlock_recipes.py +2 -3
- uncountable/types/api/triggers/run_trigger.py +1 -2
- uncountable/types/api/uploader/invoke_uploader.py +2 -3
- uncountable/types/async_batch.py +0 -1
- uncountable/types/async_batch_processor.py +23 -24
- uncountable/types/async_batch_t.py +5 -6
- uncountable/types/async_jobs.py +0 -1
- uncountable/types/async_jobs_t.py +1 -2
- uncountable/types/auth_retrieval.py +0 -1
- uncountable/types/auth_retrieval_t.py +2 -3
- uncountable/types/base.py +0 -1
- uncountable/types/base_t.py +2 -1
- uncountable/types/calculations.py +0 -1
- uncountable/types/calculations_t.py +0 -1
- uncountable/types/chemical_structure.py +0 -1
- uncountable/types/chemical_structure_t.py +3 -4
- uncountable/types/client_base.py +65 -66
- uncountable/types/client_config.py +0 -1
- uncountable/types/client_config_t.py +1 -2
- uncountable/types/curves.py +0 -1
- uncountable/types/curves_t.py +4 -5
- uncountable/types/entity.py +0 -1
- uncountable/types/entity_t.py +3 -4
- uncountable/types/experiment_groups.py +0 -1
- uncountable/types/experiment_groups_t.py +0 -1
- uncountable/types/field_values.py +0 -1
- uncountable/types/field_values_t.py +6 -7
- uncountable/types/fields.py +0 -1
- uncountable/types/fields_t.py +0 -1
- uncountable/types/generic_upload.py +0 -1
- uncountable/types/generic_upload_t.py +7 -8
- uncountable/types/id_source.py +0 -1
- uncountable/types/id_source_t.py +2 -3
- uncountable/types/identifier.py +0 -1
- uncountable/types/identifier_t.py +1 -2
- uncountable/types/input_attributes.py +0 -1
- uncountable/types/input_attributes_t.py +2 -3
- uncountable/types/inputs.py +0 -1
- uncountable/types/inputs_t.py +2 -3
- uncountable/types/integration_server.py +0 -1
- uncountable/types/integration_server_t.py +2 -3
- uncountable/types/job_definition.py +0 -1
- uncountable/types/job_definition_t.py +16 -17
- uncountable/types/outputs.py +0 -1
- uncountable/types/outputs_t.py +1 -2
- uncountable/types/overrides.py +0 -1
- uncountable/types/overrides_t.py +0 -1
- uncountable/types/permissions.py +0 -1
- uncountable/types/permissions_t.py +1 -2
- uncountable/types/phases.py +0 -1
- uncountable/types/phases_t.py +0 -1
- uncountable/types/post_base.py +0 -1
- uncountable/types/post_base_t.py +1 -2
- uncountable/types/queued_job.py +0 -1
- uncountable/types/queued_job_t.py +2 -3
- uncountable/types/recipe_identifiers.py +0 -1
- uncountable/types/recipe_identifiers_t.py +3 -4
- uncountable/types/recipe_inputs.py +0 -1
- uncountable/types/recipe_inputs_t.py +1 -2
- uncountable/types/recipe_links.py +0 -1
- uncountable/types/recipe_links_t.py +2 -3
- uncountable/types/recipe_metadata.py +0 -1
- uncountable/types/recipe_metadata_t.py +6 -7
- uncountable/types/recipe_output_metadata.py +0 -1
- uncountable/types/recipe_output_metadata_t.py +0 -1
- uncountable/types/recipe_tags.py +0 -1
- uncountable/types/recipe_tags_t.py +0 -1
- uncountable/types/recipe_workflow_steps.py +0 -1
- uncountable/types/recipe_workflow_steps_t.py +2 -3
- uncountable/types/recipes.py +0 -1
- uncountable/types/recipes_t.py +0 -1
- uncountable/types/response.py +0 -1
- uncountable/types/response_t.py +0 -1
- uncountable/types/secret_retrieval.py +0 -1
- uncountable/types/secret_retrieval_t.py +3 -4
- uncountable/types/units.py +0 -1
- uncountable/types/units_t.py +0 -1
- uncountable/types/users.py +0 -1
- uncountable/types/users_t.py +0 -1
- uncountable/types/webhook_job.py +0 -1
- uncountable/types/webhook_job_t.py +0 -1
- uncountable/types/workflows.py +0 -1
- uncountable/types/workflows_t.py +1 -2
- UncountablePythonSDK-0.0.91.dist-info/RECORD +0 -301
- {UncountablePythonSDK-0.0.91.dist-info → UncountablePythonSDK-0.0.93.dist-info}/top_level.txt +0 -0
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -45,7 +44,7 @@ class RecipeColumnCalculationValue:
|
|
|
45
44
|
ingredient_id: base_t.ObjectId
|
|
46
45
|
recipe_step_id: base_t.ObjectId
|
|
47
46
|
recipe_input_id: base_t.ObjectId
|
|
48
|
-
calculation_quantity:
|
|
47
|
+
calculation_quantity: Decimal | None = None
|
|
49
48
|
|
|
50
49
|
|
|
51
50
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -29,8 +28,8 @@ ENDPOINT_PATH = "api/external/recipes/external_get_curve"
|
|
|
29
28
|
)
|
|
30
29
|
@dataclasses.dataclass(kw_only=True)
|
|
31
30
|
class Arguments:
|
|
32
|
-
recipe_output_id:
|
|
33
|
-
recipe_input_id:
|
|
31
|
+
recipe_output_id: base_t.ObjectId | None = None
|
|
32
|
+
recipe_input_id: base_t.ObjectId | None = None
|
|
34
33
|
|
|
35
34
|
|
|
36
35
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -31,7 +30,7 @@ ENDPOINT_PATH = "api/external/recipes/external_get_recipe_calculations"
|
|
|
31
30
|
@dataclasses.dataclass(kw_only=True)
|
|
32
31
|
class Arguments:
|
|
33
32
|
recipe_ids: list[base_t.ObjectId]
|
|
34
|
-
calculation_ids:
|
|
33
|
+
calculation_ids: list[base_t.ObjectId] | None = None
|
|
35
34
|
|
|
36
35
|
|
|
37
36
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -44,8 +43,8 @@ class Arguments:
|
|
|
44
43
|
class RecipeCalculation:
|
|
45
44
|
recipe_id: base_t.ObjectId
|
|
46
45
|
calculation_id: base_t.ObjectId
|
|
47
|
-
quantity_dec:
|
|
48
|
-
quantity_json:
|
|
46
|
+
quantity_dec: Decimal | None = None
|
|
47
|
+
quantity_json: base_t.JsonValue | None = None
|
|
49
48
|
|
|
50
49
|
|
|
51
50
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -31,7 +30,7 @@ ENDPOINT_PATH = "api/external/recipes/external_get_recipe_links"
|
|
|
31
30
|
class Arguments:
|
|
32
31
|
recipe_ids: list[base_t.ObjectId]
|
|
33
32
|
depth: int = 1
|
|
34
|
-
link_types:
|
|
33
|
+
link_types: list[recipe_links_t.RecipeLinkType] | None
|
|
35
34
|
|
|
36
35
|
|
|
37
36
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -43,10 +42,10 @@ ENDPOINT_PATH = "api/external/recipes/external_get_recipes_data"
|
|
|
43
42
|
)
|
|
44
43
|
@dataclasses.dataclass(kw_only=True)
|
|
45
44
|
class Arguments:
|
|
46
|
-
recipe_ids:
|
|
47
|
-
project_id:
|
|
48
|
-
offset:
|
|
49
|
-
limit:
|
|
45
|
+
recipe_ids: list[base_t.ObjectId] | None = None
|
|
46
|
+
project_id: base_t.ObjectId | None = None
|
|
47
|
+
offset: int | None = None
|
|
48
|
+
limit: int | None = None
|
|
50
49
|
|
|
51
50
|
|
|
52
51
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -61,9 +60,9 @@ class RecipeOutput:
|
|
|
61
60
|
output_id: base_t.ObjectId
|
|
62
61
|
replicate_num: int
|
|
63
62
|
quantity_json: base_t.JsonValue
|
|
64
|
-
curve_id:
|
|
65
|
-
output_condition_id:
|
|
66
|
-
quantity_dec:
|
|
63
|
+
curve_id: base_t.ObjectId | None
|
|
64
|
+
output_condition_id: base_t.ObjectId | None
|
|
65
|
+
quantity_dec: Decimal | None = None
|
|
67
66
|
|
|
68
67
|
|
|
69
68
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -77,7 +76,7 @@ class ConditionParameterValue:
|
|
|
77
76
|
condition_parameter_id: base_t.ObjectId
|
|
78
77
|
condition_parameter_name: str
|
|
79
78
|
quantity_json: base_t.JsonValue
|
|
80
|
-
quantity_dec:
|
|
79
|
+
quantity_dec: Decimal | None = None
|
|
81
80
|
|
|
82
81
|
|
|
83
82
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -100,15 +99,15 @@ class SimpleOutputCondition:
|
|
|
100
99
|
class RecipeInput:
|
|
101
100
|
id: base_t.ObjectId
|
|
102
101
|
input_id: base_t.ObjectId
|
|
103
|
-
input_lot_recipe_id:
|
|
102
|
+
input_lot_recipe_id: base_t.ObjectId | None
|
|
104
103
|
recipe_step_id: base_t.ObjectId
|
|
105
104
|
quantity_json: base_t.JsonValue
|
|
106
|
-
curve_id:
|
|
105
|
+
curve_id: base_t.ObjectId | None
|
|
107
106
|
actual_quantity_json: base_t.JsonValue
|
|
108
107
|
behavior: str
|
|
109
|
-
ingredient_role_id:
|
|
110
|
-
quantity_dec:
|
|
111
|
-
actual_quantity_dec:
|
|
108
|
+
ingredient_role_id: base_t.ObjectId | None
|
|
109
|
+
quantity_dec: Decimal | None = None
|
|
110
|
+
actual_quantity_dec: Decimal | None = None
|
|
112
111
|
|
|
113
112
|
|
|
114
113
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -117,10 +116,10 @@ class RecipeInput:
|
|
|
117
116
|
)
|
|
118
117
|
@dataclasses.dataclass(kw_only=True)
|
|
119
118
|
class RecipeStep:
|
|
120
|
-
name:
|
|
119
|
+
name: str | None
|
|
121
120
|
recipe_step_id: base_t.ObjectId
|
|
122
121
|
recipe_step_number: int
|
|
123
|
-
instructions:
|
|
122
|
+
instructions: str | None = None
|
|
124
123
|
|
|
125
124
|
|
|
126
125
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -129,7 +128,7 @@ class RecipeStep:
|
|
|
129
128
|
)
|
|
130
129
|
@dataclasses.dataclass(kw_only=True)
|
|
131
130
|
class RecipeStepGroup:
|
|
132
|
-
name:
|
|
131
|
+
name: str | None
|
|
133
132
|
recipe_steps: list[RecipeStep]
|
|
134
133
|
|
|
135
134
|
|
|
@@ -152,11 +151,11 @@ class RecipeWorkflowStep:
|
|
|
152
151
|
@dataclasses.dataclass(kw_only=True)
|
|
153
152
|
class RecipeStepRelationship:
|
|
154
153
|
step_relationship_id: base_t.ObjectId
|
|
155
|
-
name:
|
|
154
|
+
name: str | None
|
|
156
155
|
source_recipe_workflow_step_id: base_t.ObjectId
|
|
157
156
|
target_recipe_step_id: base_t.ObjectId
|
|
158
|
-
quantity_dec:
|
|
159
|
-
actual_quantity_dec:
|
|
157
|
+
quantity_dec: Decimal | None = None
|
|
158
|
+
actual_quantity_dec: Decimal | None = None
|
|
160
159
|
|
|
161
160
|
|
|
162
161
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -169,7 +168,7 @@ class Recipe:
|
|
|
169
168
|
create_datetime: str
|
|
170
169
|
last_modified_datetime: str
|
|
171
170
|
name: str
|
|
172
|
-
notes:
|
|
171
|
+
notes: str | None
|
|
173
172
|
workflow_id: base_t.ObjectId
|
|
174
173
|
metadata: list[recipe_metadata_t.RecipeMetadata]
|
|
175
174
|
inputs: list[RecipeInput]
|
|
@@ -178,8 +177,8 @@ class Recipe:
|
|
|
178
177
|
tag_ids: list[base_t.ObjectId]
|
|
179
178
|
experiment_group_ids: list[base_t.ObjectId]
|
|
180
179
|
step_relationships: list[RecipeStepRelationship]
|
|
181
|
-
creating_user_id:
|
|
182
|
-
barcode_value:
|
|
180
|
+
creating_user_id: base_t.ObjectId | None = None
|
|
181
|
+
barcode_value: str | None = None
|
|
183
182
|
|
|
184
183
|
|
|
185
184
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -7,7 +6,7 @@ from __future__ import annotations
|
|
|
7
6
|
import typing # noqa: F401
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
|
-
from
|
|
9
|
+
from enum import StrEnum
|
|
11
10
|
import dataclasses
|
|
12
11
|
from pkgs.serialization import serial_class
|
|
13
12
|
from ... import identifier_t
|
|
@@ -49,8 +48,8 @@ class Arguments:
|
|
|
49
48
|
type: RecipeLockType = RecipeLockType.ALL
|
|
50
49
|
recipes: list[identifier_t.IdentifierKey]
|
|
51
50
|
globally_removable: bool
|
|
52
|
-
lock_samples:
|
|
53
|
-
comments:
|
|
51
|
+
lock_samples: bool | None = None
|
|
52
|
+
comments: str | None = None
|
|
54
53
|
|
|
55
54
|
|
|
56
55
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -32,12 +31,12 @@ ENDPOINT_PATH = "api/external/recipes/external_set_recipe_inputs"
|
|
|
32
31
|
class RecipeInputValue:
|
|
33
32
|
recipe_id: base_t.ObjectId
|
|
34
33
|
input_id: base_t.ObjectId
|
|
35
|
-
recipe_step_id:
|
|
36
|
-
value_numeric:
|
|
37
|
-
value_str:
|
|
38
|
-
set_actual_value:
|
|
39
|
-
lot_recipe_id:
|
|
40
|
-
remove:
|
|
34
|
+
recipe_step_id: base_t.ObjectId | None = None
|
|
35
|
+
value_numeric: Decimal | None = None
|
|
36
|
+
value_str: str | None = None
|
|
37
|
+
set_actual_value: bool | None = None
|
|
38
|
+
lot_recipe_id: base_t.ObjectId | None = None
|
|
39
|
+
remove: bool | None = None
|
|
41
40
|
|
|
42
41
|
|
|
43
42
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -7,7 +6,7 @@ from __future__ import annotations
|
|
|
7
6
|
import typing # noqa: F401
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
|
-
from
|
|
9
|
+
from enum import StrEnum
|
|
11
10
|
import dataclasses
|
|
12
11
|
from pkgs.serialization import serial_class
|
|
13
12
|
from pkgs.serialization import serial_union_annotation
|
|
@@ -39,8 +38,8 @@ ENDPOINT_PATH = "api/external/recipes/set_recipe_output_annotations"
|
|
|
39
38
|
@dataclasses.dataclass(kw_only=True)
|
|
40
39
|
class AnnotationEdit:
|
|
41
40
|
annotation_type_key: identifier_t.IdentifierKey
|
|
42
|
-
lower_value:
|
|
43
|
-
upper_value:
|
|
41
|
+
lower_value: Decimal | None = None
|
|
42
|
+
upper_value: Decimal | None = None
|
|
44
43
|
|
|
45
44
|
|
|
46
45
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -59,7 +58,7 @@ class RecipeOutputEditBase:
|
|
|
59
58
|
output_id: base_t.ObjectId
|
|
60
59
|
experiment_num: int
|
|
61
60
|
annotations: list[AnnotationEdit]
|
|
62
|
-
condition_id:
|
|
61
|
+
condition_id: base_t.ObjectId | None = None
|
|
63
62
|
|
|
64
63
|
|
|
65
64
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -84,7 +83,7 @@ class RecipeOutputReplaceAnnotations(RecipeOutputEditBase):
|
|
|
84
83
|
|
|
85
84
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
86
85
|
RecipeOutputUpdateAnnotations = typing.Annotated[
|
|
87
|
-
|
|
86
|
+
RecipeOutputMergeAnnotations | RecipeOutputReplaceAnnotations,
|
|
88
87
|
serial_union_annotation(
|
|
89
88
|
named_type_path="sdk.api.recipes.set_recipe_output_annotations.RecipeOutputUpdateAnnotations",
|
|
90
89
|
discriminator="type",
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -33,8 +32,8 @@ class RecipeOutputFileValue:
|
|
|
33
32
|
recipe_id: base_t.ObjectId
|
|
34
33
|
output_id: base_t.ObjectId
|
|
35
34
|
experiment_num: int
|
|
36
|
-
condition_id:
|
|
37
|
-
file_id:
|
|
35
|
+
condition_id: base_t.ObjectId | None = None
|
|
36
|
+
file_id: base_t.ObjectId | None = None
|
|
38
37
|
|
|
39
38
|
|
|
40
39
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -33,8 +32,8 @@ ENDPOINT_PATH = "api/external/recipes/external_set_recipe_outputs"
|
|
|
33
32
|
)
|
|
34
33
|
@dataclasses.dataclass(kw_only=True)
|
|
35
34
|
class CurveValues:
|
|
36
|
-
x_values: list[
|
|
37
|
-
y_values: list[
|
|
35
|
+
x_values: list[Decimal | None]
|
|
36
|
+
y_values: list[Decimal | None]
|
|
38
37
|
|
|
39
38
|
|
|
40
39
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -47,12 +46,12 @@ class RecipeOutputValue:
|
|
|
47
46
|
recipe_id: base_t.ObjectId
|
|
48
47
|
output_id: base_t.ObjectId
|
|
49
48
|
experiment_num: int
|
|
50
|
-
condition_id:
|
|
51
|
-
value_numeric:
|
|
52
|
-
value_str:
|
|
53
|
-
value_curve:
|
|
54
|
-
formatting:
|
|
55
|
-
field_values:
|
|
49
|
+
condition_id: base_t.ObjectId | None = None
|
|
50
|
+
value_numeric: Decimal | None = None
|
|
51
|
+
value_str: str | None = None
|
|
52
|
+
value_curve: CurveValues | None = None
|
|
53
|
+
formatting: recipes_t.RecipeAttributeFormatting | None = None
|
|
54
|
+
field_values: list[field_values_t.ArgumentValueRefName | field_values_t.ArgumentValueId] | None = None
|
|
56
55
|
|
|
57
56
|
|
|
58
57
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -7,7 +6,7 @@ from __future__ import annotations
|
|
|
7
6
|
import typing # noqa: F401
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
|
-
from
|
|
9
|
+
from enum import StrEnum
|
|
11
10
|
import dataclasses
|
|
12
11
|
from pkgs.serialization import serial_class
|
|
13
12
|
from pkgs.serialization import serial_alias_annotation
|
|
@@ -82,7 +81,7 @@ class RecipeTagOverride(RecipeTagUpdateBase):
|
|
|
82
81
|
|
|
83
82
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
84
83
|
RecipeTagUpdate = typing.Annotated[
|
|
85
|
-
|
|
84
|
+
RecipeTagAppend | RecipeTagRemove | RecipeTagOverride,
|
|
86
85
|
serial_alias_annotation(
|
|
87
86
|
named_type_path="sdk.api.recipes.set_recipe_tags.RecipeTagUpdate",
|
|
88
87
|
),
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -7,7 +6,7 @@ from __future__ import annotations
|
|
|
7
6
|
import typing # noqa: F401
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
|
-
from
|
|
9
|
+
from enum import StrEnum
|
|
11
10
|
import dataclasses
|
|
12
11
|
from pkgs.serialization import serial_class
|
|
13
12
|
from ... import identifier_t
|
|
@@ -37,7 +36,7 @@ class RecipeUnlockType(StrEnum):
|
|
|
37
36
|
class Arguments:
|
|
38
37
|
type: RecipeUnlockType = RecipeUnlockType.STANDARD
|
|
39
38
|
recipes: list[identifier_t.IdentifierKey]
|
|
40
|
-
unlock_samples:
|
|
39
|
+
unlock_samples: bool | None = None
|
|
41
40
|
|
|
42
41
|
|
|
43
42
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -30,7 +29,7 @@ ENDPOINT_PATH = "api/external/triggers/run_trigger"
|
|
|
30
29
|
@dataclasses.dataclass(kw_only=True)
|
|
31
30
|
class Arguments:
|
|
32
31
|
trigger_ref_name: str
|
|
33
|
-
entity:
|
|
32
|
+
entity: entity_t.Entity | None = None
|
|
34
33
|
|
|
35
34
|
|
|
36
35
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -33,8 +32,8 @@ ENDPOINT_PATH = "api/external/uploader/invoke_uploader"
|
|
|
33
32
|
class Arguments:
|
|
34
33
|
uploader_key: identifier_t.IdentifierKey
|
|
35
34
|
destination: generic_upload_t.UploadDestination
|
|
36
|
-
file_id:
|
|
37
|
-
file_ids:
|
|
35
|
+
file_id: base_t.ObjectId | None = None
|
|
36
|
+
file_ids: list[base_t.ObjectId] | None = None
|
|
38
37
|
|
|
39
38
|
|
|
40
39
|
# DO NOT MODIFY -- This file is generated by type_spec
|
uncountable/types/async_batch.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -28,7 +27,7 @@ import uncountable.types.api.entity.set_entity_field_values as set_entity_field_
|
|
|
28
27
|
import uncountable.types.api.recipes.set_recipe_metadata as set_recipe_metadata_t
|
|
29
28
|
import uuid
|
|
30
29
|
from abc import ABC, abstractmethod
|
|
31
|
-
from pkgs.serialization_util
|
|
30
|
+
from pkgs.serialization_util import serialize_for_api
|
|
32
31
|
|
|
33
32
|
|
|
34
33
|
class AsyncBatchProcessorBase(ABC):
|
|
@@ -45,7 +44,7 @@ class AsyncBatchProcessorBase(ABC):
|
|
|
45
44
|
*,
|
|
46
45
|
equipment_key: identifier_t.IdentifierKey,
|
|
47
46
|
material_family_ids: list[base_t.ObjectId],
|
|
48
|
-
depends_on:
|
|
47
|
+
depends_on: list[str] | None = None,
|
|
49
48
|
) -> async_batch_t.QueuedAsyncBatchRequest:
|
|
50
49
|
"""Create or return the input association for equipment
|
|
51
50
|
|
|
@@ -79,9 +78,9 @@ class AsyncBatchProcessorBase(ABC):
|
|
|
79
78
|
self,
|
|
80
79
|
*,
|
|
81
80
|
recipe_key: identifier_t.IdentifierKey,
|
|
82
|
-
input_key:
|
|
83
|
-
show_in_listings:
|
|
84
|
-
depends_on:
|
|
81
|
+
input_key: identifier_t.IdentifierKey | None = None,
|
|
82
|
+
show_in_listings: bool | None = None,
|
|
83
|
+
depends_on: list[str] | None = None,
|
|
85
84
|
) -> async_batch_t.QueuedAsyncBatchRequest:
|
|
86
85
|
"""Create or return the input association for a recipe
|
|
87
86
|
|
|
@@ -117,7 +116,7 @@ class AsyncBatchProcessorBase(ABC):
|
|
|
117
116
|
self,
|
|
118
117
|
*,
|
|
119
118
|
recipe_key: identifier_t.IdentifierKey,
|
|
120
|
-
depends_on:
|
|
119
|
+
depends_on: list[str] | None = None,
|
|
121
120
|
) -> async_batch_t.QueuedAsyncBatchRequest:
|
|
122
121
|
"""Clears all output values & output metadata for a given recipe
|
|
123
122
|
|
|
@@ -150,13 +149,13 @@ class AsyncBatchProcessorBase(ABC):
|
|
|
150
149
|
*,
|
|
151
150
|
material_family_id: base_t.ObjectId,
|
|
152
151
|
workflow_id: base_t.ObjectId,
|
|
153
|
-
name:
|
|
154
|
-
project_id:
|
|
155
|
-
workflow_variant_id:
|
|
156
|
-
recipe_metadata:
|
|
157
|
-
identifiers:
|
|
158
|
-
definition_key:
|
|
159
|
-
depends_on:
|
|
152
|
+
name: str | None = None,
|
|
153
|
+
project_id: base_t.ObjectId | None = None,
|
|
154
|
+
workflow_variant_id: base_t.ObjectId | None = None,
|
|
155
|
+
recipe_metadata: list[recipe_metadata_t.MetadataValue] | None = None,
|
|
156
|
+
identifiers: recipe_identifiers_t.RecipeIdentifiers | None = None,
|
|
157
|
+
definition_key: identifier_t.IdentifierKey | None = None,
|
|
158
|
+
depends_on: list[str] | None = None,
|
|
160
159
|
) -> async_batch_t.QueuedAsyncBatchRequest:
|
|
161
160
|
"""Returns the id of the recipe being created.
|
|
162
161
|
|
|
@@ -204,7 +203,7 @@ class AsyncBatchProcessorBase(ABC):
|
|
|
204
203
|
recipe_key: identifier_t.IdentifierKey,
|
|
205
204
|
recipe_workflow_step_identifier: recipe_workflow_steps_t.RecipeWorkflowStepIdentifier,
|
|
206
205
|
edits: list[edit_recipe_inputs_t.RecipeInputEdit],
|
|
207
|
-
depends_on:
|
|
206
|
+
depends_on: list[str] | None = None,
|
|
208
207
|
) -> async_batch_t.QueuedAsyncBatchRequest:
|
|
209
208
|
"""Clear, update, or add inputs on a recipe
|
|
210
209
|
|
|
@@ -240,10 +239,10 @@ class AsyncBatchProcessorBase(ABC):
|
|
|
240
239
|
entity_type: entity_t.LimitedEntityType,
|
|
241
240
|
entity_key: identifier_t.IdentifierKey,
|
|
242
241
|
permission_types: list[entity_t.GrantableEntityPermissionType],
|
|
243
|
-
user_keys:
|
|
244
|
-
user_group_keys:
|
|
245
|
-
all_users:
|
|
246
|
-
depends_on:
|
|
242
|
+
user_keys: list[identifier_t.IdentifierKey] | None = None,
|
|
243
|
+
user_group_keys: list[identifier_t.IdentifierKey] | None = None,
|
|
244
|
+
all_users: bool | None = None,
|
|
245
|
+
depends_on: list[str] | None = None,
|
|
247
246
|
) -> async_batch_t.QueuedAsyncBatchRequest:
|
|
248
247
|
"""Grant entity permissions to a list of users or user groups or to all users.
|
|
249
248
|
|
|
@@ -280,9 +279,9 @@ class AsyncBatchProcessorBase(ABC):
|
|
|
280
279
|
*,
|
|
281
280
|
uploader_key: identifier_t.IdentifierKey,
|
|
282
281
|
destination: generic_upload_t.UploadDestination,
|
|
283
|
-
file_id:
|
|
284
|
-
file_ids:
|
|
285
|
-
depends_on:
|
|
282
|
+
file_id: base_t.ObjectId | None = None,
|
|
283
|
+
file_ids: list[base_t.ObjectId] | None = None,
|
|
284
|
+
depends_on: list[str] | None = None,
|
|
286
285
|
) -> async_batch_t.QueuedAsyncBatchRequest:
|
|
287
286
|
"""Runs a file through an uploader.
|
|
288
287
|
|
|
@@ -318,7 +317,7 @@ class AsyncBatchProcessorBase(ABC):
|
|
|
318
317
|
*,
|
|
319
318
|
entity_identifier: entity_t.EntityIdentifier,
|
|
320
319
|
field_values: list[field_values_t.FieldArgumentValue],
|
|
321
|
-
depends_on:
|
|
320
|
+
depends_on: list[str] | None = None,
|
|
322
321
|
) -> async_batch_t.QueuedAsyncBatchRequest:
|
|
323
322
|
"""Sets field values for an entity
|
|
324
323
|
|
|
@@ -353,7 +352,7 @@ class AsyncBatchProcessorBase(ABC):
|
|
|
353
352
|
*,
|
|
354
353
|
recipe_key: identifier_t.IdentifierKey,
|
|
355
354
|
recipe_metadata: list[recipe_metadata_t.MetadataValue],
|
|
356
|
-
depends_on:
|
|
355
|
+
depends_on: list[str] | None = None,
|
|
357
356
|
) -> async_batch_t.QueuedAsyncBatchRequest:
|
|
358
357
|
"""Set metadata values on a recipe
|
|
359
358
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -7,7 +6,7 @@ from __future__ import annotations
|
|
|
7
6
|
import typing # noqa: F401
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
|
-
from
|
|
9
|
+
from enum import StrEnum
|
|
11
10
|
import dataclasses
|
|
12
11
|
from pkgs.serialization import serial_class
|
|
13
12
|
from . import base_t
|
|
@@ -50,7 +49,7 @@ class AsyncBatchRequest:
|
|
|
50
49
|
path: AsyncBatchRequestPath
|
|
51
50
|
data: base_t.JsonValue
|
|
52
51
|
batch_reference: str
|
|
53
|
-
depends_on:
|
|
52
|
+
depends_on: list[str] | None = None
|
|
54
53
|
|
|
55
54
|
|
|
56
55
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -71,9 +70,9 @@ class AsyncBatchResultValue:
|
|
|
71
70
|
@dataclasses.dataclass(kw_only=True)
|
|
72
71
|
class AsyncBatchActionReturn:
|
|
73
72
|
modification_made: bool
|
|
74
|
-
result_id:
|
|
75
|
-
entity:
|
|
76
|
-
result_values:
|
|
73
|
+
result_id: base_t.ObjectId | None = None
|
|
74
|
+
entity: entity_t.Entity | None = None
|
|
75
|
+
result_values: list[AsyncBatchResultValue] | None = None
|
|
77
76
|
|
|
78
77
|
|
|
79
78
|
# DO NOT MODIFY -- This file is generated by type_spec
|
uncountable/types/async_jobs.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -7,7 +6,7 @@ from __future__ import annotations
|
|
|
7
6
|
import typing # noqa: F401
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
|
-
from
|
|
9
|
+
from enum import StrEnum
|
|
11
10
|
from pkgs.serialization import serial_string_enum
|
|
12
11
|
|
|
13
12
|
__all__: list[str] = [
|