UncountablePythonSDK 0.0.111__py3-none-any.whl → 0.0.112__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.
- docs/conf.py +2 -2
- docs/justfile +1 -1
- examples/integration-server/jobs/materials_auto/example_runsheet_wh.py +35 -0
- examples/integration-server/jobs/materials_auto/profile.yaml +9 -0
- examples/integration-server/pyproject.toml +2 -2
- pkgs/argument_parser/argument_parser.py +6 -3
- pkgs/type_spec/emit_python.py +9 -3
- pkgs/type_spec/emit_typescript_util.py +16 -1
- pkgs/type_spec/parts/base.py.prepart +4 -0
- pkgs/type_spec/ui_entry_actions/__init__.py +4 -0
- pkgs/type_spec/ui_entry_actions/generate_ui_entry_actions.py +294 -0
- pkgs/type_spec/value_spec/convert_type.py +13 -0
- uncountable/core/client.py +7 -4
- uncountable/integration/executors/generic_upload_executor.py +3 -2
- uncountable/integration/job.py +24 -1
- uncountable/integration/queue_runner/datastore/datastore_sqlite.py +3 -2
- uncountable/integration/scheduler.py +4 -3
- uncountable/types/__init__.py +2 -0
- uncountable/types/api/batch/execute_batch.py +4 -4
- uncountable/types/api/batch/execute_batch_load_async.py +2 -2
- uncountable/types/api/chemical/convert_chemical_formats.py +3 -3
- uncountable/types/api/condition_parameters/upsert_condition_match.py +4 -3
- uncountable/types/api/entity/create_entities.py +3 -3
- uncountable/types/api/entity/create_entity.py +3 -3
- uncountable/types/api/entity/create_or_update_entity.py +3 -2
- uncountable/types/api/entity/get_entities_data.py +3 -3
- uncountable/types/api/entity/grant_entity_permissions.py +3 -2
- uncountable/types/api/entity/list_entities.py +4 -4
- uncountable/types/api/entity/lock_entity.py +3 -2
- uncountable/types/api/entity/lookup_entity.py +5 -5
- uncountable/types/api/entity/resolve_entity_ids.py +3 -3
- uncountable/types/api/entity/set_entity_field_values.py +3 -2
- uncountable/types/api/entity/set_values.py +3 -2
- uncountable/types/api/entity/transition_entity_phase.py +5 -4
- uncountable/types/api/entity/unlock_entity.py +3 -2
- uncountable/types/api/equipment/associate_equipment_input.py +2 -2
- uncountable/types/api/field_options/upsert_field_options.py +4 -3
- uncountable/types/api/files/download_file.py +4 -3
- uncountable/types/api/id_source/list_id_source.py +3 -3
- uncountable/types/api/id_source/match_id_source.py +3 -3
- uncountable/types/api/input_groups/get_input_group_names.py +3 -3
- uncountable/types/api/inputs/create_inputs.py +4 -4
- uncountable/types/api/inputs/get_input_data.py +6 -6
- uncountable/types/api/inputs/get_input_names.py +3 -3
- uncountable/types/api/inputs/get_inputs_data.py +6 -6
- uncountable/types/api/inputs/set_input_attribute_values.py +3 -3
- uncountable/types/api/inputs/set_input_category.py +3 -2
- uncountable/types/api/inputs/set_input_subcategories.py +3 -2
- uncountable/types/api/inputs/set_intermediate_type.py +3 -2
- uncountable/types/api/material_families/update_entity_material_families.py +2 -2
- uncountable/types/api/outputs/get_output_data.py +6 -6
- uncountable/types/api/outputs/get_output_names.py +3 -3
- uncountable/types/api/outputs/resolve_output_conditions.py +5 -5
- uncountable/types/api/permissions/set_core_permissions.py +7 -6
- uncountable/types/api/project/get_projects.py +3 -3
- uncountable/types/api/project/get_projects_data.py +3 -3
- uncountable/types/api/recipe_links/create_recipe_link.py +3 -2
- uncountable/types/api/recipe_links/remove_recipe_link.py +3 -2
- uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +3 -3
- uncountable/types/api/recipes/add_recipe_to_project.py +3 -2
- uncountable/types/api/recipes/add_time_series_data.py +4 -3
- uncountable/types/api/recipes/archive_recipes.py +3 -2
- uncountable/types/api/recipes/associate_recipe_as_input.py +3 -2
- uncountable/types/api/recipes/associate_recipe_as_lot.py +3 -2
- uncountable/types/api/recipes/clear_recipe_outputs.py +3 -2
- uncountable/types/api/recipes/create_recipe.py +2 -2
- uncountable/types/api/recipes/create_recipes.py +4 -4
- uncountable/types/api/recipes/disassociate_recipe_as_input.py +3 -2
- uncountable/types/api/recipes/edit_recipe_inputs.py +17 -16
- uncountable/types/api/recipes/get_column_calculation_values.py +3 -3
- uncountable/types/api/recipes/get_curve.py +2 -2
- uncountable/types/api/recipes/get_recipe_calculations.py +3 -3
- uncountable/types/api/recipes/get_recipe_links.py +2 -2
- uncountable/types/api/recipes/get_recipe_names.py +3 -3
- uncountable/types/api/recipes/get_recipe_output_metadata.py +3 -3
- uncountable/types/api/recipes/get_recipes_data.py +11 -11
- uncountable/types/api/recipes/lock_recipes.py +4 -3
- uncountable/types/api/recipes/remove_recipe_from_project.py +3 -2
- uncountable/types/api/recipes/set_recipe_inputs.py +3 -3
- uncountable/types/api/recipes/set_recipe_metadata.py +3 -2
- uncountable/types/api/recipes/set_recipe_output_annotations.py +6 -6
- uncountable/types/api/recipes/set_recipe_output_file.py +3 -3
- uncountable/types/api/recipes/set_recipe_outputs.py +4 -4
- uncountable/types/api/recipes/set_recipe_tags.py +6 -6
- uncountable/types/api/recipes/unarchive_recipes.py +3 -2
- uncountable/types/api/recipes/unlock_recipes.py +3 -2
- uncountable/types/api/runsheet/__init__.py +1 -0
- uncountable/types/api/runsheet/complete_async_upload.py +41 -0
- uncountable/types/api/triggers/run_trigger.py +3 -2
- uncountable/types/api/uploader/invoke_uploader.py +2 -2
- uncountable/types/async_batch_processor.py +34 -0
- uncountable/types/async_batch_t.py +6 -5
- uncountable/types/auth_retrieval_t.py +4 -3
- uncountable/types/base_t.py +4 -0
- uncountable/types/calculations_t.py +1 -1
- uncountable/types/chemical_structure_t.py +2 -1
- uncountable/types/client_base.py +21 -0
- uncountable/types/client_config_t.py +2 -1
- uncountable/types/curves_t.py +2 -2
- uncountable/types/data_t.py +7 -6
- uncountable/types/entity_t.py +3 -3
- uncountable/types/experiment_groups_t.py +1 -1
- uncountable/types/field_values_t.py +20 -20
- uncountable/types/fields_t.py +1 -1
- uncountable/types/generic_upload_t.py +7 -6
- uncountable/types/id_source_t.py +5 -4
- uncountable/types/identifier_t.py +3 -3
- uncountable/types/input_attributes_t.py +1 -1
- uncountable/types/inputs_t.py +1 -1
- uncountable/types/integration_server_t.py +2 -1
- uncountable/types/job_definition_t.py +14 -13
- uncountable/types/outputs_t.py +1 -1
- uncountable/types/overrides_t.py +3 -2
- uncountable/types/phases_t.py +1 -1
- uncountable/types/queued_job_t.py +7 -7
- uncountable/types/recipe_identifiers_t.py +3 -3
- uncountable/types/recipe_links_t.py +1 -1
- uncountable/types/recipe_metadata_t.py +3 -3
- uncountable/types/recipe_output_metadata_t.py +1 -1
- uncountable/types/recipe_tags_t.py +1 -1
- uncountable/types/recipe_workflow_steps_t.py +5 -4
- uncountable/types/recipes_t.py +2 -1
- uncountable/types/response_t.py +2 -1
- uncountable/types/secret_retrieval_t.py +4 -3
- uncountable/types/units_t.py +1 -1
- uncountable/types/users_t.py +1 -1
- uncountable/types/webhook_job_t.py +4 -3
- uncountable/types/workflows_t.py +2 -2
- {uncountablepythonsdk-0.0.111.dist-info → uncountablepythonsdk-0.0.112.dist-info}/METADATA +2 -1
- {uncountablepythonsdk-0.0.111.dist-info → uncountablepythonsdk-0.0.112.dist-info}/RECORD +132 -127
- {uncountablepythonsdk-0.0.111.dist-info → uncountablepythonsdk-0.0.112.dist-info}/WHEEL +1 -1
- {uncountablepythonsdk-0.0.111.dist-info → uncountablepythonsdk-0.0.112.dist-info}/top_level.txt +0 -0
|
@@ -10,6 +10,7 @@ from enum import StrEnum
|
|
|
10
10
|
import dataclasses
|
|
11
11
|
from pkgs.serialization import serial_class
|
|
12
12
|
from ... import async_batch_t
|
|
13
|
+
from ... import base_t
|
|
13
14
|
from ... import identifier_t
|
|
14
15
|
|
|
15
16
|
__all__: list[str] = [
|
|
@@ -36,7 +37,7 @@ class OnTimepointConflict(StrEnum):
|
|
|
36
37
|
named_type_path="sdk.api.recipes.add_time_series_data.TimeSeriesDatum",
|
|
37
38
|
to_string_values={"value"},
|
|
38
39
|
)
|
|
39
|
-
@dataclasses.dataclass(kw_only=True)
|
|
40
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
40
41
|
class TimeSeriesDatum:
|
|
41
42
|
timestamp: datetime.datetime
|
|
42
43
|
value: Decimal | None = None
|
|
@@ -46,7 +47,7 @@ class TimeSeriesDatum:
|
|
|
46
47
|
@serial_class(
|
|
47
48
|
named_type_path="sdk.api.recipes.add_time_series_data.Arguments",
|
|
48
49
|
)
|
|
49
|
-
@dataclasses.dataclass(kw_only=True)
|
|
50
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
50
51
|
class Arguments:
|
|
51
52
|
time_series_segment_key: identifier_t.IdentifierKey
|
|
52
53
|
time_series_data: list[TimeSeriesDatum]
|
|
@@ -57,7 +58,7 @@ class Arguments:
|
|
|
57
58
|
@serial_class(
|
|
58
59
|
named_type_path="sdk.api.recipes.add_time_series_data.Data",
|
|
59
60
|
)
|
|
60
|
-
@dataclasses.dataclass(kw_only=True)
|
|
61
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
61
62
|
class Data(async_batch_t.AsyncBatchActionReturn):
|
|
62
63
|
pass
|
|
63
64
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -8,6 +8,7 @@ import datetime # noqa: F401
|
|
|
8
8
|
from decimal import Decimal # noqa: F401
|
|
9
9
|
import dataclasses
|
|
10
10
|
from pkgs.serialization import serial_class
|
|
11
|
+
from ... import base_t
|
|
11
12
|
from ... import identifier_t
|
|
12
13
|
|
|
13
14
|
__all__: list[str] = [
|
|
@@ -25,7 +26,7 @@ ENDPOINT_PATH = "api/external/recipes/archive"
|
|
|
25
26
|
@serial_class(
|
|
26
27
|
named_type_path="sdk.api.recipes.archive_recipes.Arguments",
|
|
27
28
|
)
|
|
28
|
-
@dataclasses.dataclass(kw_only=True)
|
|
29
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
29
30
|
class Arguments:
|
|
30
31
|
recipes: list[identifier_t.IdentifierKey]
|
|
31
32
|
reason: str | None = None
|
|
@@ -35,7 +36,7 @@ class Arguments:
|
|
|
35
36
|
@serial_class(
|
|
36
37
|
named_type_path="sdk.api.recipes.archive_recipes.Data",
|
|
37
38
|
)
|
|
38
|
-
@dataclasses.dataclass(kw_only=True)
|
|
39
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
39
40
|
class Data:
|
|
40
41
|
pass
|
|
41
42
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -9,6 +9,7 @@ from decimal import Decimal # noqa: F401
|
|
|
9
9
|
import dataclasses
|
|
10
10
|
from pkgs.serialization import serial_class
|
|
11
11
|
from ... import async_batch_t
|
|
12
|
+
from ... import base_t
|
|
12
13
|
from ... import identifier_t
|
|
13
14
|
|
|
14
15
|
__all__: list[str] = [
|
|
@@ -26,7 +27,7 @@ ENDPOINT_PATH = "api/external/recipes/associate_recipe_as_input"
|
|
|
26
27
|
@serial_class(
|
|
27
28
|
named_type_path="sdk.api.recipes.associate_recipe_as_input.Arguments",
|
|
28
29
|
)
|
|
29
|
-
@dataclasses.dataclass(kw_only=True)
|
|
30
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
30
31
|
class Arguments:
|
|
31
32
|
recipe_key: identifier_t.IdentifierKey
|
|
32
33
|
input_key: identifier_t.IdentifierKey | None = None
|
|
@@ -37,7 +38,7 @@ class Arguments:
|
|
|
37
38
|
@serial_class(
|
|
38
39
|
named_type_path="sdk.api.recipes.associate_recipe_as_input.Data",
|
|
39
40
|
)
|
|
40
|
-
@dataclasses.dataclass(kw_only=True)
|
|
41
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
41
42
|
class Data(async_batch_t.AsyncBatchActionReturn):
|
|
42
43
|
pass
|
|
43
44
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -9,6 +9,7 @@ from decimal import Decimal # noqa: F401
|
|
|
9
9
|
import dataclasses
|
|
10
10
|
from pkgs.serialization import serial_class
|
|
11
11
|
from ... import async_batch_t
|
|
12
|
+
from ... import base_t
|
|
12
13
|
from ... import identifier_t
|
|
13
14
|
|
|
14
15
|
__all__: list[str] = [
|
|
@@ -26,7 +27,7 @@ ENDPOINT_PATH = "api/external/recipes/associate_recipe_as_lot"
|
|
|
26
27
|
@serial_class(
|
|
27
28
|
named_type_path="sdk.api.recipes.associate_recipe_as_lot.Arguments",
|
|
28
29
|
)
|
|
29
|
-
@dataclasses.dataclass(kw_only=True)
|
|
30
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
30
31
|
class Arguments:
|
|
31
32
|
recipe_key: identifier_t.IdentifierKey
|
|
32
33
|
ingredient_key: identifier_t.IdentifierKey
|
|
@@ -36,7 +37,7 @@ class Arguments:
|
|
|
36
37
|
@serial_class(
|
|
37
38
|
named_type_path="sdk.api.recipes.associate_recipe_as_lot.Data",
|
|
38
39
|
)
|
|
39
|
-
@dataclasses.dataclass(kw_only=True)
|
|
40
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
40
41
|
class Data(async_batch_t.AsyncBatchActionReturn):
|
|
41
42
|
pass
|
|
42
43
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -9,6 +9,7 @@ from decimal import Decimal # noqa: F401
|
|
|
9
9
|
import dataclasses
|
|
10
10
|
from pkgs.serialization import serial_class
|
|
11
11
|
from ... import async_batch_t
|
|
12
|
+
from ... import base_t
|
|
12
13
|
from ... import identifier_t
|
|
13
14
|
|
|
14
15
|
__all__: list[str] = [
|
|
@@ -26,7 +27,7 @@ ENDPOINT_PATH = "api/external/recipes/clear_recipe_outputs"
|
|
|
26
27
|
@serial_class(
|
|
27
28
|
named_type_path="sdk.api.recipes.clear_recipe_outputs.Arguments",
|
|
28
29
|
)
|
|
29
|
-
@dataclasses.dataclass(kw_only=True)
|
|
30
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
30
31
|
class Arguments:
|
|
31
32
|
recipe_key: identifier_t.IdentifierKey
|
|
32
33
|
|
|
@@ -35,7 +36,7 @@ class Arguments:
|
|
|
35
36
|
@serial_class(
|
|
36
37
|
named_type_path="sdk.api.recipes.clear_recipe_outputs.Data",
|
|
37
38
|
)
|
|
38
|
-
@dataclasses.dataclass(kw_only=True)
|
|
39
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
39
40
|
class Data(async_batch_t.AsyncBatchActionReturn):
|
|
40
41
|
pass
|
|
41
42
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -28,7 +28,7 @@ ENDPOINT_PATH = "api/external/recipes/create_recipe"
|
|
|
28
28
|
@serial_class(
|
|
29
29
|
named_type_path="sdk.api.recipes.create_recipe.Arguments",
|
|
30
30
|
)
|
|
31
|
-
@dataclasses.dataclass(kw_only=True)
|
|
31
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
32
32
|
class Arguments:
|
|
33
33
|
material_family_id: base_t.ObjectId
|
|
34
34
|
workflow_id: base_t.ObjectId
|
|
@@ -44,7 +44,7 @@ class Arguments:
|
|
|
44
44
|
@serial_class(
|
|
45
45
|
named_type_path="sdk.api.recipes.create_recipe.Data",
|
|
46
46
|
)
|
|
47
|
-
@dataclasses.dataclass(kw_only=True)
|
|
47
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
48
48
|
class Data:
|
|
49
49
|
result_id: base_t.ObjectId
|
|
50
50
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -28,7 +28,7 @@ ENDPOINT_PATH = "api/external/recipes/external_create_recipes"
|
|
|
28
28
|
@serial_class(
|
|
29
29
|
named_type_path="sdk.api.recipes.create_recipes.CreateRecipeDefinition",
|
|
30
30
|
)
|
|
31
|
-
@dataclasses.dataclass(kw_only=True)
|
|
31
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
32
32
|
class CreateRecipeDefinition:
|
|
33
33
|
workflow_id: base_t.ObjectId
|
|
34
34
|
name: str | None = None
|
|
@@ -40,7 +40,7 @@ class CreateRecipeDefinition:
|
|
|
40
40
|
@serial_class(
|
|
41
41
|
named_type_path="sdk.api.recipes.create_recipes.Arguments",
|
|
42
42
|
)
|
|
43
|
-
@dataclasses.dataclass(kw_only=True)
|
|
43
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
44
44
|
class Arguments:
|
|
45
45
|
material_family_id: base_t.ObjectId
|
|
46
46
|
recipe_definitions: list[CreateRecipeDefinition]
|
|
@@ -51,7 +51,7 @@ class Arguments:
|
|
|
51
51
|
@serial_class(
|
|
52
52
|
named_type_path="sdk.api.recipes.create_recipes.CreateRecipeResult",
|
|
53
53
|
)
|
|
54
|
-
@dataclasses.dataclass(kw_only=True)
|
|
54
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
55
55
|
class CreateRecipeResult:
|
|
56
56
|
recipe_id: base_t.ObjectId
|
|
57
57
|
|
|
@@ -60,7 +60,7 @@ class CreateRecipeResult:
|
|
|
60
60
|
@serial_class(
|
|
61
61
|
named_type_path="sdk.api.recipes.create_recipes.Data",
|
|
62
62
|
)
|
|
63
|
-
@dataclasses.dataclass(kw_only=True)
|
|
63
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
64
64
|
class Data:
|
|
65
65
|
recipes: list[CreateRecipeResult]
|
|
66
66
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -9,6 +9,7 @@ from decimal import Decimal # noqa: F401
|
|
|
9
9
|
import dataclasses
|
|
10
10
|
from pkgs.serialization import serial_class
|
|
11
11
|
from ... import async_batch_t
|
|
12
|
+
from ... import base_t
|
|
12
13
|
from ... import identifier_t
|
|
13
14
|
|
|
14
15
|
__all__: list[str] = [
|
|
@@ -26,7 +27,7 @@ ENDPOINT_PATH = "api/external/recipes/disassociate_recipe_as_input"
|
|
|
26
27
|
@serial_class(
|
|
27
28
|
named_type_path="sdk.api.recipes.disassociate_recipe_as_input.Arguments",
|
|
28
29
|
)
|
|
29
|
-
@dataclasses.dataclass(kw_only=True)
|
|
30
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
30
31
|
class Arguments:
|
|
31
32
|
recipe_key: identifier_t.IdentifierKey
|
|
32
33
|
|
|
@@ -35,7 +36,7 @@ class Arguments:
|
|
|
35
36
|
@serial_class(
|
|
36
37
|
named_type_path="sdk.api.recipes.disassociate_recipe_as_input.Data",
|
|
37
38
|
)
|
|
38
|
-
@dataclasses.dataclass(kw_only=True)
|
|
39
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
39
40
|
class Data(async_batch_t.AsyncBatchActionReturn):
|
|
40
41
|
pass
|
|
41
42
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -10,6 +10,7 @@ from enum import StrEnum
|
|
|
10
10
|
import dataclasses
|
|
11
11
|
from pkgs.serialization import serial_class
|
|
12
12
|
from pkgs.serialization import serial_union_annotation
|
|
13
|
+
from ... import base_t
|
|
13
14
|
from ... import identifier_t
|
|
14
15
|
from ... import inputs_t
|
|
15
16
|
from ... import recipe_inputs_t
|
|
@@ -69,7 +70,7 @@ class MixStepMatchStrategy(StrEnum):
|
|
|
69
70
|
@serial_class(
|
|
70
71
|
named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEditBase",
|
|
71
72
|
)
|
|
72
|
-
@dataclasses.dataclass(kw_only=True)
|
|
73
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
73
74
|
class RecipeInputEditBase:
|
|
74
75
|
type: RecipeInputEditType
|
|
75
76
|
|
|
@@ -79,7 +80,7 @@ class RecipeInputEditBase:
|
|
|
79
80
|
named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEditClearInputs",
|
|
80
81
|
parse_require={"type"},
|
|
81
82
|
)
|
|
82
|
-
@dataclasses.dataclass(kw_only=True)
|
|
83
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
83
84
|
class RecipeInputEditClearInputs(RecipeInputEditBase):
|
|
84
85
|
type: typing.Literal[RecipeInputEditType.CLEAR_INPUTS] = RecipeInputEditType.CLEAR_INPUTS
|
|
85
86
|
|
|
@@ -89,7 +90,7 @@ class RecipeInputEditClearInputs(RecipeInputEditBase):
|
|
|
89
90
|
named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEditInputBase",
|
|
90
91
|
to_string_values={"value_numeric"},
|
|
91
92
|
)
|
|
92
|
-
@dataclasses.dataclass(kw_only=True)
|
|
93
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
93
94
|
class RecipeInputEditInputBase(RecipeInputEditBase):
|
|
94
95
|
ingredient_key: identifier_t.IdentifierKey
|
|
95
96
|
quantity_basis: recipe_inputs_t.QuantityBasis = recipe_inputs_t.QuantityBasis.MASS
|
|
@@ -105,7 +106,7 @@ class RecipeInputEditInputBase(RecipeInputEditBase):
|
|
|
105
106
|
named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEditChangeBasisViewed",
|
|
106
107
|
parse_require={"type"},
|
|
107
108
|
)
|
|
108
|
-
@dataclasses.dataclass(kw_only=True)
|
|
109
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
109
110
|
class RecipeInputEditChangeBasisViewed(RecipeInputEditInputBase):
|
|
110
111
|
type: typing.Literal[RecipeInputEditType.CHANGE_BASIS] = RecipeInputEditType.CHANGE_BASIS
|
|
111
112
|
mix_step_match_strategy: MixStepMatchStrategy = MixStepMatchStrategy.FIRST
|
|
@@ -116,7 +117,7 @@ class RecipeInputEditChangeBasisViewed(RecipeInputEditInputBase):
|
|
|
116
117
|
named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEditUpsertInput",
|
|
117
118
|
parse_require={"type"},
|
|
118
119
|
)
|
|
119
|
-
@dataclasses.dataclass(kw_only=True)
|
|
120
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
120
121
|
class RecipeInputEditUpsertInput(RecipeInputEditInputBase):
|
|
121
122
|
type: typing.Literal[RecipeInputEditType.UPSERT_INPUT] = RecipeInputEditType.UPSERT_INPUT
|
|
122
123
|
clear_first: bool
|
|
@@ -128,7 +129,7 @@ class RecipeInputEditUpsertInput(RecipeInputEditInputBase):
|
|
|
128
129
|
named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEditAddInput",
|
|
129
130
|
parse_require={"type"},
|
|
130
131
|
)
|
|
131
|
-
@dataclasses.dataclass(kw_only=True)
|
|
132
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
132
133
|
class RecipeInputEditAddInput(RecipeInputEditInputBase):
|
|
133
134
|
type: typing.Literal[RecipeInputEditType.ADD_INPUT] = RecipeInputEditType.ADD_INPUT
|
|
134
135
|
|
|
@@ -138,7 +139,7 @@ class RecipeInputEditAddInput(RecipeInputEditInputBase):
|
|
|
138
139
|
named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEditSetLot",
|
|
139
140
|
parse_require={"type"},
|
|
140
141
|
)
|
|
141
|
-
@dataclasses.dataclass(kw_only=True)
|
|
142
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
142
143
|
class RecipeInputEditSetLot(RecipeInputEditBase):
|
|
143
144
|
type: typing.Literal[RecipeInputEditType.SET_LOT] = RecipeInputEditType.SET_LOT
|
|
144
145
|
ingredient_key: identifier_t.IdentifierKey
|
|
@@ -151,7 +152,7 @@ class RecipeInputEditSetLot(RecipeInputEditBase):
|
|
|
151
152
|
named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEditAddInstructions",
|
|
152
153
|
parse_require={"type"},
|
|
153
154
|
)
|
|
154
|
-
@dataclasses.dataclass(kw_only=True)
|
|
155
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
155
156
|
class RecipeInputEditAddInstructions(RecipeInputEditBase):
|
|
156
157
|
type: typing.Literal[RecipeInputEditType.ADD_INSTRUCTIONS] = RecipeInputEditType.ADD_INSTRUCTIONS
|
|
157
158
|
instructions: str
|
|
@@ -162,7 +163,7 @@ class RecipeInputEditAddInstructions(RecipeInputEditBase):
|
|
|
162
163
|
named_type_path="sdk.api.recipes.edit_recipe_inputs.AnnotationEdit",
|
|
163
164
|
to_string_values={"lower_value", "upper_value"},
|
|
164
165
|
)
|
|
165
|
-
@dataclasses.dataclass(kw_only=True)
|
|
166
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
166
167
|
class AnnotationEdit:
|
|
167
168
|
annotation_type_key: identifier_t.IdentifierKey
|
|
168
169
|
lower_value: Decimal | None = None
|
|
@@ -174,7 +175,7 @@ class AnnotationEdit:
|
|
|
174
175
|
named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEditUpdateAnnotations",
|
|
175
176
|
parse_require={"type"},
|
|
176
177
|
)
|
|
177
|
-
@dataclasses.dataclass(kw_only=True)
|
|
178
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
178
179
|
class RecipeInputEditUpdateAnnotations(RecipeInputEditInputBase):
|
|
179
180
|
type: typing.Literal[RecipeInputEditType.UPDATE_ANNOTATIONS] = RecipeInputEditType.UPDATE_ANNOTATIONS
|
|
180
181
|
clear_first: bool
|
|
@@ -187,7 +188,7 @@ class RecipeInputEditUpdateAnnotations(RecipeInputEditInputBase):
|
|
|
187
188
|
named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEditSetRole",
|
|
188
189
|
parse_require={"type"},
|
|
189
190
|
)
|
|
190
|
-
@dataclasses.dataclass(kw_only=True)
|
|
191
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
191
192
|
class RecipeInputEditSetRole(RecipeInputEditBase):
|
|
192
193
|
type: typing.Literal[RecipeInputEditType.SET_ROLE] = RecipeInputEditType.SET_ROLE
|
|
193
194
|
ingredient_key: identifier_t.IdentifierKey
|
|
@@ -208,7 +209,7 @@ class PlaceholderDisplayMode(StrEnum):
|
|
|
208
209
|
@serial_class(
|
|
209
210
|
named_type_path="sdk.api.recipes.edit_recipe_inputs.PlaceholderBase",
|
|
210
211
|
)
|
|
211
|
-
@dataclasses.dataclass(kw_only=True)
|
|
212
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
212
213
|
class PlaceholderBase:
|
|
213
214
|
type: PlaceholderType
|
|
214
215
|
require_for_creation: bool = True
|
|
@@ -220,7 +221,7 @@ class PlaceholderBase:
|
|
|
220
221
|
named_type_path="sdk.api.recipes.edit_recipe_inputs.SubcategoryPlaceholder",
|
|
221
222
|
parse_require={"type"},
|
|
222
223
|
)
|
|
223
|
-
@dataclasses.dataclass(kw_only=True)
|
|
224
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
224
225
|
class SubcategoryPlaceholder(PlaceholderBase):
|
|
225
226
|
type: typing.Literal[PlaceholderType.SUBCATEGORY] = PlaceholderType.SUBCATEGORY
|
|
226
227
|
subcategory_identifier: identifier_t.IdentifierKey
|
|
@@ -244,7 +245,7 @@ RecipeInputPlaceholder = typing.Annotated[
|
|
|
244
245
|
named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEditPlaceholder",
|
|
245
246
|
parse_require={"type"},
|
|
246
247
|
)
|
|
247
|
-
@dataclasses.dataclass(kw_only=True)
|
|
248
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
248
249
|
class RecipeInputEditPlaceholder(RecipeInputEditBase):
|
|
249
250
|
type: typing.Literal[RecipeInputEditType.SET_PLACEHOLDER] = RecipeInputEditType.SET_PLACEHOLDER
|
|
250
251
|
ingredient_key: identifier_t.IdentifierKey
|
|
@@ -277,7 +278,7 @@ RecipeInputEdit = typing.Annotated[
|
|
|
277
278
|
@serial_class(
|
|
278
279
|
named_type_path="sdk.api.recipes.edit_recipe_inputs.Arguments",
|
|
279
280
|
)
|
|
280
|
-
@dataclasses.dataclass(kw_only=True)
|
|
281
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
281
282
|
class Arguments:
|
|
282
283
|
recipe_key: identifier_t.IdentifierKey
|
|
283
284
|
recipe_workflow_step_identifier: recipe_workflow_steps_t.RecipeWorkflowStepIdentifier
|
|
@@ -288,7 +289,7 @@ class Arguments:
|
|
|
288
289
|
@serial_class(
|
|
289
290
|
named_type_path="sdk.api.recipes.edit_recipe_inputs.Data",
|
|
290
291
|
)
|
|
291
|
-
@dataclasses.dataclass(kw_only=True)
|
|
292
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
292
293
|
class Data:
|
|
293
294
|
pass
|
|
294
295
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -27,7 +27,7 @@ ENDPOINT_PATH = "api/external/recipes/get_column_calculation_values"
|
|
|
27
27
|
@serial_class(
|
|
28
28
|
named_type_path="sdk.api.recipes.get_column_calculation_values.Arguments",
|
|
29
29
|
)
|
|
30
|
-
@dataclasses.dataclass(kw_only=True)
|
|
30
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
31
31
|
class Arguments:
|
|
32
32
|
recipe_keys: list[identifier_t.IdentifierKey]
|
|
33
33
|
calculation_key: identifier_t.IdentifierKey
|
|
@@ -38,7 +38,7 @@ class Arguments:
|
|
|
38
38
|
named_type_path="sdk.api.recipes.get_column_calculation_values.RecipeColumnCalculationValue",
|
|
39
39
|
to_string_values={"calculation_quantity"},
|
|
40
40
|
)
|
|
41
|
-
@dataclasses.dataclass(kw_only=True)
|
|
41
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
42
42
|
class RecipeColumnCalculationValue:
|
|
43
43
|
recipe_id: base_t.ObjectId
|
|
44
44
|
ingredient_id: base_t.ObjectId
|
|
@@ -51,7 +51,7 @@ class RecipeColumnCalculationValue:
|
|
|
51
51
|
@serial_class(
|
|
52
52
|
named_type_path="sdk.api.recipes.get_column_calculation_values.Data",
|
|
53
53
|
)
|
|
54
|
-
@dataclasses.dataclass(kw_only=True)
|
|
54
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
55
55
|
class Data:
|
|
56
56
|
values: list[RecipeColumnCalculationValue]
|
|
57
57
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -26,7 +26,7 @@ ENDPOINT_PATH = "api/external/recipes/external_get_curve"
|
|
|
26
26
|
@serial_class(
|
|
27
27
|
named_type_path="sdk.api.recipes.get_curve.Arguments",
|
|
28
28
|
)
|
|
29
|
-
@dataclasses.dataclass(kw_only=True)
|
|
29
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
30
30
|
class Arguments:
|
|
31
31
|
recipe_output_id: base_t.ObjectId | None = None
|
|
32
32
|
recipe_input_id: base_t.ObjectId | None = None
|
|
@@ -36,7 +36,7 @@ class Arguments:
|
|
|
36
36
|
@serial_class(
|
|
37
37
|
named_type_path="sdk.api.recipes.get_curve.Data",
|
|
38
38
|
)
|
|
39
|
-
@dataclasses.dataclass(kw_only=True)
|
|
39
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
40
40
|
class Data:
|
|
41
41
|
curve: curves_t.Curve
|
|
42
42
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -27,7 +27,7 @@ ENDPOINT_PATH = "api/external/recipes/external_get_recipe_calculations"
|
|
|
27
27
|
@serial_class(
|
|
28
28
|
named_type_path="sdk.api.recipes.get_recipe_calculations.Arguments",
|
|
29
29
|
)
|
|
30
|
-
@dataclasses.dataclass(kw_only=True)
|
|
30
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
31
31
|
class Arguments:
|
|
32
32
|
recipe_ids: list[base_t.ObjectId]
|
|
33
33
|
calculation_ids: list[base_t.ObjectId] | None = None
|
|
@@ -39,7 +39,7 @@ class Arguments:
|
|
|
39
39
|
unconverted_values={"quantity_json"},
|
|
40
40
|
to_string_values={"quantity_dec"},
|
|
41
41
|
)
|
|
42
|
-
@dataclasses.dataclass(kw_only=True)
|
|
42
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
43
43
|
class RecipeCalculation:
|
|
44
44
|
recipe_id: base_t.ObjectId
|
|
45
45
|
calculation_id: base_t.ObjectId
|
|
@@ -51,7 +51,7 @@ class RecipeCalculation:
|
|
|
51
51
|
@serial_class(
|
|
52
52
|
named_type_path="sdk.api.recipes.get_recipe_calculations.Data",
|
|
53
53
|
)
|
|
54
|
-
@dataclasses.dataclass(kw_only=True)
|
|
54
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
55
55
|
class Data:
|
|
56
56
|
recipe_calculations: list[RecipeCalculation]
|
|
57
57
|
calculations: list[calculations_t.Calculation]
|
|
@@ -26,7 +26,7 @@ ENDPOINT_PATH = "api/external/recipes/external_get_recipe_links"
|
|
|
26
26
|
@serial_class(
|
|
27
27
|
named_type_path="sdk.api.recipes.get_recipe_links.Arguments",
|
|
28
28
|
)
|
|
29
|
-
@dataclasses.dataclass(kw_only=True)
|
|
29
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
30
30
|
class Arguments:
|
|
31
31
|
recipe_ids: list[base_t.ObjectId]
|
|
32
32
|
depth: int = 1
|
|
@@ -37,7 +37,7 @@ class Arguments:
|
|
|
37
37
|
@serial_class(
|
|
38
38
|
named_type_path="sdk.api.recipes.get_recipe_links.Data",
|
|
39
39
|
)
|
|
40
|
-
@dataclasses.dataclass(kw_only=True)
|
|
40
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
41
41
|
class Data:
|
|
42
42
|
recipe_links: list[recipe_links_t.RecipeLink]
|
|
43
43
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -26,7 +26,7 @@ ENDPOINT_PATH = "api/external/recipes/external_get_recipe_names"
|
|
|
26
26
|
@serial_class(
|
|
27
27
|
named_type_path="sdk.api.recipes.get_recipe_names.Arguments",
|
|
28
28
|
)
|
|
29
|
-
@dataclasses.dataclass(kw_only=True)
|
|
29
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
30
30
|
class Arguments:
|
|
31
31
|
project_id: base_t.ObjectId
|
|
32
32
|
|
|
@@ -35,7 +35,7 @@ class Arguments:
|
|
|
35
35
|
@serial_class(
|
|
36
36
|
named_type_path="sdk.api.recipes.get_recipe_names.SimpleRecipe",
|
|
37
37
|
)
|
|
38
|
-
@dataclasses.dataclass(kw_only=True)
|
|
38
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
39
39
|
class SimpleRecipe:
|
|
40
40
|
id: base_t.ObjectId
|
|
41
41
|
name: str
|
|
@@ -45,7 +45,7 @@ class SimpleRecipe:
|
|
|
45
45
|
@serial_class(
|
|
46
46
|
named_type_path="sdk.api.recipes.get_recipe_names.Data",
|
|
47
47
|
)
|
|
48
|
-
@dataclasses.dataclass(kw_only=True)
|
|
48
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
49
49
|
class Data:
|
|
50
50
|
recipes: list[SimpleRecipe]
|
|
51
51
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -27,7 +27,7 @@ ENDPOINT_PATH = "api/external/recipes/external_get_recipe_output_metadata"
|
|
|
27
27
|
@serial_class(
|
|
28
28
|
named_type_path="sdk.api.recipes.get_recipe_output_metadata.Arguments",
|
|
29
29
|
)
|
|
30
|
-
@dataclasses.dataclass(kw_only=True)
|
|
30
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
31
31
|
class Arguments:
|
|
32
32
|
recipe_output_ids: list[base_t.ObjectId]
|
|
33
33
|
|
|
@@ -38,7 +38,7 @@ class Arguments:
|
|
|
38
38
|
unconverted_values={"quantity_json"},
|
|
39
39
|
to_string_values={"quantity_dec"},
|
|
40
40
|
)
|
|
41
|
-
@dataclasses.dataclass(kw_only=True)
|
|
41
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
42
42
|
class RecipeOutputMetadata:
|
|
43
43
|
recipe_output_id: base_t.ObjectId
|
|
44
44
|
recipe_output_metadata_field_id: base_t.ObjectId
|
|
@@ -50,7 +50,7 @@ class RecipeOutputMetadata:
|
|
|
50
50
|
@serial_class(
|
|
51
51
|
named_type_path="sdk.api.recipes.get_recipe_output_metadata.Data",
|
|
52
52
|
)
|
|
53
|
-
@dataclasses.dataclass(kw_only=True)
|
|
53
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
54
54
|
class Data:
|
|
55
55
|
recipe_output_metadata: list[RecipeOutputMetadata]
|
|
56
56
|
recipe_output_metadata_fields: list[recipe_output_metadata_t.RecipeOutputMetadataField]
|
|
@@ -40,7 +40,7 @@ ENDPOINT_PATH = "api/external/recipes/external_get_recipes_data"
|
|
|
40
40
|
@serial_class(
|
|
41
41
|
named_type_path="sdk.api.recipes.get_recipes_data.Arguments",
|
|
42
42
|
)
|
|
43
|
-
@dataclasses.dataclass(kw_only=True)
|
|
43
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
44
44
|
class Arguments:
|
|
45
45
|
recipe_ids: list[base_t.ObjectId] | None = None
|
|
46
46
|
project_id: base_t.ObjectId | None = None
|
|
@@ -54,7 +54,7 @@ class Arguments:
|
|
|
54
54
|
unconverted_values={"quantity_json"},
|
|
55
55
|
to_string_values={"quantity_dec"},
|
|
56
56
|
)
|
|
57
|
-
@dataclasses.dataclass(kw_only=True)
|
|
57
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
58
58
|
class RecipeOutput:
|
|
59
59
|
id: base_t.ObjectId
|
|
60
60
|
output_id: base_t.ObjectId
|
|
@@ -71,7 +71,7 @@ class RecipeOutput:
|
|
|
71
71
|
unconverted_values={"quantity_json"},
|
|
72
72
|
to_string_values={"quantity_dec"},
|
|
73
73
|
)
|
|
74
|
-
@dataclasses.dataclass(kw_only=True)
|
|
74
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
75
75
|
class ConditionParameterValue:
|
|
76
76
|
condition_parameter_id: base_t.ObjectId
|
|
77
77
|
condition_parameter_name: str
|
|
@@ -83,7 +83,7 @@ class ConditionParameterValue:
|
|
|
83
83
|
@serial_class(
|
|
84
84
|
named_type_path="sdk.api.recipes.get_recipes_data.SimpleOutputCondition",
|
|
85
85
|
)
|
|
86
|
-
@dataclasses.dataclass(kw_only=True)
|
|
86
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
87
87
|
class SimpleOutputCondition:
|
|
88
88
|
output_condition_id: base_t.ObjectId
|
|
89
89
|
condition_parameter_values: list[ConditionParameterValue]
|
|
@@ -95,7 +95,7 @@ class SimpleOutputCondition:
|
|
|
95
95
|
unconverted_values={"actual_quantity_json", "quantity_json"},
|
|
96
96
|
to_string_values={"actual_quantity_dec", "quantity_dec"},
|
|
97
97
|
)
|
|
98
|
-
@dataclasses.dataclass(kw_only=True)
|
|
98
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
99
99
|
class RecipeInput:
|
|
100
100
|
id: base_t.ObjectId
|
|
101
101
|
input_id: base_t.ObjectId
|
|
@@ -114,7 +114,7 @@ class RecipeInput:
|
|
|
114
114
|
@serial_class(
|
|
115
115
|
named_type_path="sdk.api.recipes.get_recipes_data.RecipeStep",
|
|
116
116
|
)
|
|
117
|
-
@dataclasses.dataclass(kw_only=True)
|
|
117
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
118
118
|
class RecipeStep:
|
|
119
119
|
name: str | None
|
|
120
120
|
recipe_step_id: base_t.ObjectId
|
|
@@ -126,7 +126,7 @@ class RecipeStep:
|
|
|
126
126
|
@serial_class(
|
|
127
127
|
named_type_path="sdk.api.recipes.get_recipes_data.RecipeStepGroup",
|
|
128
128
|
)
|
|
129
|
-
@dataclasses.dataclass(kw_only=True)
|
|
129
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
130
130
|
class RecipeStepGroup:
|
|
131
131
|
name: str | None
|
|
132
132
|
recipe_steps: list[RecipeStep]
|
|
@@ -136,7 +136,7 @@ class RecipeStepGroup:
|
|
|
136
136
|
@serial_class(
|
|
137
137
|
named_type_path="sdk.api.recipes.get_recipes_data.RecipeWorkflowStep",
|
|
138
138
|
)
|
|
139
|
-
@dataclasses.dataclass(kw_only=True)
|
|
139
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
140
140
|
class RecipeWorkflowStep:
|
|
141
141
|
recipe_workflow_step_id: base_t.ObjectId
|
|
142
142
|
workflow_step_id: base_t.ObjectId
|
|
@@ -148,7 +148,7 @@ class RecipeWorkflowStep:
|
|
|
148
148
|
named_type_path="sdk.api.recipes.get_recipes_data.RecipeStepRelationship",
|
|
149
149
|
to_string_values={"actual_quantity_dec", "quantity_dec"},
|
|
150
150
|
)
|
|
151
|
-
@dataclasses.dataclass(kw_only=True)
|
|
151
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
152
152
|
class RecipeStepRelationship:
|
|
153
153
|
step_relationship_id: base_t.ObjectId
|
|
154
154
|
name: str | None
|
|
@@ -162,7 +162,7 @@ class RecipeStepRelationship:
|
|
|
162
162
|
@serial_class(
|
|
163
163
|
named_type_path="sdk.api.recipes.get_recipes_data.Recipe",
|
|
164
164
|
)
|
|
165
|
-
@dataclasses.dataclass(kw_only=True)
|
|
165
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
166
166
|
class Recipe:
|
|
167
167
|
recipe_id: base_t.ObjectId
|
|
168
168
|
create_datetime: str
|
|
@@ -185,7 +185,7 @@ class Recipe:
|
|
|
185
185
|
@serial_class(
|
|
186
186
|
named_type_path="sdk.api.recipes.get_recipes_data.Data",
|
|
187
187
|
)
|
|
188
|
-
@dataclasses.dataclass(kw_only=True)
|
|
188
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
189
189
|
class Data:
|
|
190
190
|
recipes: list[Recipe]
|
|
191
191
|
workflows: list[workflows_t.SimpleWorkflow]
|
|
@@ -9,6 +9,7 @@ from decimal import Decimal # noqa: F401
|
|
|
9
9
|
from enum import StrEnum
|
|
10
10
|
import dataclasses
|
|
11
11
|
from pkgs.serialization import serial_class
|
|
12
|
+
from ... import base_t
|
|
12
13
|
from ... import identifier_t
|
|
13
14
|
|
|
14
15
|
__all__: list[str] = [
|
|
@@ -34,7 +35,7 @@ class RecipeLockType(StrEnum):
|
|
|
34
35
|
@serial_class(
|
|
35
36
|
named_type_path="sdk.api.recipes.lock_recipes.RecipeLockBase",
|
|
36
37
|
)
|
|
37
|
-
@dataclasses.dataclass(kw_only=True)
|
|
38
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
38
39
|
class RecipeLockBase:
|
|
39
40
|
recipe: identifier_t.IdentifierKey
|
|
40
41
|
|
|
@@ -43,7 +44,7 @@ class RecipeLockBase:
|
|
|
43
44
|
@serial_class(
|
|
44
45
|
named_type_path="sdk.api.recipes.lock_recipes.Arguments",
|
|
45
46
|
)
|
|
46
|
-
@dataclasses.dataclass(kw_only=True)
|
|
47
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
47
48
|
class Arguments:
|
|
48
49
|
type: RecipeLockType = RecipeLockType.ALL
|
|
49
50
|
recipes: list[identifier_t.IdentifierKey]
|
|
@@ -56,7 +57,7 @@ class Arguments:
|
|
|
56
57
|
@serial_class(
|
|
57
58
|
named_type_path="sdk.api.recipes.lock_recipes.Data",
|
|
58
59
|
)
|
|
59
|
-
@dataclasses.dataclass(kw_only=True)
|
|
60
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
60
61
|
class Data:
|
|
61
62
|
pass
|
|
62
63
|
# DO NOT MODIFY -- This file is generated by type_spec
|