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.

Files changed (132) hide show
  1. docs/conf.py +2 -2
  2. docs/justfile +1 -1
  3. examples/integration-server/jobs/materials_auto/example_runsheet_wh.py +35 -0
  4. examples/integration-server/jobs/materials_auto/profile.yaml +9 -0
  5. examples/integration-server/pyproject.toml +2 -2
  6. pkgs/argument_parser/argument_parser.py +6 -3
  7. pkgs/type_spec/emit_python.py +9 -3
  8. pkgs/type_spec/emit_typescript_util.py +16 -1
  9. pkgs/type_spec/parts/base.py.prepart +4 -0
  10. pkgs/type_spec/ui_entry_actions/__init__.py +4 -0
  11. pkgs/type_spec/ui_entry_actions/generate_ui_entry_actions.py +294 -0
  12. pkgs/type_spec/value_spec/convert_type.py +13 -0
  13. uncountable/core/client.py +7 -4
  14. uncountable/integration/executors/generic_upload_executor.py +3 -2
  15. uncountable/integration/job.py +24 -1
  16. uncountable/integration/queue_runner/datastore/datastore_sqlite.py +3 -2
  17. uncountable/integration/scheduler.py +4 -3
  18. uncountable/types/__init__.py +2 -0
  19. uncountable/types/api/batch/execute_batch.py +4 -4
  20. uncountable/types/api/batch/execute_batch_load_async.py +2 -2
  21. uncountable/types/api/chemical/convert_chemical_formats.py +3 -3
  22. uncountable/types/api/condition_parameters/upsert_condition_match.py +4 -3
  23. uncountable/types/api/entity/create_entities.py +3 -3
  24. uncountable/types/api/entity/create_entity.py +3 -3
  25. uncountable/types/api/entity/create_or_update_entity.py +3 -2
  26. uncountable/types/api/entity/get_entities_data.py +3 -3
  27. uncountable/types/api/entity/grant_entity_permissions.py +3 -2
  28. uncountable/types/api/entity/list_entities.py +4 -4
  29. uncountable/types/api/entity/lock_entity.py +3 -2
  30. uncountable/types/api/entity/lookup_entity.py +5 -5
  31. uncountable/types/api/entity/resolve_entity_ids.py +3 -3
  32. uncountable/types/api/entity/set_entity_field_values.py +3 -2
  33. uncountable/types/api/entity/set_values.py +3 -2
  34. uncountable/types/api/entity/transition_entity_phase.py +5 -4
  35. uncountable/types/api/entity/unlock_entity.py +3 -2
  36. uncountable/types/api/equipment/associate_equipment_input.py +2 -2
  37. uncountable/types/api/field_options/upsert_field_options.py +4 -3
  38. uncountable/types/api/files/download_file.py +4 -3
  39. uncountable/types/api/id_source/list_id_source.py +3 -3
  40. uncountable/types/api/id_source/match_id_source.py +3 -3
  41. uncountable/types/api/input_groups/get_input_group_names.py +3 -3
  42. uncountable/types/api/inputs/create_inputs.py +4 -4
  43. uncountable/types/api/inputs/get_input_data.py +6 -6
  44. uncountable/types/api/inputs/get_input_names.py +3 -3
  45. uncountable/types/api/inputs/get_inputs_data.py +6 -6
  46. uncountable/types/api/inputs/set_input_attribute_values.py +3 -3
  47. uncountable/types/api/inputs/set_input_category.py +3 -2
  48. uncountable/types/api/inputs/set_input_subcategories.py +3 -2
  49. uncountable/types/api/inputs/set_intermediate_type.py +3 -2
  50. uncountable/types/api/material_families/update_entity_material_families.py +2 -2
  51. uncountable/types/api/outputs/get_output_data.py +6 -6
  52. uncountable/types/api/outputs/get_output_names.py +3 -3
  53. uncountable/types/api/outputs/resolve_output_conditions.py +5 -5
  54. uncountable/types/api/permissions/set_core_permissions.py +7 -6
  55. uncountable/types/api/project/get_projects.py +3 -3
  56. uncountable/types/api/project/get_projects_data.py +3 -3
  57. uncountable/types/api/recipe_links/create_recipe_link.py +3 -2
  58. uncountable/types/api/recipe_links/remove_recipe_link.py +3 -2
  59. uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +3 -3
  60. uncountable/types/api/recipes/add_recipe_to_project.py +3 -2
  61. uncountable/types/api/recipes/add_time_series_data.py +4 -3
  62. uncountable/types/api/recipes/archive_recipes.py +3 -2
  63. uncountable/types/api/recipes/associate_recipe_as_input.py +3 -2
  64. uncountable/types/api/recipes/associate_recipe_as_lot.py +3 -2
  65. uncountable/types/api/recipes/clear_recipe_outputs.py +3 -2
  66. uncountable/types/api/recipes/create_recipe.py +2 -2
  67. uncountable/types/api/recipes/create_recipes.py +4 -4
  68. uncountable/types/api/recipes/disassociate_recipe_as_input.py +3 -2
  69. uncountable/types/api/recipes/edit_recipe_inputs.py +17 -16
  70. uncountable/types/api/recipes/get_column_calculation_values.py +3 -3
  71. uncountable/types/api/recipes/get_curve.py +2 -2
  72. uncountable/types/api/recipes/get_recipe_calculations.py +3 -3
  73. uncountable/types/api/recipes/get_recipe_links.py +2 -2
  74. uncountable/types/api/recipes/get_recipe_names.py +3 -3
  75. uncountable/types/api/recipes/get_recipe_output_metadata.py +3 -3
  76. uncountable/types/api/recipes/get_recipes_data.py +11 -11
  77. uncountable/types/api/recipes/lock_recipes.py +4 -3
  78. uncountable/types/api/recipes/remove_recipe_from_project.py +3 -2
  79. uncountable/types/api/recipes/set_recipe_inputs.py +3 -3
  80. uncountable/types/api/recipes/set_recipe_metadata.py +3 -2
  81. uncountable/types/api/recipes/set_recipe_output_annotations.py +6 -6
  82. uncountable/types/api/recipes/set_recipe_output_file.py +3 -3
  83. uncountable/types/api/recipes/set_recipe_outputs.py +4 -4
  84. uncountable/types/api/recipes/set_recipe_tags.py +6 -6
  85. uncountable/types/api/recipes/unarchive_recipes.py +3 -2
  86. uncountable/types/api/recipes/unlock_recipes.py +3 -2
  87. uncountable/types/api/runsheet/__init__.py +1 -0
  88. uncountable/types/api/runsheet/complete_async_upload.py +41 -0
  89. uncountable/types/api/triggers/run_trigger.py +3 -2
  90. uncountable/types/api/uploader/invoke_uploader.py +2 -2
  91. uncountable/types/async_batch_processor.py +34 -0
  92. uncountable/types/async_batch_t.py +6 -5
  93. uncountable/types/auth_retrieval_t.py +4 -3
  94. uncountable/types/base_t.py +4 -0
  95. uncountable/types/calculations_t.py +1 -1
  96. uncountable/types/chemical_structure_t.py +2 -1
  97. uncountable/types/client_base.py +21 -0
  98. uncountable/types/client_config_t.py +2 -1
  99. uncountable/types/curves_t.py +2 -2
  100. uncountable/types/data_t.py +7 -6
  101. uncountable/types/entity_t.py +3 -3
  102. uncountable/types/experiment_groups_t.py +1 -1
  103. uncountable/types/field_values_t.py +20 -20
  104. uncountable/types/fields_t.py +1 -1
  105. uncountable/types/generic_upload_t.py +7 -6
  106. uncountable/types/id_source_t.py +5 -4
  107. uncountable/types/identifier_t.py +3 -3
  108. uncountable/types/input_attributes_t.py +1 -1
  109. uncountable/types/inputs_t.py +1 -1
  110. uncountable/types/integration_server_t.py +2 -1
  111. uncountable/types/job_definition_t.py +14 -13
  112. uncountable/types/outputs_t.py +1 -1
  113. uncountable/types/overrides_t.py +3 -2
  114. uncountable/types/phases_t.py +1 -1
  115. uncountable/types/queued_job_t.py +7 -7
  116. uncountable/types/recipe_identifiers_t.py +3 -3
  117. uncountable/types/recipe_links_t.py +1 -1
  118. uncountable/types/recipe_metadata_t.py +3 -3
  119. uncountable/types/recipe_output_metadata_t.py +1 -1
  120. uncountable/types/recipe_tags_t.py +1 -1
  121. uncountable/types/recipe_workflow_steps_t.py +5 -4
  122. uncountable/types/recipes_t.py +2 -1
  123. uncountable/types/response_t.py +2 -1
  124. uncountable/types/secret_retrieval_t.py +4 -3
  125. uncountable/types/units_t.py +1 -1
  126. uncountable/types/users_t.py +1 -1
  127. uncountable/types/webhook_job_t.py +4 -3
  128. uncountable/types/workflows_t.py +2 -2
  129. {uncountablepythonsdk-0.0.111.dist-info → uncountablepythonsdk-0.0.112.dist-info}/METADATA +2 -1
  130. {uncountablepythonsdk-0.0.111.dist-info → uncountablepythonsdk-0.0.112.dist-info}/RECORD +132 -127
  131. {uncountablepythonsdk-0.0.111.dist-info → uncountablepythonsdk-0.0.112.dist-info}/WHEEL +1 -1
  132. {uncountablepythonsdk-0.0.111.dist-info → uncountablepythonsdk-0.0.112.dist-info}/top_level.txt +0 -0
@@ -43,7 +43,7 @@ class RequestMethod(StrEnum):
43
43
  named_type_path="sdk.api.batch.execute_batch.BatchRequest",
44
44
  unconverted_values={"data"},
45
45
  )
46
- @dataclasses.dataclass(kw_only=True)
46
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
47
47
  class BatchRequest:
48
48
  path: str
49
49
  method: RequestMethod
@@ -54,7 +54,7 @@ class BatchRequest:
54
54
  @serial_class(
55
55
  named_type_path="sdk.api.batch.execute_batch.Arguments",
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 Arguments:
59
59
  requests: list[BatchRequest]
60
60
 
@@ -64,7 +64,7 @@ class Arguments:
64
64
  named_type_path="sdk.api.batch.execute_batch.BatchResponse",
65
65
  unconverted_values={"response"},
66
66
  )
67
- @dataclasses.dataclass(kw_only=True)
67
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
68
68
  class BatchResponse:
69
69
  path: str
70
70
  method: RequestMethod
@@ -76,7 +76,7 @@ class BatchResponse:
76
76
  @serial_class(
77
77
  named_type_path="sdk.api.batch.execute_batch.Data",
78
78
  )
79
- @dataclasses.dataclass(kw_only=True)
79
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
80
80
  class Data:
81
81
  responses: list[BatchResponse]
82
82
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -26,7 +26,7 @@ ENDPOINT_PATH = "api/external/batch/execute_batch_load_async"
26
26
  @serial_class(
27
27
  named_type_path="sdk.api.batch.execute_batch_load_async.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
  requests: list[async_batch_t.AsyncBatchRequest]
32
32
 
@@ -35,7 +35,7 @@ class Arguments:
35
35
  @serial_class(
36
36
  named_type_path="sdk.api.batch.execute_batch_load_async.Data",
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 Data:
40
40
  job_id: base_t.ObjectId
41
41
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -28,7 +28,7 @@ ENDPOINT_PATH = "api/external/chemical/convert_chemical_formats"
28
28
  @serial_class(
29
29
  named_type_path="sdk.api.chemical.convert_chemical_formats.ChemicalStructureFile",
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 ChemicalStructureFile:
33
33
  struct_file: str
34
34
 
@@ -37,7 +37,7 @@ class ChemicalStructureFile:
37
37
  @serial_class(
38
38
  named_type_path="sdk.api.chemical.convert_chemical_formats.Arguments",
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 Arguments:
42
42
  source_chemical_structures: list[ChemicalStructureFile]
43
43
 
@@ -56,7 +56,7 @@ UncountableChemicalStructure = typing.Annotated[
56
56
  named_type_path="sdk.api.chemical.convert_chemical_formats.Data",
57
57
  unconverted_values={"chemical_structures"},
58
58
  )
59
- @dataclasses.dataclass(kw_only=True)
59
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
60
60
  class Data:
61
61
  chemical_structures: list[UncountableChemicalStructure]
62
62
  # 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 ... import async_batch_t
13
+ from ... import base_t
13
14
  from ... import identifier_t
14
15
 
15
16
  __all__: list[str] = [
@@ -30,7 +31,7 @@ ENDPOINT_PATH = "api/external/condition_parameters/upsert_condition_match"
30
31
  named_type_path="sdk.api.condition_parameters.upsert_condition_match.ConditionParameter",
31
32
  to_string_values={"max_value", "min_value"},
32
33
  )
33
- @dataclasses.dataclass(kw_only=True)
34
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
34
35
  class ConditionParameter:
35
36
  condition_parameter_key: identifier_t.IdentifierKey
36
37
  allow_null: bool
@@ -52,7 +53,7 @@ class MatchType(StrEnum):
52
53
  @serial_class(
53
54
  named_type_path="sdk.api.condition_parameters.upsert_condition_match.Arguments",
54
55
  )
55
- @dataclasses.dataclass(kw_only=True)
56
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
56
57
  class Arguments:
57
58
  explicit_name: bool = False
58
59
  name: str | None = None
@@ -65,7 +66,7 @@ class Arguments:
65
66
  @serial_class(
66
67
  named_type_path="sdk.api.condition_parameters.upsert_condition_match.Data",
67
68
  )
68
- @dataclasses.dataclass(kw_only=True)
69
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
69
70
  class Data(async_batch_t.AsyncBatchActionReturn):
70
71
  pass
71
72
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -29,7 +29,7 @@ ENDPOINT_PATH = "api/external/entity/external_create_entities"
29
29
  @serial_class(
30
30
  named_type_path="sdk.api.entity.create_entities.EntityToCreate",
31
31
  )
32
- @dataclasses.dataclass(kw_only=True)
32
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
33
33
  class EntityToCreate:
34
34
  field_values: list[field_values_t.FieldRefNameValue] | None = None
35
35
  parent_entity: entity_t.Entity | None = None
@@ -39,7 +39,7 @@ class EntityToCreate:
39
39
  @serial_class(
40
40
  named_type_path="sdk.api.entity.create_entities.Arguments",
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 Arguments:
44
44
  entity_type: entity_t.LimitedEntityType
45
45
  entities_to_create: list[EntityToCreate]
@@ -51,7 +51,7 @@ class Arguments:
51
51
  @serial_class(
52
52
  named_type_path="sdk.api.entity.create_entities.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
  entities: list[entity_t.Entity]
57
57
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -30,7 +30,7 @@ ENDPOINT_PATH = "api/external/entity/external_create_entity"
30
30
  named_type_path="sdk.api.entity.create_entity.EntityFieldInitialValue",
31
31
  unconverted_values={"value"},
32
32
  )
33
- @dataclasses.dataclass(kw_only=True)
33
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
34
34
  class EntityFieldInitialValue:
35
35
  field_ref_name: str
36
36
  value: base_t.JsonValue
@@ -41,7 +41,7 @@ class EntityFieldInitialValue:
41
41
  @serial_class(
42
42
  named_type_path="sdk.api.entity.create_entity.Arguments",
43
43
  )
44
- @dataclasses.dataclass(kw_only=True)
44
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
45
45
  class Arguments:
46
46
  entity_type: entity_t.LimitedEntityType
47
47
  definition_id: base_t.ObjectId | None = None
@@ -54,7 +54,7 @@ class Arguments:
54
54
  @serial_class(
55
55
  named_type_path="sdk.api.entity.create_entity.Data",
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 Data:
59
59
  entity: entity_t.Entity
60
60
  # 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 entity_t
13
14
  from ... import field_values_t
14
15
  from ... import identifier_t
@@ -28,7 +29,7 @@ ENDPOINT_PATH = "api/external/entity/create_or_update_entity"
28
29
  @serial_class(
29
30
  named_type_path="sdk.api.entity.create_or_update_entity.Arguments",
30
31
  )
31
- @dataclasses.dataclass(kw_only=True)
32
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
32
33
  class Arguments:
33
34
  entity_type: entity_t.EntityType
34
35
  definition_key: identifier_t.IdentifierKey
@@ -40,7 +41,7 @@ class Arguments:
40
41
  @serial_class(
41
42
  named_type_path="sdk.api.entity.create_or_update_entity.Data",
42
43
  )
43
- @dataclasses.dataclass(kw_only=True)
44
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
44
45
  class Data(async_batch_t.AsyncBatchActionReturn):
45
46
  pass
46
47
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -28,7 +28,7 @@ ENDPOINT_PATH = "api/external/entity/external_get_entities_data"
28
28
  @serial_class(
29
29
  named_type_path="sdk.api.entity.get_entities_data.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
  entity_ids: list[base_t.ObjectId]
34
34
  entity_type: entity_t.EntityType
@@ -38,7 +38,7 @@ class Arguments:
38
38
  @serial_class(
39
39
  named_type_path="sdk.api.entity.get_entities_data.EntityDetails",
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 EntityDetails:
43
43
  entity: entity_t.Entity
44
44
  field_values: list[field_values_t.FieldRefIdNameValue]
@@ -48,7 +48,7 @@ class EntityDetails:
48
48
  @serial_class(
49
49
  named_type_path="sdk.api.entity.get_entities_data.Data",
50
50
  )
51
- @dataclasses.dataclass(kw_only=True)
51
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
52
52
  class Data:
53
53
  entity_details: list[EntityDetails]
54
54
  # 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 entity_t
13
14
  from ... import identifier_t
14
15
 
@@ -27,7 +28,7 @@ ENDPOINT_PATH = "api/external/entity/grant_entity_permissions"
27
28
  @serial_class(
28
29
  named_type_path="sdk.api.entity.grant_entity_permissions.Arguments",
29
30
  )
30
- @dataclasses.dataclass(kw_only=True)
31
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
31
32
  class Arguments:
32
33
  entity_type: entity_t.LimitedEntityType
33
34
  entity_key: identifier_t.IdentifierKey
@@ -41,7 +42,7 @@ class Arguments:
41
42
  @serial_class(
42
43
  named_type_path="sdk.api.entity.grant_entity_permissions.Data",
43
44
  )
44
- @dataclasses.dataclass(kw_only=True)
45
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
45
46
  class Data(async_batch_t.AsyncBatchActionReturn):
46
47
  pass
47
48
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -30,7 +30,7 @@ ENDPOINT_PATH = "api/external/entity/external_list_entities"
30
30
  named_type_path="sdk.api.entity.list_entities.Arguments",
31
31
  unconverted_values={"attributes"},
32
32
  )
33
- @dataclasses.dataclass(kw_only=True)
33
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
34
34
  class Arguments:
35
35
  config_reference: str
36
36
  entity_type: entity_t.EntityType | None = None
@@ -44,7 +44,7 @@ class Arguments:
44
44
  named_type_path="sdk.api.entity.list_entities.EntityResult",
45
45
  unconverted_values={"column_values"},
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 EntityResult:
49
49
  entity: entity_t.Entity
50
50
  column_values: list[base_t.JsonValue]
@@ -54,7 +54,7 @@ class EntityResult:
54
54
  @serial_class(
55
55
  named_type_path="sdk.api.entity.list_entities.ColumnAccess",
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 ColumnAccess:
59
59
  name: str
60
60
  table_label: str | None
@@ -64,7 +64,7 @@ class ColumnAccess:
64
64
  @serial_class(
65
65
  named_type_path="sdk.api.entity.list_entities.Data",
66
66
  )
67
- @dataclasses.dataclass(kw_only=True)
67
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
68
68
  class Data:
69
69
  columns: list[ColumnAccess]
70
70
  results: list[EntityResult]
@@ -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 entity_t
13
14
  from ... import identifier_t
14
15
 
@@ -27,7 +28,7 @@ ENDPOINT_PATH = "api/external/entity/external_lock_entity"
27
28
  @serial_class(
28
29
  named_type_path="sdk.api.entity.lock_entity.Arguments",
29
30
  )
30
- @dataclasses.dataclass(kw_only=True)
31
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
31
32
  class Arguments:
32
33
  entity_key: identifier_t.IdentifierKey
33
34
  entity_type: entity_t.EntityType
@@ -38,7 +39,7 @@ class Arguments:
38
39
  @serial_class(
39
40
  named_type_path="sdk.api.entity.lock_entity.Data",
40
41
  )
41
- @dataclasses.dataclass(kw_only=True)
42
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
42
43
  class Data(async_batch_t.AsyncBatchActionReturn):
43
44
  pass
44
45
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -41,7 +41,7 @@ class LookupEntityQueryType(StrEnum):
41
41
  @serial_class(
42
42
  named_type_path="sdk.api.entity.lookup_entity.LookupEntityQueryBase",
43
43
  )
44
- @dataclasses.dataclass(kw_only=True)
44
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
45
45
  class LookupEntityQueryBase:
46
46
  type: LookupEntityQueryType
47
47
 
@@ -51,7 +51,7 @@ class LookupEntityQueryBase:
51
51
  named_type_path="sdk.api.entity.lookup_entity.LookupFieldArgumentValue",
52
52
  unconverted_values={"field_value"},
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 LookupFieldArgumentValue:
56
56
  field_key: identifier_t.IdentifierKey
57
57
  field_value: base_t.JsonValue
@@ -63,7 +63,7 @@ class LookupFieldArgumentValue:
63
63
  named_type_path="sdk.api.entity.lookup_entity.LookupEntityFieldValue",
64
64
  parse_require={"type"},
65
65
  )
66
- @dataclasses.dataclass(kw_only=True)
66
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
67
67
  class LookupEntityFieldValue:
68
68
  type: typing.Literal[LookupEntityQueryType.FIELD_VALUE] = LookupEntityQueryType.FIELD_VALUE
69
69
  value: LookupFieldArgumentValue
@@ -86,7 +86,7 @@ LookupEntityQuery = typing.Annotated[
86
86
  @serial_class(
87
87
  named_type_path="sdk.api.entity.lookup_entity.Arguments",
88
88
  )
89
- @dataclasses.dataclass(kw_only=True)
89
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
90
90
  class Arguments:
91
91
  entity_type: entity_t.EntityType
92
92
  query: LookupEntityQuery
@@ -96,7 +96,7 @@ class Arguments:
96
96
  @serial_class(
97
97
  named_type_path="sdk.api.entity.lookup_entity.Data",
98
98
  )
99
- @dataclasses.dataclass(kw_only=True)
99
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
100
100
  class Data(async_batch_t.AsyncBatchActionReturn):
101
101
  pass
102
102
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -27,7 +27,7 @@ ENDPOINT_PATH = "api/external/entity/external_resolve_entity_ids"
27
27
  @serial_class(
28
28
  named_type_path="sdk.api.entity.resolve_entity_ids.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
  entity_ids: list[str | base_t.ObjectId]
33
33
  entity_type: entity_t.EntityType
@@ -37,7 +37,7 @@ class Arguments:
37
37
  @serial_class(
38
38
  named_type_path="sdk.api.entity.resolve_entity_ids.EntityNames",
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 EntityNames:
42
42
  id: str | int
43
43
  name: str
@@ -47,7 +47,7 @@ class EntityNames:
47
47
  @serial_class(
48
48
  named_type_path="sdk.api.entity.resolve_entity_ids.Data",
49
49
  )
50
- @dataclasses.dataclass(kw_only=True)
50
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
51
51
  class Data:
52
52
  items: list[EntityNames]
53
53
  # 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 entity_t
13
14
  from ... import field_values_t
14
15
 
@@ -27,7 +28,7 @@ ENDPOINT_PATH = "api/external/entity/set_entity_field_values"
27
28
  @serial_class(
28
29
  named_type_path="sdk.api.entity.set_entity_field_values.Arguments",
29
30
  )
30
- @dataclasses.dataclass(kw_only=True)
31
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
31
32
  class Arguments:
32
33
  entity_identifier: entity_t.EntityIdentifier
33
34
  field_values: list[field_values_t.FieldArgumentValue]
@@ -37,7 +38,7 @@ class Arguments:
37
38
  @serial_class(
38
39
  named_type_path="sdk.api.entity.set_entity_field_values.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
@@ -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 entity_t
12
13
  from ... import field_values_t
13
14
  from ... import response_t
@@ -27,7 +28,7 @@ ENDPOINT_PATH = "api/external/entity/external_set_values"
27
28
  @serial_class(
28
29
  named_type_path="sdk.api.entity.set_values.Arguments",
29
30
  )
30
- @dataclasses.dataclass(kw_only=True)
31
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
31
32
  class Arguments:
32
33
  entity: entity_t.Entity
33
34
  values: list[field_values_t.ArgumentValueRefName]
@@ -37,7 +38,7 @@ class Arguments:
37
38
  @serial_class(
38
39
  named_type_path="sdk.api.entity.set_values.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(response_t.Response):
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 pkgs.serialization import serial_alias_annotation
12
+ from ... import base_t
12
13
  from ... import entity_t
13
14
  from ... import identifier_t
14
15
  from ... import response_t
@@ -32,7 +33,7 @@ ENDPOINT_PATH = "api/external/entity/transition_entity_phase"
32
33
  named_type_path="sdk.api.entity.transition_entity_phase.TransitionIdentifierPhases",
33
34
  parse_require={"type"},
34
35
  )
35
- @dataclasses.dataclass(kw_only=True)
36
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
36
37
  class TransitionIdentifierPhases:
37
38
  type: typing.Literal["phases"] = "phases"
38
39
  phase_from_key: identifier_t.IdentifierKey
@@ -44,7 +45,7 @@ class TransitionIdentifierPhases:
44
45
  named_type_path="sdk.api.entity.transition_entity_phase.TransitionIdentifierTransition",
45
46
  parse_require={"type"},
46
47
  )
47
- @dataclasses.dataclass(kw_only=True)
48
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
48
49
  class TransitionIdentifierTransition:
49
50
  type: typing.Literal["transition"] = "transition"
50
51
  transition_key: identifier_t.IdentifierKey
@@ -63,7 +64,7 @@ TransitionIdentifier = typing.Annotated[
63
64
  @serial_class(
64
65
  named_type_path="sdk.api.entity.transition_entity_phase.Arguments",
65
66
  )
66
- @dataclasses.dataclass(kw_only=True)
67
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
67
68
  class Arguments:
68
69
  entity: entity_t.Entity
69
70
  transition: TransitionIdentifier
@@ -73,7 +74,7 @@ class Arguments:
73
74
  @serial_class(
74
75
  named_type_path="sdk.api.entity.transition_entity_phase.Data",
75
76
  )
76
- @dataclasses.dataclass(kw_only=True)
77
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
77
78
  class Data(response_t.Response):
78
79
  pass
79
80
  # 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 entity_t
13
14
  from ... import identifier_t
14
15
 
@@ -27,7 +28,7 @@ ENDPOINT_PATH = "api/external/entity/external_unlock_entity"
27
28
  @serial_class(
28
29
  named_type_path="sdk.api.entity.unlock_entity.Arguments",
29
30
  )
30
- @dataclasses.dataclass(kw_only=True)
31
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
31
32
  class Arguments:
32
33
  entity_key: identifier_t.IdentifierKey
33
34
  entity_type: entity_t.EntityType
@@ -37,7 +38,7 @@ class Arguments:
37
38
  @serial_class(
38
39
  named_type_path="sdk.api.entity.unlock_entity.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
@@ -27,7 +27,7 @@ ENDPOINT_PATH = "api/external/equipment/associate_equipment_input"
27
27
  @serial_class(
28
28
  named_type_path="sdk.api.equipment.associate_equipment_input.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
  equipment_key: identifier_t.IdentifierKey
33
33
  material_family_ids: list[base_t.ObjectId]
@@ -37,7 +37,7 @@ class Arguments:
37
37
  @serial_class(
38
38
  named_type_path="sdk.api.equipment.associate_equipment_input.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(async_batch_t.AsyncBatchActionReturn):
42
42
  pass
43
43
  # 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] = [
@@ -26,7 +27,7 @@ ENDPOINT_PATH = "api/external/field_options/upsert_field_options"
26
27
  @serial_class(
27
28
  named_type_path="sdk.api.field_options.upsert_field_options.FieldOption",
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 FieldOption:
31
32
  option_id: str
32
33
  option_value: str | None = None
@@ -38,7 +39,7 @@ class FieldOption:
38
39
  @serial_class(
39
40
  named_type_path="sdk.api.field_options.upsert_field_options.Arguments",
40
41
  )
41
- @dataclasses.dataclass(kw_only=True)
42
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
42
43
  class Arguments:
43
44
  option_set_key: identifier_t.IdentifierKey
44
45
  field_options: list[FieldOption]
@@ -48,7 +49,7 @@ class Arguments:
48
49
  @serial_class(
49
50
  named_type_path="sdk.api.field_options.upsert_field_options.Data",
50
51
  )
51
- @dataclasses.dataclass(kw_only=True)
52
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
52
53
  class Data:
53
54
  pass
54
55
  # 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 entity_t
14
15
  from ... import identifier_t
15
16
 
@@ -36,7 +37,7 @@ class FileDownloadQueryType(StrEnum):
36
37
  @serial_class(
37
38
  named_type_path="sdk.api.files.download_file.FileDownloadQueryBase",
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 FileDownloadQueryBase:
41
42
  type: FileDownloadQueryType
42
43
 
@@ -46,7 +47,7 @@ class FileDownloadQueryBase:
46
47
  named_type_path="sdk.api.files.download_file.FileDownloadQueryEntityField",
47
48
  parse_require={"type"},
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 FileDownloadQueryEntityField(FileDownloadQueryBase):
51
52
  type: typing.Literal[FileDownloadQueryType.ENTITY_FIELD] = FileDownloadQueryType.ENTITY_FIELD
52
53
  entity: entity_t.EntityIdentifier
@@ -70,7 +71,7 @@ FileDownloadQuery = typing.Annotated[
70
71
  @serial_class(
71
72
  named_type_path="sdk.api.files.download_file.Arguments",
72
73
  )
73
- @dataclasses.dataclass(kw_only=True)
74
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
74
75
  class Arguments:
75
76
  file_query: FileDownloadQuery
76
77
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -27,7 +27,7 @@ ENDPOINT_PATH = "api/external/id_source/list_id_source"
27
27
  @serial_class(
28
28
  named_type_path="sdk.api.id_source.list_id_source.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
  spec: id_source_t.IdSourceSpec
33
33
  search_label: str
@@ -39,7 +39,7 @@ class Arguments:
39
39
  @serial_class(
40
40
  named_type_path="sdk.api.id_source.list_id_source.IdName",
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 IdName:
44
44
  id: base_t.ObjectId | str
45
45
  name: str
@@ -49,7 +49,7 @@ class IdName:
49
49
  @serial_class(
50
50
  named_type_path="sdk.api.id_source.list_id_source.Data",
51
51
  )
52
- @dataclasses.dataclass(kw_only=True)
52
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
53
53
  class Data:
54
54
  results: list[IdName]
55
55
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -27,7 +27,7 @@ ENDPOINT_PATH = "api/external/id_source/match_id_source"
27
27
  @serial_class(
28
28
  named_type_path="sdk.api.id_source.match_id_source.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
  spec: id_source_t.IdSourceSpec
33
33
  names: list[str]
@@ -37,7 +37,7 @@ class Arguments:
37
37
  @serial_class(
38
38
  named_type_path="sdk.api.id_source.match_id_source.Match",
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 Match:
42
42
  name: str
43
43
  ids: list[base_t.ObjectId | str]
@@ -47,7 +47,7 @@ class Match:
47
47
  @serial_class(
48
48
  named_type_path="sdk.api.id_source.match_id_source.Data",
49
49
  )
50
- @dataclasses.dataclass(kw_only=True)
50
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
51
51
  class Data:
52
52
  results: list[Match]
53
53
  # DO NOT MODIFY -- This file is generated by type_spec