UncountablePythonSDK 0.0.92__py3-none-any.whl → 0.0.95__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 (178) hide show
  1. {UncountablePythonSDK-0.0.92.dist-info → UncountablePythonSDK-0.0.95.dist-info}/METADATA +2 -1
  2. UncountablePythonSDK-0.0.95.dist-info/RECORD +302 -0
  3. pkgs/argument_parser/argument_parser.py +7 -7
  4. pkgs/filesystem_utils/_s3_session.py +2 -1
  5. pkgs/serialization/annotation.py +3 -3
  6. pkgs/serialization/missing_sentry.py +1 -1
  7. pkgs/serialization/serial_alias.py +2 -2
  8. pkgs/serialization/serial_class.py +1 -1
  9. pkgs/serialization/serial_generic.py +1 -1
  10. pkgs/serialization/serial_union.py +3 -3
  11. pkgs/serialization_util/_env_flags.py +3 -0
  12. pkgs/serialization_util/serialization_helpers.py +5 -5
  13. pkgs/type_spec/actions_registry/__main__.py +0 -4
  14. pkgs/type_spec/builder.py +25 -21
  15. pkgs/type_spec/config.py +2 -5
  16. pkgs/type_spec/emit_open_api.py +1 -1
  17. pkgs/type_spec/emit_python.py +44 -28
  18. pkgs/type_spec/emit_typescript.py +13 -6
  19. pkgs/type_spec/parts/base.py.prepart +2 -0
  20. pkgs/type_spec/util.py +3 -5
  21. pkgs/type_spec/value_spec/__main__.py +15 -5
  22. pkgs/type_spec/value_spec/emit_python.py +5 -2
  23. pkgs/type_spec/value_spec/types.py +1 -1
  24. uncountable/core/client.py +14 -6
  25. uncountable/core/file_upload.py +5 -0
  26. uncountable/integration/job.py +2 -2
  27. uncountable/integration/queue_runner/command_server/types.py +1 -1
  28. uncountable/integration/server.py +4 -4
  29. uncountable/types/__init__.py +0 -1
  30. uncountable/types/api/batch/execute_batch.py +1 -2
  31. uncountable/types/api/batch/execute_batch_load_async.py +0 -1
  32. uncountable/types/api/chemical/convert_chemical_formats.py +0 -1
  33. uncountable/types/api/entity/create_entities.py +1 -2
  34. uncountable/types/api/entity/create_entity.py +2 -3
  35. uncountable/types/api/entity/get_entities_data.py +0 -1
  36. uncountable/types/api/entity/grant_entity_permissions.py +0 -1
  37. uncountable/types/api/entity/list_entities.py +3 -4
  38. uncountable/types/api/entity/lock_entity.py +0 -1
  39. uncountable/types/api/entity/resolve_entity_ids.py +2 -3
  40. uncountable/types/api/entity/set_entity_field_values.py +0 -1
  41. uncountable/types/api/entity/set_values.py +0 -1
  42. uncountable/types/api/entity/transition_entity_phase.py +1 -2
  43. uncountable/types/api/entity/unlock_entity.py +0 -1
  44. uncountable/types/api/equipment/associate_equipment_input.py +0 -1
  45. uncountable/types/api/field_options/upsert_field_options.py +0 -1
  46. uncountable/types/api/files/download_file.py +1 -2
  47. uncountable/types/api/id_source/list_id_source.py +3 -4
  48. uncountable/types/api/id_source/match_id_source.py +1 -2
  49. uncountable/types/api/input_groups/get_input_group_names.py +0 -1
  50. uncountable/types/api/inputs/create_inputs.py +2 -3
  51. uncountable/types/api/inputs/get_input_data.py +5 -6
  52. uncountable/types/api/inputs/get_input_names.py +3 -4
  53. uncountable/types/api/inputs/get_inputs_data.py +0 -1
  54. uncountable/types/api/inputs/set_input_attribute_values.py +0 -1
  55. uncountable/types/api/inputs/set_input_category.py +1 -2
  56. uncountable/types/api/inputs/set_input_subcategories.py +0 -1
  57. uncountable/types/api/inputs/set_intermediate_type.py +1 -2
  58. uncountable/types/api/material_families/update_entity_material_families.py +1 -2
  59. uncountable/types/api/outputs/get_output_data.py +2 -3
  60. uncountable/types/api/outputs/get_output_names.py +0 -1
  61. uncountable/types/api/outputs/resolve_output_conditions.py +0 -1
  62. uncountable/types/api/permissions/set_core_permissions.py +1 -2
  63. uncountable/types/api/project/get_projects.py +3 -4
  64. uncountable/types/api/project/get_projects_data.py +4 -5
  65. uncountable/types/api/recipe_links/create_recipe_link.py +1 -2
  66. uncountable/types/api/recipe_links/remove_recipe_link.py +1 -2
  67. uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +3 -4
  68. uncountable/types/api/recipes/add_recipe_to_project.py +0 -1
  69. uncountable/types/api/recipes/archive_recipes.py +0 -1
  70. uncountable/types/api/recipes/associate_recipe_as_input.py +0 -1
  71. uncountable/types/api/recipes/associate_recipe_as_lot.py +0 -1
  72. uncountable/types/api/recipes/clear_recipe_outputs.py +0 -1
  73. uncountable/types/api/recipes/create_recipe.py +1 -2
  74. uncountable/types/api/recipes/create_recipes.py +1 -2
  75. uncountable/types/api/recipes/disassociate_recipe_as_input.py +0 -1
  76. uncountable/types/api/recipes/edit_recipe_inputs.py +3 -4
  77. uncountable/types/api/recipes/get_column_calculation_values.py +0 -1
  78. uncountable/types/api/recipes/get_curve.py +0 -1
  79. uncountable/types/api/recipes/get_recipe_calculations.py +0 -1
  80. uncountable/types/api/recipes/get_recipe_links.py +1 -2
  81. uncountable/types/api/recipes/get_recipe_names.py +0 -1
  82. uncountable/types/api/recipes/get_recipe_output_metadata.py +0 -1
  83. uncountable/types/api/recipes/get_recipes_data.py +13 -14
  84. uncountable/types/api/recipes/lock_recipes.py +1 -2
  85. uncountable/types/api/recipes/remove_recipe_from_project.py +0 -1
  86. uncountable/types/api/recipes/set_recipe_inputs.py +1 -2
  87. uncountable/types/api/recipes/set_recipe_metadata.py +0 -1
  88. uncountable/types/api/recipes/set_recipe_output_annotations.py +2 -3
  89. uncountable/types/api/recipes/set_recipe_output_file.py +0 -1
  90. uncountable/types/api/recipes/set_recipe_outputs.py +3 -4
  91. uncountable/types/api/recipes/set_recipe_tags.py +2 -3
  92. uncountable/types/api/recipes/unarchive_recipes.py +0 -1
  93. uncountable/types/api/recipes/unlock_recipes.py +1 -2
  94. uncountable/types/api/triggers/run_trigger.py +0 -1
  95. uncountable/types/api/uploader/invoke_uploader.py +0 -1
  96. uncountable/types/async_batch.py +0 -1
  97. uncountable/types/async_batch_processor.py +1 -2
  98. uncountable/types/async_batch_t.py +1 -2
  99. uncountable/types/async_jobs.py +0 -1
  100. uncountable/types/async_jobs_t.py +1 -2
  101. uncountable/types/auth_retrieval.py +0 -1
  102. uncountable/types/auth_retrieval_t.py +2 -3
  103. uncountable/types/base.py +0 -1
  104. uncountable/types/base_t.py +2 -1
  105. uncountable/types/calculations.py +0 -1
  106. uncountable/types/calculations_t.py +0 -1
  107. uncountable/types/chemical_structure.py +0 -1
  108. uncountable/types/chemical_structure_t.py +0 -1
  109. uncountable/types/client_base.py +29 -30
  110. uncountable/types/client_config.py +0 -1
  111. uncountable/types/client_config_t.py +1 -2
  112. uncountable/types/curves.py +0 -1
  113. uncountable/types/curves_t.py +2 -3
  114. uncountable/types/entity.py +0 -1
  115. uncountable/types/entity_t.py +3 -4
  116. uncountable/types/experiment_groups.py +0 -1
  117. uncountable/types/experiment_groups_t.py +0 -1
  118. uncountable/types/field_values.py +0 -1
  119. uncountable/types/field_values_t.py +6 -7
  120. uncountable/types/fields.py +0 -1
  121. uncountable/types/fields_t.py +0 -1
  122. uncountable/types/generic_upload.py +0 -1
  123. uncountable/types/generic_upload_t.py +2 -3
  124. uncountable/types/id_source.py +0 -1
  125. uncountable/types/id_source_t.py +1 -2
  126. uncountable/types/identifier.py +0 -1
  127. uncountable/types/identifier_t.py +1 -2
  128. uncountable/types/input_attributes.py +0 -1
  129. uncountable/types/input_attributes_t.py +0 -1
  130. uncountable/types/inputs.py +0 -1
  131. uncountable/types/inputs_t.py +2 -3
  132. uncountable/types/integration_server.py +0 -1
  133. uncountable/types/integration_server_t.py +1 -2
  134. uncountable/types/job_definition.py +0 -1
  135. uncountable/types/job_definition_t.py +5 -6
  136. uncountable/types/outputs.py +0 -1
  137. uncountable/types/outputs_t.py +1 -2
  138. uncountable/types/overrides.py +0 -1
  139. uncountable/types/overrides_t.py +0 -1
  140. uncountable/types/permissions.py +0 -1
  141. uncountable/types/permissions_t.py +1 -2
  142. uncountable/types/phases.py +0 -1
  143. uncountable/types/phases_t.py +0 -1
  144. uncountable/types/post_base.py +0 -1
  145. uncountable/types/post_base_t.py +1 -2
  146. uncountable/types/queued_job.py +0 -1
  147. uncountable/types/queued_job_t.py +2 -3
  148. uncountable/types/recipe_identifiers.py +0 -1
  149. uncountable/types/recipe_identifiers_t.py +1 -2
  150. uncountable/types/recipe_inputs.py +0 -1
  151. uncountable/types/recipe_inputs_t.py +1 -2
  152. uncountable/types/recipe_links.py +0 -1
  153. uncountable/types/recipe_links_t.py +2 -3
  154. uncountable/types/recipe_metadata.py +0 -1
  155. uncountable/types/recipe_metadata_t.py +0 -1
  156. uncountable/types/recipe_output_metadata.py +0 -1
  157. uncountable/types/recipe_output_metadata_t.py +0 -1
  158. uncountable/types/recipe_tags.py +0 -1
  159. uncountable/types/recipe_tags_t.py +0 -1
  160. uncountable/types/recipe_workflow_steps.py +0 -1
  161. uncountable/types/recipe_workflow_steps_t.py +2 -3
  162. uncountable/types/recipes.py +0 -1
  163. uncountable/types/recipes_t.py +0 -1
  164. uncountable/types/response.py +0 -1
  165. uncountable/types/response_t.py +0 -1
  166. uncountable/types/secret_retrieval.py +0 -1
  167. uncountable/types/secret_retrieval_t.py +2 -3
  168. uncountable/types/units.py +0 -1
  169. uncountable/types/units_t.py +0 -1
  170. uncountable/types/users.py +0 -1
  171. uncountable/types/users_t.py +0 -1
  172. uncountable/types/webhook_job.py +0 -1
  173. uncountable/types/webhook_job_t.py +0 -1
  174. uncountable/types/workflows.py +0 -1
  175. uncountable/types/workflows_t.py +1 -2
  176. UncountablePythonSDK-0.0.92.dist-info/RECORD +0 -301
  177. {UncountablePythonSDK-0.0.92.dist-info → UncountablePythonSDK-0.0.95.dist-info}/WHEEL +0 -0
  178. {UncountablePythonSDK-0.0.92.dist-info → UncountablePythonSDK-0.0.95.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
@@ -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
@@ -36,8 +35,8 @@ class Arguments:
36
35
  config_reference: str
37
36
  entity_type: entity_t.EntityType | None = None
38
37
  attributes: dict[OpaqueKey, base_t.JsonValue] | None = None
39
- offset: typing.Optional[int] | None = None
40
- limit: typing.Optional[int] | None = None
38
+ offset: int | None = None
39
+ limit: int | None = None
41
40
 
42
41
 
43
42
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -58,7 +57,7 @@ class EntityResult:
58
57
  @dataclasses.dataclass(kw_only=True)
59
58
  class ColumnAccess:
60
59
  name: str
61
- table_label: typing.Optional[str]
60
+ table_label: str | None
62
61
 
63
62
 
64
63
  # 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
@@ -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/entity/external_resolve_entity_ids"
30
29
  )
31
30
  @dataclasses.dataclass(kw_only=True)
32
31
  class Arguments:
33
- entity_ids: list[typing.Union[str, base_t.ObjectId]]
32
+ entity_ids: list[str | base_t.ObjectId]
34
33
  entity_type: entity_t.EntityType
35
34
 
36
35
 
@@ -40,7 +39,7 @@ class Arguments:
40
39
  )
41
40
  @dataclasses.dataclass(kw_only=True)
42
41
  class EntityNames:
43
- id: typing.Union[str, int]
42
+ id: str | int
44
43
  name: str
45
44
 
46
45
 
@@ -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
@@ -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
@@ -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
@@ -53,7 +52,7 @@ class TransitionIdentifierTransition:
53
52
 
54
53
  # DO NOT MODIFY -- This file is generated by type_spec
55
54
  TransitionIdentifier = typing.Annotated[
56
- typing.Union[TransitionIdentifierPhases, TransitionIdentifierTransition],
55
+ TransitionIdentifierPhases | TransitionIdentifierTransition,
57
56
  serial_alias_annotation(
58
57
  named_type_path="sdk.api.entity.transition_entity_phase.TransitionIdentifier",
59
58
  ),
@@ -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
@@ -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
@@ -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
@@ -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 pkgs.strenum_compat import StrEnum
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
@@ -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,8 +31,8 @@ ENDPOINT_PATH = "api/external/id_source/list_id_source"
32
31
  class Arguments:
33
32
  spec: id_source_t.IdSourceSpec
34
33
  search_label: str
35
- offset: typing.Optional[int] | None = None
36
- limit: typing.Optional[int] | None = None
34
+ offset: int | None = None
35
+ limit: int | None = None
37
36
 
38
37
 
39
38
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -42,7 +41,7 @@ class Arguments:
42
41
  )
43
42
  @dataclasses.dataclass(kw_only=True)
44
43
  class IdName:
45
- id: typing.Union[base_t.ObjectId, str]
44
+ id: base_t.ObjectId | str
46
45
  name: str
47
46
 
48
47
 
@@ -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
@@ -41,7 +40,7 @@ class Arguments:
41
40
  @dataclasses.dataclass(kw_only=True)
42
41
  class Match:
43
42
  name: str
44
- ids: list[typing.Union[base_t.ObjectId, str]]
43
+ ids: list[base_t.ObjectId | str]
45
44
 
46
45
 
47
46
  # 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
@@ -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,8 +42,8 @@ class Arguments:
43
42
  class InputToCreate:
44
43
  name: str
45
44
  material_family_ids: list[base_t.ObjectId]
46
- quantity_type: typing.Union[typing.Literal[inputs_t.IngredientQuantityType.NUMERIC], typing.Literal[inputs_t.IngredientQuantityType.TEXT]]
47
- type: typing.Union[typing.Literal[inputs_t.IngredientType.INGREDIENT], typing.Literal[inputs_t.IngredientType.PROCESS_PARAMETER]]
45
+ quantity_type: typing.Literal[inputs_t.IngredientQuantityType.NUMERIC] | typing.Literal[inputs_t.IngredientQuantityType.TEXT]
46
+ type: typing.Literal[inputs_t.IngredientType.INGREDIENT] | typing.Literal[inputs_t.IngredientType.PROCESS_PARAMETER]
48
47
  attributes: list[input_attributes_t.InputAttributeValue] | None = None
49
48
  category_id: base_t.ObjectId | None = None
50
49
 
@@ -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
@@ -34,10 +33,10 @@ ENDPOINT_PATH = "api/external/inputs/external_get_input_data"
34
33
  @dataclasses.dataclass(kw_only=True)
35
34
  class Arguments:
36
35
  material_family_id: base_t.ObjectId
37
- input_ids: typing.Optional[list[base_t.ObjectId]]
38
- is_parameter: typing.Optional[bool]
39
- offset: typing.Optional[int] | None = None
40
- limit: typing.Optional[int] | None = None
36
+ input_ids: list[base_t.ObjectId] | None
37
+ is_parameter: bool | None
38
+ offset: int | None = None
39
+ limit: int | None = None
41
40
 
42
41
 
43
42
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -82,7 +81,7 @@ class FullInput:
82
81
  quantity_type: str
83
82
  is_parameter: bool
84
83
  attributes: list[input_attributes_t.InputAttributeValue]
85
- global_category_id: typing.Optional[base_t.ObjectId]
84
+ global_category_id: base_t.ObjectId | None
86
85
  subcategory_ids: list[base_t.ObjectId]
87
86
 
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
@@ -30,9 +29,9 @@ ENDPOINT_PATH = "api/external/inputs/external_get_input_names"
30
29
  @dataclasses.dataclass(kw_only=True)
31
30
  class Arguments:
32
31
  material_family_id: base_t.ObjectId
33
- is_parameter: typing.Optional[bool]
34
- offset: typing.Optional[int] | None = None
35
- limit: typing.Optional[int] | None = None
32
+ is_parameter: bool | None
33
+ offset: int | None = None
34
+ limit: int | None = None
36
35
 
37
36
 
38
37
  # 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
@@ -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
@@ -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/inputs/external_set_input_category"
30
29
  @dataclasses.dataclass(kw_only=True)
31
30
  class Arguments:
32
31
  input_key: identifier_t.IdentifierKey
33
- category_id: typing.Optional[int]
32
+ category_id: int | None
34
33
  material_family_ids: list[int] | None = None
35
34
 
36
35
 
@@ -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
@@ -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 pkgs.strenum_compat import StrEnum
9
+ from enum import StrEnum
11
10
  import dataclasses
12
11
  from pkgs.serialization import serial_class
13
12
  from ... import identifier_t
@@ -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,7 +32,7 @@ ENDPOINT_PATH = "api/external/material_families/external_update_entity_material_
33
32
  @dataclasses.dataclass(kw_only=True)
34
33
  class Arguments:
35
34
  entity_key: identifier_t.IdentifierKey
36
- entity_type: typing.Union[typing.Literal[entity_t.EntityType.RECIPE_METADATA], typing.Literal[entity_t.EntityType.INGREDIENT], typing.Literal[entity_t.EntityType.OUTPUT], typing.Literal[entity_t.EntityType.CONDITION_PARAMETER], typing.Literal[entity_t.EntityType.INGREDIENT_ATTRIBUTE]]
35
+ entity_type: typing.Literal[entity_t.EntityType.RECIPE_METADATA] | typing.Literal[entity_t.EntityType.INGREDIENT] | typing.Literal[entity_t.EntityType.OUTPUT] | typing.Literal[entity_t.EntityType.CONDITION_PARAMETER] | typing.Literal[entity_t.EntityType.INGREDIENT_ATTRIBUTE]
37
36
  material_family_ids: list[base_t.ObjectId]
38
37
  update_type: post_base_t.UpdateType
39
38
 
@@ -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
@@ -83,8 +82,8 @@ class FullOutput:
83
82
  name: str
84
83
  quantity_type: str
85
84
  attributes: list[OutputAttrVal]
86
- global_category_id: typing.Optional[base_t.ObjectId]
87
- unit_id: typing.Optional[base_t.ObjectId]
85
+ global_category_id: base_t.ObjectId | None
86
+ unit_id: base_t.ObjectId | None
88
87
 
89
88
 
90
89
  # 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
@@ -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
@@ -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
@@ -75,7 +74,7 @@ class PermissionsScopeAllMaterialFamilies:
75
74
 
76
75
  # DO NOT MODIFY -- This file is generated by type_spec
77
76
  PermissionsScope = typing.Annotated[
78
- typing.Union[PermissionsScopeProject, PermissionsScopeRecipe, PermissionsScopeMaterialFamily, PermissionsScopeAllMaterialFamilies],
77
+ PermissionsScopeProject | PermissionsScopeRecipe | PermissionsScopeMaterialFamily | PermissionsScopeAllMaterialFamilies,
79
78
  serial_alias_annotation(
80
79
  named_type_path="sdk.api.permissions.set_core_permissions.PermissionsScope",
81
80
  ),
@@ -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/project/external_get_projects"
31
30
  @dataclasses.dataclass(kw_only=True)
32
31
  class Arguments:
33
32
  all_material_families: bool
34
- material_family_id: typing.Optional[base_t.ObjectId]
33
+ material_family_id: base_t.ObjectId | None
35
34
 
36
35
 
37
36
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -43,8 +42,8 @@ class Project:
43
42
  id: base_t.ObjectId
44
43
  name: str
45
44
  material_family_id: base_t.ObjectId
46
- project_owner_id: typing.Optional[base_t.ObjectId]
47
- phase_id: typing.Optional[base_t.ObjectId]
45
+ project_owner_id: base_t.ObjectId | None
46
+ phase_id: base_t.ObjectId | None
48
47
 
49
48
 
50
49
  # 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/project/external_get_projects_data"
33
32
  @dataclasses.dataclass(kw_only=True)
34
33
  class Arguments:
35
34
  project_ids: list[base_t.ObjectId]
36
- offset: typing.Optional[int] | None = None
37
- limit: typing.Optional[int] | None = None
35
+ offset: int | None = None
36
+ limit: int | None = None
38
37
 
39
38
 
40
39
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -46,8 +45,8 @@ class ProjectDetailed:
46
45
  id: base_t.ObjectId
47
46
  name: str
48
47
  material_family_id: base_t.ObjectId
49
- project_owner_id: typing.Optional[base_t.ObjectId]
50
- phase_id: typing.Optional[base_t.ObjectId]
48
+ project_owner_id: base_t.ObjectId | None
49
+ phase_id: base_t.ObjectId | None
51
50
  values: list[field_values_t.ArgumentValueId]
52
51
 
53
52
 
@@ -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,7 +31,7 @@ ENDPOINT_PATH = "api/external/recipe_links/create_recipe_link"
32
31
  class Arguments:
33
32
  recipe_from_key: identifier_t.IdentifierKey
34
33
  recipe_to_key: identifier_t.IdentifierKey
35
- link_type: typing.Union[typing.Literal[recipe_links_t.RecipeLinkType.CHILD], typing.Literal[recipe_links_t.RecipeLinkType.CONTROL], typing.Literal[recipe_links_t.RecipeLinkType.USER_LINK]]
34
+ link_type: typing.Literal[recipe_links_t.RecipeLinkType.CHILD] | typing.Literal[recipe_links_t.RecipeLinkType.CONTROL] | typing.Literal[recipe_links_t.RecipeLinkType.USER_LINK]
36
35
  name: str
37
36
 
38
37
 
@@ -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,7 +31,7 @@ ENDPOINT_PATH = "api/external/recipe_links/remove_recipe_link"
32
31
  class Arguments:
33
32
  recipe_from_key: identifier_t.IdentifierKey
34
33
  recipe_to_key: identifier_t.IdentifierKey
35
- link_type: typing.Union[typing.Literal[recipe_links_t.RecipeLinkType.CHILD], typing.Literal[recipe_links_t.RecipeLinkType.CONTROL], typing.Literal[recipe_links_t.RecipeLinkType.USER_LINK]]
34
+ link_type: typing.Literal[recipe_links_t.RecipeLinkType.CHILD] | typing.Literal[recipe_links_t.RecipeLinkType.CONTROL] | typing.Literal[recipe_links_t.RecipeLinkType.USER_LINK]
36
35
 
37
36
 
38
37
  # 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,9 +29,9 @@ ENDPOINT_PATH = "api/external/recipe_metadata/external_get_recipe_metadata_data"
30
29
  @dataclasses.dataclass(kw_only=True)
31
30
  class Arguments:
32
31
  material_family_id: base_t.ObjectId
33
- recipe_metadata_ids: typing.Optional[list[base_t.ObjectId]]
34
- offset: typing.Optional[int] | None = None
35
- limit: typing.Optional[int] | None = None
32
+ recipe_metadata_ids: list[base_t.ObjectId] | None
33
+ offset: int | None = None
34
+ limit: int | None = None
36
35
 
37
36
 
38
37
  # 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -35,7 +34,7 @@ class Arguments:
35
34
  workflow_id: base_t.ObjectId
36
35
  name: str | None = None
37
36
  project_id: base_t.ObjectId | None = None
38
- workflow_variant_id: typing.Optional[base_t.ObjectId] | None = None
37
+ workflow_variant_id: base_t.ObjectId | None = None
39
38
  recipe_metadata: list[recipe_metadata_t.MetadataValue] | None = None
40
39
  identifiers: recipe_identifiers_t.RecipeIdentifiers | None = None
41
40
  definition_key: identifier_t.IdentifierKey | None = None
@@ -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,7 +32,7 @@ ENDPOINT_PATH = "api/external/recipes/external_create_recipes"
33
32
  class CreateRecipeDefinition:
34
33
  workflow_id: base_t.ObjectId
35
34
  name: str | None = None
36
- workflow_variant_id: typing.Optional[base_t.ObjectId] | None = None
35
+ workflow_variant_id: base_t.ObjectId | None = None
37
36
  recipe_metadata: list[recipe_metadata_t.MetadataValue] | None = None
38
37
 
39
38
 
@@ -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
@@ -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 pkgs.strenum_compat import StrEnum
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
@@ -181,7 +180,7 @@ class RecipeInputEditUpdateAnnotations(RecipeInputEditInputBase):
181
180
  class RecipeInputEditSetRole(RecipeInputEditBase):
182
181
  type: typing.Literal[RecipeInputEditType.SET_ROLE] = RecipeInputEditType.SET_ROLE
183
182
  ingredient_key: identifier_t.IdentifierKey
184
- ingredient_role_key: typing.Optional[identifier_t.IdentifierKey]
183
+ ingredient_role_key: identifier_t.IdentifierKey | None
185
184
 
186
185
 
187
186
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -243,7 +242,7 @@ class RecipeInputEditPlaceholder(RecipeInputEditBase):
243
242
 
244
243
  # DO NOT MODIFY -- This file is generated by type_spec
245
244
  RecipeInputEdit = typing.Annotated[
246
- typing.Union[RecipeInputEditClearInputs, RecipeInputEditUpsertInput, RecipeInputEditAddInput, RecipeInputEditUpdateAnnotations, RecipeInputEditSetLot, RecipeInputEditChangeBasisViewed, RecipeInputEditAddInstructions, RecipeInputEditSetRole, RecipeInputEditPlaceholder],
245
+ RecipeInputEditClearInputs | RecipeInputEditUpsertInput | RecipeInputEditAddInput | RecipeInputEditUpdateAnnotations | RecipeInputEditSetLot | RecipeInputEditChangeBasisViewed | RecipeInputEditAddInstructions | RecipeInputEditSetRole | RecipeInputEditPlaceholder,
247
246
  serial_union_annotation(
248
247
  named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEdit",
249
248
  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
@@ -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
@@ -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
@@ -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: typing.Optional[list[recipe_links_t.RecipeLinkType]]
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
@@ -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