UncountablePythonSDK 0.0.72__py3-none-any.whl → 0.0.74__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.

Files changed (117) hide show
  1. {UncountablePythonSDK-0.0.72.dist-info → UncountablePythonSDK-0.0.74.dist-info}/METADATA +1 -1
  2. {UncountablePythonSDK-0.0.72.dist-info → UncountablePythonSDK-0.0.74.dist-info}/RECORD +117 -117
  3. {UncountablePythonSDK-0.0.72.dist-info → UncountablePythonSDK-0.0.74.dist-info}/WHEEL +1 -1
  4. examples/integration-server/jobs/materials_auto/profile.yaml +1 -1
  5. pkgs/argument_parser/__init__.py +1 -0
  6. pkgs/argument_parser/argument_parser.py +13 -1
  7. pkgs/serialization/serial_class.py +18 -0
  8. pkgs/serialization/serial_union.py +3 -0
  9. pkgs/type_spec/builder.py +70 -22
  10. pkgs/type_spec/config.py +5 -0
  11. pkgs/type_spec/emit_python.py +35 -22
  12. pkgs/type_spec/emit_typescript.py +31 -22
  13. pkgs/type_spec/emit_typescript_util.py +0 -2
  14. pkgs/type_spec/load_types.py +3 -2
  15. pkgs/type_spec/type_info/emit_type_info.py +7 -7
  16. pkgs/type_spec/util.py +1 -1
  17. uncountable/core/client.py +2 -2
  18. uncountable/integration/entrypoint.py +1 -9
  19. uncountable/integration/queue_runner/worker.py +9 -5
  20. uncountable/integration/server.py +63 -66
  21. uncountable/types/api/batch/execute_batch.py +8 -0
  22. uncountable/types/api/batch/execute_batch_load_async.py +7 -0
  23. uncountable/types/api/chemical/convert_chemical_formats.py +7 -0
  24. uncountable/types/api/entity/create_entities.py +11 -1
  25. uncountable/types/api/entity/create_entity.py +8 -1
  26. uncountable/types/api/entity/get_entities_data.py +10 -0
  27. uncountable/types/api/entity/list_entities.py +8 -0
  28. uncountable/types/api/entity/lock_entity.py +7 -0
  29. uncountable/types/api/entity/resolve_entity_ids.py +10 -0
  30. uncountable/types/api/entity/set_values.py +7 -0
  31. uncountable/types/api/entity/transition_entity_phase.py +8 -0
  32. uncountable/types/api/entity/unlock_entity.py +7 -0
  33. uncountable/types/api/equipment/associate_equipment_input.py +7 -0
  34. uncountable/types/api/field_options/upsert_field_options.py +10 -0
  35. uncountable/types/api/id_source/list_id_source.py +10 -0
  36. uncountable/types/api/id_source/match_id_source.py +10 -0
  37. uncountable/types/api/input_groups/get_input_group_names.py +10 -0
  38. uncountable/types/api/inputs/create_inputs.py +13 -0
  39. uncountable/types/api/inputs/get_input_data.py +19 -0
  40. uncountable/types/api/inputs/get_input_names.py +10 -0
  41. uncountable/types/api/inputs/get_inputs_data.py +19 -0
  42. uncountable/types/api/inputs/set_input_attribute_values.py +7 -0
  43. uncountable/types/api/inputs/set_input_category.py +7 -0
  44. uncountable/types/api/inputs/set_input_subcategories.py +7 -0
  45. uncountable/types/api/inputs/set_intermediate_type.py +7 -0
  46. uncountable/types/api/material_families/update_entity_material_families.py +7 -0
  47. uncountable/types/api/outputs/get_output_data.py +16 -0
  48. uncountable/types/api/outputs/get_output_names.py +10 -0
  49. uncountable/types/api/outputs/resolve_output_conditions.py +13 -0
  50. uncountable/types/api/permissions/set_core_permissions.py +10 -0
  51. uncountable/types/api/project/get_projects.py +10 -0
  52. uncountable/types/api/project/get_projects_data.py +10 -0
  53. uncountable/types/api/recipe_links/create_recipe_link.py +7 -0
  54. uncountable/types/api/recipe_links/remove_recipe_link.py +7 -0
  55. uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +10 -0
  56. uncountable/types/api/recipes/add_recipe_to_project.py +7 -0
  57. uncountable/types/api/recipes/archive_recipes.py +7 -0
  58. uncountable/types/api/recipes/associate_recipe_as_input.py +7 -0
  59. uncountable/types/api/recipes/associate_recipe_as_lot.py +7 -0
  60. uncountable/types/api/recipes/clear_recipe_outputs.py +7 -0
  61. uncountable/types/api/recipes/create_recipe.py +7 -0
  62. uncountable/types/api/recipes/create_recipes.py +13 -0
  63. uncountable/types/api/recipes/disassociate_recipe_as_input.py +7 -0
  64. uncountable/types/api/recipes/edit_recipe_inputs.py +20 -0
  65. uncountable/types/api/recipes/get_curve.py +7 -0
  66. uncountable/types/api/recipes/get_recipe_calculations.py +7 -0
  67. uncountable/types/api/recipes/get_recipe_links.py +7 -0
  68. uncountable/types/api/recipes/get_recipe_names.py +10 -0
  69. uncountable/types/api/recipes/get_recipe_output_metadata.py +7 -0
  70. uncountable/types/api/recipes/get_recipes_data.py +25 -0
  71. uncountable/types/api/recipes/lock_recipes.py +10 -0
  72. uncountable/types/api/recipes/remove_recipe_from_project.py +7 -0
  73. uncountable/types/api/recipes/set_recipe_inputs.py +7 -0
  74. uncountable/types/api/recipes/set_recipe_metadata.py +7 -0
  75. uncountable/types/api/recipes/set_recipe_output_annotations.py +13 -0
  76. uncountable/types/api/recipes/set_recipe_output_file.py +10 -0
  77. uncountable/types/api/recipes/set_recipe_outputs.py +10 -0
  78. uncountable/types/api/recipes/set_recipe_tags.py +12 -0
  79. uncountable/types/api/recipes/unarchive_recipes.py +7 -0
  80. uncountable/types/api/recipes/unlock_recipes.py +7 -0
  81. uncountable/types/api/triggers/run_trigger.py +7 -0
  82. uncountable/types/api/uploader/invoke_uploader.py +9 -1
  83. uncountable/types/async_batch_processor.py +4 -1
  84. uncountable/types/async_batch_t.py +10 -0
  85. uncountable/types/calculations_t.py +4 -0
  86. uncountable/types/chemical_structure_t.py +1 -0
  87. uncountable/types/client_base.py +6 -3
  88. uncountable/types/client_config_t.py +4 -0
  89. uncountable/types/curves_t.py +4 -0
  90. uncountable/types/entity_t.py +8 -0
  91. uncountable/types/experiment_groups_t.py +4 -0
  92. uncountable/types/field_values_t.py +4 -0
  93. uncountable/types/fields_t.py +4 -0
  94. uncountable/types/generic_upload_t.py +13 -0
  95. uncountable/types/id_source_t.py +13 -0
  96. uncountable/types/identifier_t.py +3 -0
  97. uncountable/types/input_attributes_t.py +1 -0
  98. uncountable/types/inputs_t.py +4 -0
  99. uncountable/types/job_definition_t.py +33 -0
  100. uncountable/types/outputs_t.py +4 -0
  101. uncountable/types/overrides_t.py +7 -0
  102. uncountable/types/phases_t.py +4 -0
  103. uncountable/types/queued_job_t.py +16 -0
  104. uncountable/types/recipe_identifiers_t.py +3 -0
  105. uncountable/types/recipe_links_t.py +4 -0
  106. uncountable/types/recipe_metadata_t.py +5 -0
  107. uncountable/types/recipe_output_metadata_t.py +4 -0
  108. uncountable/types/recipe_tags_t.py +4 -0
  109. uncountable/types/recipe_workflow_steps_t.py +7 -0
  110. uncountable/types/recipes_t.py +4 -0
  111. uncountable/types/response_t.py +1 -0
  112. uncountable/types/secret_retrieval_t.py +6 -0
  113. uncountable/types/units_t.py +4 -0
  114. uncountable/types/users_t.py +4 -0
  115. uncountable/types/webhook_job_t.py +4 -0
  116. uncountable/types/workflows_t.py +7 -0
  117. {UncountablePythonSDK-0.0.72.dist-info → UncountablePythonSDK-0.0.74.dist-info}/top_level.txt +0 -0
@@ -8,6 +8,7 @@ import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  import dataclasses
11
+ from pkgs.serialization import serial_class
11
12
  from ... import async_batch_t
12
13
  from ... import identifier_t
13
14
  from ... import recipe_links_t
@@ -24,6 +25,9 @@ ENDPOINT_PATH = "api/external/recipe_links/create_recipe_link"
24
25
 
25
26
 
26
27
  # DO NOT MODIFY -- This file is generated by type_spec
28
+ @serial_class(
29
+ named_type_path="sdk.api.recipe_links.create_recipe_link.Arguments",
30
+ )
27
31
  @dataclasses.dataclass(kw_only=True)
28
32
  class Arguments:
29
33
  recipe_from_key: identifier_t.IdentifierKey
@@ -33,6 +37,9 @@ class Arguments:
33
37
 
34
38
 
35
39
  # DO NOT MODIFY -- This file is generated by type_spec
40
+ @serial_class(
41
+ named_type_path="sdk.api.recipe_links.create_recipe_link.Data",
42
+ )
36
43
  @dataclasses.dataclass(kw_only=True)
37
44
  class Data(async_batch_t.AsyncBatchActionReturn):
38
45
  pass
@@ -8,6 +8,7 @@ import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  import dataclasses
11
+ from pkgs.serialization import serial_class
11
12
  from ... import async_batch_t
12
13
  from ... import identifier_t
13
14
  from ... import recipe_links_t
@@ -24,6 +25,9 @@ ENDPOINT_PATH = "api/external/recipe_links/remove_recipe_link"
24
25
 
25
26
 
26
27
  # DO NOT MODIFY -- This file is generated by type_spec
28
+ @serial_class(
29
+ named_type_path="sdk.api.recipe_links.remove_recipe_link.Arguments",
30
+ )
27
31
  @dataclasses.dataclass(kw_only=True)
28
32
  class Arguments:
29
33
  recipe_from_key: identifier_t.IdentifierKey
@@ -32,6 +36,9 @@ class Arguments:
32
36
 
33
37
 
34
38
  # DO NOT MODIFY -- This file is generated by type_spec
39
+ @serial_class(
40
+ named_type_path="sdk.api.recipe_links.remove_recipe_link.Data",
41
+ )
35
42
  @dataclasses.dataclass(kw_only=True)
36
43
  class Data(async_batch_t.AsyncBatchActionReturn):
37
44
  pass
@@ -8,6 +8,7 @@ import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  import dataclasses
11
+ from pkgs.serialization import serial_class
11
12
  from ... import base_t
12
13
 
13
14
  __all__: list[str] = [
@@ -23,6 +24,9 @@ ENDPOINT_PATH = "api/external/recipe_metadata/external_get_recipe_metadata_data"
23
24
 
24
25
 
25
26
  # DO NOT MODIFY -- This file is generated by type_spec
27
+ @serial_class(
28
+ named_type_path="sdk.api.recipe_metadata.get_recipe_metadata_data.Arguments",
29
+ )
26
30
  @dataclasses.dataclass(kw_only=True)
27
31
  class Arguments:
28
32
  material_family_id: base_t.ObjectId
@@ -32,6 +36,9 @@ class Arguments:
32
36
 
33
37
 
34
38
  # DO NOT MODIFY -- This file is generated by type_spec
39
+ @serial_class(
40
+ named_type_path="sdk.api.recipe_metadata.get_recipe_metadata_data.FullRecipeMetadataField",
41
+ )
35
42
  @dataclasses.dataclass(kw_only=True)
36
43
  class FullRecipeMetadataField:
37
44
  recipe_metadata_id: base_t.ObjectId
@@ -40,6 +47,9 @@ class FullRecipeMetadataField:
40
47
 
41
48
 
42
49
  # DO NOT MODIFY -- This file is generated by type_spec
50
+ @serial_class(
51
+ named_type_path="sdk.api.recipe_metadata.get_recipe_metadata_data.Data",
52
+ )
43
53
  @dataclasses.dataclass(kw_only=True)
44
54
  class Data:
45
55
  recipe_metadata: list[FullRecipeMetadataField]
@@ -8,6 +8,7 @@ import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  import dataclasses
11
+ from pkgs.serialization import serial_class
11
12
  from ... import identifier_t
12
13
 
13
14
  __all__: list[str] = [
@@ -22,6 +23,9 @@ ENDPOINT_PATH = "api/external/recipes/add_recipe_to_project"
22
23
 
23
24
 
24
25
  # DO NOT MODIFY -- This file is generated by type_spec
26
+ @serial_class(
27
+ named_type_path="sdk.api.recipes.add_recipe_to_project.Arguments",
28
+ )
25
29
  @dataclasses.dataclass(kw_only=True)
26
30
  class Arguments:
27
31
  recipe_key: identifier_t.IdentifierKey
@@ -29,6 +33,9 @@ class Arguments:
29
33
 
30
34
 
31
35
  # DO NOT MODIFY -- This file is generated by type_spec
36
+ @serial_class(
37
+ named_type_path="sdk.api.recipes.add_recipe_to_project.Data",
38
+ )
32
39
  @dataclasses.dataclass(kw_only=True)
33
40
  class Data:
34
41
  pass
@@ -8,6 +8,7 @@ import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  import dataclasses
11
+ from pkgs.serialization import serial_class
11
12
  from ... import identifier_t
12
13
 
13
14
  __all__: list[str] = [
@@ -22,6 +23,9 @@ ENDPOINT_PATH = "api/external/recipes/archive"
22
23
 
23
24
 
24
25
  # DO NOT MODIFY -- This file is generated by type_spec
26
+ @serial_class(
27
+ named_type_path="sdk.api.recipes.archive_recipes.Arguments",
28
+ )
25
29
  @dataclasses.dataclass(kw_only=True)
26
30
  class Arguments:
27
31
  recipes: list[identifier_t.IdentifierKey]
@@ -29,6 +33,9 @@ class Arguments:
29
33
 
30
34
 
31
35
  # DO NOT MODIFY -- This file is generated by type_spec
36
+ @serial_class(
37
+ named_type_path="sdk.api.recipes.archive_recipes.Data",
38
+ )
32
39
  @dataclasses.dataclass(kw_only=True)
33
40
  class Data:
34
41
  pass
@@ -8,6 +8,7 @@ import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  import dataclasses
11
+ from pkgs.serialization import serial_class
11
12
  from ... import async_batch_t
12
13
  from ... import identifier_t
13
14
 
@@ -23,6 +24,9 @@ ENDPOINT_PATH = "api/external/recipes/associate_recipe_as_input"
23
24
 
24
25
 
25
26
  # DO NOT MODIFY -- This file is generated by type_spec
27
+ @serial_class(
28
+ named_type_path="sdk.api.recipes.associate_recipe_as_input.Arguments",
29
+ )
26
30
  @dataclasses.dataclass(kw_only=True)
27
31
  class Arguments:
28
32
  recipe_key: identifier_t.IdentifierKey
@@ -31,6 +35,9 @@ class Arguments:
31
35
 
32
36
 
33
37
  # DO NOT MODIFY -- This file is generated by type_spec
38
+ @serial_class(
39
+ named_type_path="sdk.api.recipes.associate_recipe_as_input.Data",
40
+ )
34
41
  @dataclasses.dataclass(kw_only=True)
35
42
  class Data(async_batch_t.AsyncBatchActionReturn):
36
43
  pass
@@ -8,6 +8,7 @@ import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  import dataclasses
11
+ from pkgs.serialization import serial_class
11
12
  from ... import async_batch_t
12
13
  from ... import identifier_t
13
14
 
@@ -23,6 +24,9 @@ ENDPOINT_PATH = "api/external/recipes/associate_recipe_as_lot"
23
24
 
24
25
 
25
26
  # DO NOT MODIFY -- This file is generated by type_spec
27
+ @serial_class(
28
+ named_type_path="sdk.api.recipes.associate_recipe_as_lot.Arguments",
29
+ )
26
30
  @dataclasses.dataclass(kw_only=True)
27
31
  class Arguments:
28
32
  recipe_key: identifier_t.IdentifierKey
@@ -30,6 +34,9 @@ class Arguments:
30
34
 
31
35
 
32
36
  # DO NOT MODIFY -- This file is generated by type_spec
37
+ @serial_class(
38
+ named_type_path="sdk.api.recipes.associate_recipe_as_lot.Data",
39
+ )
33
40
  @dataclasses.dataclass(kw_only=True)
34
41
  class Data(async_batch_t.AsyncBatchActionReturn):
35
42
  pass
@@ -8,6 +8,7 @@ import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  import dataclasses
11
+ from pkgs.serialization import serial_class
11
12
  from ... import async_batch_t
12
13
  from ... import identifier_t
13
14
 
@@ -23,12 +24,18 @@ ENDPOINT_PATH = "api/external/recipes/clear_recipe_outputs"
23
24
 
24
25
 
25
26
  # DO NOT MODIFY -- This file is generated by type_spec
27
+ @serial_class(
28
+ named_type_path="sdk.api.recipes.clear_recipe_outputs.Arguments",
29
+ )
26
30
  @dataclasses.dataclass(kw_only=True)
27
31
  class Arguments:
28
32
  recipe_key: identifier_t.IdentifierKey
29
33
 
30
34
 
31
35
  # DO NOT MODIFY -- This file is generated by type_spec
36
+ @serial_class(
37
+ named_type_path="sdk.api.recipes.clear_recipe_outputs.Data",
38
+ )
32
39
  @dataclasses.dataclass(kw_only=True)
33
40
  class Data(async_batch_t.AsyncBatchActionReturn):
34
41
  pass
@@ -8,6 +8,7 @@ import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  import dataclasses
11
+ from pkgs.serialization import serial_class
11
12
  from ... import base_t
12
13
  from ... import identifier_t
13
14
  from ... import recipe_identifiers_t
@@ -25,6 +26,9 @@ ENDPOINT_PATH = "api/external/recipes/create_recipe"
25
26
 
26
27
 
27
28
  # DO NOT MODIFY -- This file is generated by type_spec
29
+ @serial_class(
30
+ named_type_path="sdk.api.recipes.create_recipe.Arguments",
31
+ )
28
32
  @dataclasses.dataclass(kw_only=True)
29
33
  class Arguments:
30
34
  material_family_id: base_t.ObjectId
@@ -38,6 +42,9 @@ class Arguments:
38
42
 
39
43
 
40
44
  # DO NOT MODIFY -- This file is generated by type_spec
45
+ @serial_class(
46
+ named_type_path="sdk.api.recipes.create_recipe.Data",
47
+ )
41
48
  @dataclasses.dataclass(kw_only=True)
42
49
  class Data:
43
50
  result_id: base_t.ObjectId
@@ -8,6 +8,7 @@ import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  import dataclasses
11
+ from pkgs.serialization import serial_class
11
12
  from ... import base_t
12
13
  from ... import recipe_metadata_t
13
14
 
@@ -25,6 +26,9 @@ ENDPOINT_PATH = "api/external/recipes/external_create_recipes"
25
26
 
26
27
 
27
28
  # DO NOT MODIFY -- This file is generated by type_spec
29
+ @serial_class(
30
+ named_type_path="sdk.api.recipes.create_recipes.CreateRecipeDefinition",
31
+ )
28
32
  @dataclasses.dataclass(kw_only=True)
29
33
  class CreateRecipeDefinition:
30
34
  workflow_id: base_t.ObjectId
@@ -34,6 +38,9 @@ class CreateRecipeDefinition:
34
38
 
35
39
 
36
40
  # DO NOT MODIFY -- This file is generated by type_spec
41
+ @serial_class(
42
+ named_type_path="sdk.api.recipes.create_recipes.Arguments",
43
+ )
37
44
  @dataclasses.dataclass(kw_only=True)
38
45
  class Arguments:
39
46
  material_family_id: base_t.ObjectId
@@ -42,12 +49,18 @@ class Arguments:
42
49
 
43
50
 
44
51
  # DO NOT MODIFY -- This file is generated by type_spec
52
+ @serial_class(
53
+ named_type_path="sdk.api.recipes.create_recipes.CreateRecipeResult",
54
+ )
45
55
  @dataclasses.dataclass(kw_only=True)
46
56
  class CreateRecipeResult:
47
57
  recipe_id: base_t.ObjectId
48
58
 
49
59
 
50
60
  # DO NOT MODIFY -- This file is generated by type_spec
61
+ @serial_class(
62
+ named_type_path="sdk.api.recipes.create_recipes.Data",
63
+ )
51
64
  @dataclasses.dataclass(kw_only=True)
52
65
  class Data:
53
66
  recipes: list[CreateRecipeResult]
@@ -8,6 +8,7 @@ import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  import dataclasses
11
+ from pkgs.serialization import serial_class
11
12
  from ... import async_batch_t
12
13
  from ... import identifier_t
13
14
 
@@ -23,12 +24,18 @@ ENDPOINT_PATH = "api/external/recipes/disassociate_recipe_as_input"
23
24
 
24
25
 
25
26
  # DO NOT MODIFY -- This file is generated by type_spec
27
+ @serial_class(
28
+ named_type_path="sdk.api.recipes.disassociate_recipe_as_input.Arguments",
29
+ )
26
30
  @dataclasses.dataclass(kw_only=True)
27
31
  class Arguments:
28
32
  recipe_key: identifier_t.IdentifierKey
29
33
 
30
34
 
31
35
  # DO NOT MODIFY -- This file is generated by type_spec
36
+ @serial_class(
37
+ named_type_path="sdk.api.recipes.disassociate_recipe_as_input.Data",
38
+ )
32
39
  @dataclasses.dataclass(kw_only=True)
33
40
  class Data(async_batch_t.AsyncBatchActionReturn):
34
41
  pass
@@ -53,6 +53,9 @@ class RecipeInputEditType(StrEnum):
53
53
 
54
54
 
55
55
  # DO NOT MODIFY -- This file is generated by type_spec
56
+ @serial_class(
57
+ named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEditBase",
58
+ )
56
59
  @dataclasses.dataclass(kw_only=True)
57
60
  class RecipeInputEditBase:
58
61
  type: RecipeInputEditType
@@ -60,6 +63,7 @@ class RecipeInputEditBase:
60
63
 
61
64
  # DO NOT MODIFY -- This file is generated by type_spec
62
65
  @serial_class(
66
+ named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEditClearInputs",
63
67
  parse_require={"type"},
64
68
  )
65
69
  @dataclasses.dataclass(kw_only=True)
@@ -69,6 +73,7 @@ class RecipeInputEditClearInputs(RecipeInputEditBase):
69
73
 
70
74
  # DO NOT MODIFY -- This file is generated by type_spec
71
75
  @serial_class(
76
+ named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEditInputBase",
72
77
  to_string_values={"value_numeric"},
73
78
  )
74
79
  @dataclasses.dataclass(kw_only=True)
@@ -84,6 +89,7 @@ class RecipeInputEditInputBase(RecipeInputEditBase):
84
89
 
85
90
  # DO NOT MODIFY -- This file is generated by type_spec
86
91
  @serial_class(
92
+ named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEditChangeBasisViewed",
87
93
  parse_require={"type"},
88
94
  )
89
95
  @dataclasses.dataclass(kw_only=True)
@@ -93,6 +99,7 @@ class RecipeInputEditChangeBasisViewed(RecipeInputEditInputBase):
93
99
 
94
100
  # DO NOT MODIFY -- This file is generated by type_spec
95
101
  @serial_class(
102
+ named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEditUpsertInput",
96
103
  parse_require={"type"},
97
104
  )
98
105
  @dataclasses.dataclass(kw_only=True)
@@ -103,6 +110,7 @@ class RecipeInputEditUpsertInput(RecipeInputEditInputBase):
103
110
 
104
111
  # DO NOT MODIFY -- This file is generated by type_spec
105
112
  @serial_class(
113
+ named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEditAddInput",
106
114
  parse_require={"type"},
107
115
  )
108
116
  @dataclasses.dataclass(kw_only=True)
@@ -112,6 +120,7 @@ class RecipeInputEditAddInput(RecipeInputEditInputBase):
112
120
 
113
121
  # DO NOT MODIFY -- This file is generated by type_spec
114
122
  @serial_class(
123
+ named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEditSetLot",
115
124
  parse_require={"type"},
116
125
  )
117
126
  @dataclasses.dataclass(kw_only=True)
@@ -123,6 +132,7 @@ class RecipeInputEditSetLot(RecipeInputEditBase):
123
132
 
124
133
  # DO NOT MODIFY -- This file is generated by type_spec
125
134
  @serial_class(
135
+ named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEditAddInstructions",
126
136
  parse_require={"type"},
127
137
  )
128
138
  @dataclasses.dataclass(kw_only=True)
@@ -133,6 +143,7 @@ class RecipeInputEditAddInstructions(RecipeInputEditBase):
133
143
 
134
144
  # DO NOT MODIFY -- This file is generated by type_spec
135
145
  @serial_class(
146
+ named_type_path="sdk.api.recipes.edit_recipe_inputs.AnnotationEdit",
136
147
  to_string_values={"lower_value", "upper_value"},
137
148
  )
138
149
  @dataclasses.dataclass(kw_only=True)
@@ -144,6 +155,7 @@ class AnnotationEdit:
144
155
 
145
156
  # DO NOT MODIFY -- This file is generated by type_spec
146
157
  @serial_class(
158
+ named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEditUpdateAnnotations",
147
159
  parse_require={"type"},
148
160
  )
149
161
  @dataclasses.dataclass(kw_only=True)
@@ -155,6 +167,7 @@ class RecipeInputEditUpdateAnnotations(RecipeInputEditInputBase):
155
167
 
156
168
  # DO NOT MODIFY -- This file is generated by type_spec
157
169
  @serial_class(
170
+ named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEditSetRole",
158
171
  parse_require={"type"},
159
172
  )
160
173
  @dataclasses.dataclass(kw_only=True)
@@ -168,6 +181,7 @@ class RecipeInputEditSetRole(RecipeInputEditBase):
168
181
  RecipeInputEdit = typing.Annotated[
169
182
  typing.Union[RecipeInputEditClearInputs, RecipeInputEditUpsertInput, RecipeInputEditAddInput, RecipeInputEditUpdateAnnotations, RecipeInputEditSetLot, RecipeInputEditChangeBasisViewed, RecipeInputEditAddInstructions, RecipeInputEditSetRole],
170
183
  serial_union_annotation(
184
+ named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEdit",
171
185
  discriminator="type",
172
186
  discriminator_map={
173
187
  "clear_inputs": RecipeInputEditClearInputs,
@@ -184,6 +198,9 @@ RecipeInputEdit = typing.Annotated[
184
198
 
185
199
 
186
200
  # DO NOT MODIFY -- This file is generated by type_spec
201
+ @serial_class(
202
+ named_type_path="sdk.api.recipes.edit_recipe_inputs.Arguments",
203
+ )
187
204
  @dataclasses.dataclass(kw_only=True)
188
205
  class Arguments:
189
206
  recipe_key: identifier_t.IdentifierKey
@@ -192,6 +209,9 @@ class Arguments:
192
209
 
193
210
 
194
211
  # DO NOT MODIFY -- This file is generated by type_spec
212
+ @serial_class(
213
+ named_type_path="sdk.api.recipes.edit_recipe_inputs.Data",
214
+ )
195
215
  @dataclasses.dataclass(kw_only=True)
196
216
  class Data:
197
217
  pass
@@ -8,6 +8,7 @@ import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  import dataclasses
11
+ from pkgs.serialization import serial_class
11
12
  from ... import base_t
12
13
  from ... import curves_t
13
14
 
@@ -23,6 +24,9 @@ ENDPOINT_PATH = "api/external/recipes/external_get_curve"
23
24
 
24
25
 
25
26
  # DO NOT MODIFY -- This file is generated by type_spec
27
+ @serial_class(
28
+ named_type_path="sdk.api.recipes.get_curve.Arguments",
29
+ )
26
30
  @dataclasses.dataclass(kw_only=True)
27
31
  class Arguments:
28
32
  recipe_output_id: typing.Optional[base_t.ObjectId] = None
@@ -30,6 +34,9 @@ class Arguments:
30
34
 
31
35
 
32
36
  # DO NOT MODIFY -- This file is generated by type_spec
37
+ @serial_class(
38
+ named_type_path="sdk.api.recipes.get_curve.Data",
39
+ )
33
40
  @dataclasses.dataclass(kw_only=True)
34
41
  class Data:
35
42
  curve: curves_t.Curve
@@ -25,6 +25,9 @@ ENDPOINT_PATH = "api/external/recipes/external_get_recipe_calculations"
25
25
 
26
26
 
27
27
  # DO NOT MODIFY -- This file is generated by type_spec
28
+ @serial_class(
29
+ named_type_path="sdk.api.recipes.get_recipe_calculations.Arguments",
30
+ )
28
31
  @dataclasses.dataclass(kw_only=True)
29
32
  class Arguments:
30
33
  recipe_ids: list[base_t.ObjectId]
@@ -33,6 +36,7 @@ class Arguments:
33
36
 
34
37
  # DO NOT MODIFY -- This file is generated by type_spec
35
38
  @serial_class(
39
+ named_type_path="sdk.api.recipes.get_recipe_calculations.RecipeCalculation",
36
40
  unconverted_values={"quantity_json"},
37
41
  to_string_values={"quantity_dec"},
38
42
  )
@@ -45,6 +49,9 @@ class RecipeCalculation:
45
49
 
46
50
 
47
51
  # DO NOT MODIFY -- This file is generated by type_spec
52
+ @serial_class(
53
+ named_type_path="sdk.api.recipes.get_recipe_calculations.Data",
54
+ )
48
55
  @dataclasses.dataclass(kw_only=True)
49
56
  class Data:
50
57
  recipe_calculations: list[RecipeCalculation]
@@ -8,6 +8,7 @@ import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  import dataclasses
11
+ from pkgs.serialization import serial_class
11
12
  from ... import base_t
12
13
  from ... import recipe_links_t
13
14
 
@@ -23,6 +24,9 @@ ENDPOINT_PATH = "api/external/recipes/external_get_recipe_links"
23
24
 
24
25
 
25
26
  # DO NOT MODIFY -- This file is generated by type_spec
27
+ @serial_class(
28
+ named_type_path="sdk.api.recipes.get_recipe_links.Arguments",
29
+ )
26
30
  @dataclasses.dataclass(kw_only=True)
27
31
  class Arguments:
28
32
  recipe_ids: list[base_t.ObjectId]
@@ -31,6 +35,9 @@ class Arguments:
31
35
 
32
36
 
33
37
  # DO NOT MODIFY -- This file is generated by type_spec
38
+ @serial_class(
39
+ named_type_path="sdk.api.recipes.get_recipe_links.Data",
40
+ )
34
41
  @dataclasses.dataclass(kw_only=True)
35
42
  class Data:
36
43
  recipe_links: list[recipe_links_t.RecipeLink]
@@ -8,6 +8,7 @@ import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
10
  import dataclasses
11
+ from pkgs.serialization import serial_class
11
12
  from ... import base_t
12
13
 
13
14
  __all__: list[str] = [
@@ -23,12 +24,18 @@ ENDPOINT_PATH = "api/external/recipes/external_get_recipe_names"
23
24
 
24
25
 
25
26
  # DO NOT MODIFY -- This file is generated by type_spec
27
+ @serial_class(
28
+ named_type_path="sdk.api.recipes.get_recipe_names.Arguments",
29
+ )
26
30
  @dataclasses.dataclass(kw_only=True)
27
31
  class Arguments:
28
32
  project_id: base_t.ObjectId
29
33
 
30
34
 
31
35
  # DO NOT MODIFY -- This file is generated by type_spec
36
+ @serial_class(
37
+ named_type_path="sdk.api.recipes.get_recipe_names.SimpleRecipe",
38
+ )
32
39
  @dataclasses.dataclass(kw_only=True)
33
40
  class SimpleRecipe:
34
41
  id: base_t.ObjectId
@@ -36,6 +43,9 @@ class SimpleRecipe:
36
43
 
37
44
 
38
45
  # DO NOT MODIFY -- This file is generated by type_spec
46
+ @serial_class(
47
+ named_type_path="sdk.api.recipes.get_recipe_names.Data",
48
+ )
39
49
  @dataclasses.dataclass(kw_only=True)
40
50
  class Data:
41
51
  recipes: list[SimpleRecipe]
@@ -25,6 +25,9 @@ ENDPOINT_PATH = "api/external/recipes/external_get_recipe_output_metadata"
25
25
 
26
26
 
27
27
  # DO NOT MODIFY -- This file is generated by type_spec
28
+ @serial_class(
29
+ named_type_path="sdk.api.recipes.get_recipe_output_metadata.Arguments",
30
+ )
28
31
  @dataclasses.dataclass(kw_only=True)
29
32
  class Arguments:
30
33
  recipe_output_ids: list[base_t.ObjectId]
@@ -32,6 +35,7 @@ class Arguments:
32
35
 
33
36
  # DO NOT MODIFY -- This file is generated by type_spec
34
37
  @serial_class(
38
+ named_type_path="sdk.api.recipes.get_recipe_output_metadata.RecipeOutputMetadata",
35
39
  unconverted_values={"quantity_json"},
36
40
  to_string_values={"quantity_dec"},
37
41
  )
@@ -44,6 +48,9 @@ class RecipeOutputMetadata:
44
48
 
45
49
 
46
50
  # DO NOT MODIFY -- This file is generated by type_spec
51
+ @serial_class(
52
+ named_type_path="sdk.api.recipes.get_recipe_output_metadata.Data",
53
+ )
47
54
  @dataclasses.dataclass(kw_only=True)
48
55
  class Data:
49
56
  recipe_output_metadata: list[RecipeOutputMetadata]