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

@@ -7,64 +7,30 @@ from __future__ import annotations
7
7
  import typing # noqa: F401
8
8
  import datetime # noqa: F401
9
9
  from decimal import Decimal # noqa: F401
10
- from pkgs.strenum_compat import StrEnum
11
10
  from dataclasses import dataclass
12
- from pkgs.serialization import serial_string_enum
11
+ from ... import recipe_links as recipe_links_t
13
12
 
14
13
  __all__: list[str] = [
15
14
  "Arguments",
16
15
  "Data",
17
16
  "ENDPOINT_METHOD",
18
17
  "ENDPOINT_PATH",
19
- "RecipeLink",
20
- "RecipeLinkType",
21
18
  ]
22
19
 
23
20
  ENDPOINT_METHOD = "GET"
24
21
  ENDPOINT_PATH = "api/external/recipes/external_get_recipe_links"
25
22
 
26
23
 
27
- # DO NOT MODIFY -- This file is generated by type_spec
28
- @serial_string_enum(
29
- labels={
30
- "user_link": "Manual Link",
31
- "child": "Test Sample",
32
- "self": "Self Link",
33
- "recipe_as_output": "Analytical Sample",
34
- "control": "Control Link",
35
- "intermediate_recipe": "Used as Component Link",
36
- "previous_experiment": "Previous Sample",
37
- },
38
- )
39
- class RecipeLinkType(StrEnum):
40
- USER_LINK = "user_link"
41
- CHILD = "child"
42
- SELF = "self"
43
- RECIPE_AS_OUTPUT = "recipe_as_output"
44
- CONTROL = "control"
45
- INTERMEDIATE_RECIPE = "intermediate_recipe"
46
- PREVIOUS_EXPERIMENT = "previous_experiment"
47
-
48
-
49
24
  # DO NOT MODIFY -- This file is generated by type_spec
50
25
  @dataclass(kw_only=True)
51
26
  class Arguments:
52
27
  recipe_ids: list[int]
53
28
  depth: int = 1
54
- link_types: typing.Optional[list[RecipeLinkType]]
55
-
56
-
57
- # DO NOT MODIFY -- This file is generated by type_spec
58
- @dataclass(kw_only=True, frozen=True, eq=True)
59
- class RecipeLink:
60
- recipe_id_from: int
61
- recipe_id_to: int
62
- link_type: str
63
- name: str
29
+ link_types: typing.Optional[list[recipe_links_t.RecipeLinkType]]
64
30
 
65
31
 
66
32
  # DO NOT MODIFY -- This file is generated by type_spec
67
33
  @dataclass(kw_only=True)
68
34
  class Data:
69
- recipe_links: list[RecipeLink]
35
+ recipe_links: list[recipe_links_t.RecipeLink]
70
36
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -14,7 +14,9 @@ import uncountable.types.api.entity.create_entities as create_entities_t
14
14
  import uncountable.types.api.entity.create_entity as create_entity_t
15
15
  import uncountable.types.api.inputs.create_inputs as create_inputs_t
16
16
  import uncountable.types.api.recipes.create_recipes as create_recipes_t
17
+ from . import entity as entity_t
17
18
  import uncountable.types.api.batch.execute_batch as execute_batch_t
19
+ from . import field_values as field_values_t
18
20
  import uncountable.types.api.recipes.get_curve as get_curve_t
19
21
  import uncountable.types.api.entity.get_entities_data as get_entities_data_t
20
22
  import uncountable.types.api.inputs.get_input_data as get_input_data_t
@@ -32,6 +34,7 @@ import uncountable.types.api.recipes.get_recipe_names as get_recipe_names_t
32
34
  import uncountable.types.api.recipes.get_recipe_output_metadata as get_recipe_output_metadata_t
33
35
  import uncountable.types.api.recipes.get_recipes_data as get_recipes_data_t
34
36
  import uncountable.types.api.entity.list_entities as list_entities_t
37
+ from . import recipe_links as recipe_links_t
35
38
  import uncountable.types.api.entity.resolve_entity_ids as resolve_entity_ids_t
36
39
  import uncountable.types.api.outputs.resolve_output_conditions as resolve_output_conditions_t
37
40
  import uncountable.types.api.inputs.set_input_attribute_values as set_input_attribute_values_t
@@ -58,11 +61,11 @@ class ClientMethods(ABC):
58
61
  ...
59
62
 
60
63
 
61
- def external_create_entities(
64
+ def create_entities(
62
65
  self,
63
66
  *,
64
67
  definition_id: int,
65
- entity_type: typing.Union[typing.Literal["lab_request"], typing.Literal["approval"], typing.Literal["custom_entity"], typing.Literal["task"], typing.Literal["project"]],
68
+ entity_type: typing.Union[typing.Literal[entity_t.EntityType.LAB_REQUEST], typing.Literal[entity_t.EntityType.APPROVAL], typing.Literal[entity_t.EntityType.CUSTOM_ENTITY], typing.Literal[entity_t.EntityType.TASK], typing.Literal[entity_t.EntityType.PROJECT]],
66
69
  entities_to_create: list[create_entities_t.EntityToCreate],
67
70
  ) -> create_entities_t.Data:
68
71
  args = create_entities_t.Arguments(
@@ -78,12 +81,12 @@ class ClientMethods(ABC):
78
81
  return self.do_request(api_request=api_request, return_type=create_entities_t.Data)
79
82
 
80
83
 
81
- def external_create_entity(
84
+ def create_entity(
82
85
  self,
83
86
  *,
84
87
  definition_id: int,
85
- entity_type: typing.Union[typing.Literal["lab_request"], typing.Literal["approval"], typing.Literal["custom_entity"], typing.Literal["task"], typing.Literal["project"]],
86
- field_values: typing.Optional[typing.Optional[list[create_entity_t.EntityFieldInitialValue]]] = None,
88
+ entity_type: typing.Union[typing.Literal[entity_t.EntityType.LAB_REQUEST], typing.Literal[entity_t.EntityType.APPROVAL], typing.Literal[entity_t.EntityType.CUSTOM_ENTITY], typing.Literal[entity_t.EntityType.TASK], typing.Literal[entity_t.EntityType.PROJECT]],
89
+ field_values: typing.Optional[typing.Optional[list[field_values_t.FieldRefNameValue]]] = None,
87
90
  ) -> create_entity_t.Data:
88
91
  args = create_entity_t.Arguments(
89
92
  definition_id=definition_id,
@@ -114,7 +117,7 @@ class ClientMethods(ABC):
114
117
  return self.do_request(api_request=api_request, return_type=create_inputs_t.Data)
115
118
 
116
119
 
117
- def external_create_recipes(
120
+ def create_recipes(
118
121
  self,
119
122
  *,
120
123
  material_family_id: int,
@@ -150,7 +153,7 @@ class ClientMethods(ABC):
150
153
  return self.do_request(api_request=api_request, return_type=execute_batch_t.Data)
151
154
 
152
155
 
153
- def external_get_curve(
156
+ def get_curve(
154
157
  self,
155
158
  *,
156
159
  recipe_output_id: int,
@@ -166,7 +169,7 @@ class ClientMethods(ABC):
166
169
  return self.do_request(api_request=api_request, return_type=get_curve_t.Data)
167
170
 
168
171
 
169
- def external_get_entities_data(
172
+ def get_entities_data(
170
173
  self,
171
174
  *,
172
175
  entity_ids: list[int],
@@ -184,7 +187,7 @@ class ClientMethods(ABC):
184
187
  return self.do_request(api_request=api_request, return_type=get_entities_data_t.Data)
185
188
 
186
189
 
187
- def external_get_input_data(
190
+ def get_input_data(
188
191
  self,
189
192
  *,
190
193
  material_family_id: int,
@@ -208,7 +211,7 @@ class ClientMethods(ABC):
208
211
  return self.do_request(api_request=api_request, return_type=get_input_data_t.Data)
209
212
 
210
213
 
211
- def external_get_input_group_names(
214
+ def get_input_group_names(
212
215
  self,
213
216
  *,
214
217
  material_family_id: int,
@@ -224,7 +227,7 @@ class ClientMethods(ABC):
224
227
  return self.do_request(api_request=api_request, return_type=get_input_group_names_t.Data)
225
228
 
226
229
 
227
- def external_get_input_names(
230
+ def get_input_names(
228
231
  self,
229
232
  *,
230
233
  material_family_id: int,
@@ -246,7 +249,7 @@ class ClientMethods(ABC):
246
249
  return self.do_request(api_request=api_request, return_type=get_input_names_t.Data)
247
250
 
248
251
 
249
- def external_get_inputs_data(
252
+ def get_inputs_data(
250
253
  self,
251
254
  *,
252
255
  input_ids: list[int],
@@ -262,7 +265,7 @@ class ClientMethods(ABC):
262
265
  return self.do_request(api_request=api_request, return_type=get_inputs_data_t.Data)
263
266
 
264
267
 
265
- def external_get_output_data(
268
+ def get_output_data(
266
269
  self,
267
270
  *,
268
271
  material_family_id: int,
@@ -284,7 +287,7 @@ class ClientMethods(ABC):
284
287
  return self.do_request(api_request=api_request, return_type=get_output_data_t.Data)
285
288
 
286
289
 
287
- def external_get_output_names(
290
+ def get_output_names(
288
291
  self,
289
292
  *,
290
293
  material_family_id: int,
@@ -304,7 +307,7 @@ class ClientMethods(ABC):
304
307
  return self.do_request(api_request=api_request, return_type=get_output_names_t.Data)
305
308
 
306
309
 
307
- def external_get_projects(
310
+ def get_projects(
308
311
  self,
309
312
  *,
310
313
  all_material_families: bool,
@@ -322,7 +325,7 @@ class ClientMethods(ABC):
322
325
  return self.do_request(api_request=api_request, return_type=get_projects_t.Data)
323
326
 
324
327
 
325
- def external_get_projects_data(
328
+ def get_projects_data(
326
329
  self,
327
330
  *,
328
331
  project_ids: list[int],
@@ -342,7 +345,7 @@ class ClientMethods(ABC):
342
345
  return self.do_request(api_request=api_request, return_type=get_projects_data_t.Data)
343
346
 
344
347
 
345
- def external_get_recipe_calculations(
348
+ def get_recipe_calculations(
346
349
  self,
347
350
  *,
348
351
  recipe_ids: list[int],
@@ -360,12 +363,12 @@ class ClientMethods(ABC):
360
363
  return self.do_request(api_request=api_request, return_type=get_recipe_calculations_t.Data)
361
364
 
362
365
 
363
- def external_get_recipe_links(
366
+ def get_recipe_links(
364
367
  self,
365
368
  *,
366
369
  recipe_ids: list[int],
367
370
  depth: int = 1,
368
- link_types: typing.Optional[list[get_recipe_links_t.RecipeLinkType]],
371
+ link_types: typing.Optional[list[recipe_links_t.RecipeLinkType]],
369
372
  ) -> get_recipe_links_t.Data:
370
373
  args = get_recipe_links_t.Arguments(
371
374
  recipe_ids=recipe_ids,
@@ -380,7 +383,7 @@ class ClientMethods(ABC):
380
383
  return self.do_request(api_request=api_request, return_type=get_recipe_links_t.Data)
381
384
 
382
385
 
383
- def external_get_recipe_metadata_data(
386
+ def get_recipe_metadata_data(
384
387
  self,
385
388
  *,
386
389
  material_family_id: int,
@@ -402,7 +405,7 @@ class ClientMethods(ABC):
402
405
  return self.do_request(api_request=api_request, return_type=get_recipe_metadata_data_t.Data)
403
406
 
404
407
 
405
- def external_get_recipe_names(
408
+ def get_recipe_names(
406
409
  self,
407
410
  *,
408
411
  project_id: int,
@@ -418,7 +421,7 @@ class ClientMethods(ABC):
418
421
  return self.do_request(api_request=api_request, return_type=get_recipe_names_t.Data)
419
422
 
420
423
 
421
- def external_get_recipe_output_metadata(
424
+ def get_recipe_output_metadata(
422
425
  self,
423
426
  *,
424
427
  recipe_output_ids: list[int],
@@ -434,7 +437,7 @@ class ClientMethods(ABC):
434
437
  return self.do_request(api_request=api_request, return_type=get_recipe_output_metadata_t.Data)
435
438
 
436
439
 
437
- def external_get_recipes_data(
440
+ def get_recipes_data(
438
441
  self,
439
442
  *,
440
443
  recipe_ids: typing.Optional[list[int]],
@@ -456,7 +459,7 @@ class ClientMethods(ABC):
456
459
  return self.do_request(api_request=api_request, return_type=get_recipes_data_t.Data)
457
460
 
458
461
 
459
- def external_list_entities(
462
+ def list_entities(
460
463
  self,
461
464
  *,
462
465
  entity_type: str,
@@ -480,7 +483,7 @@ class ClientMethods(ABC):
480
483
  return self.do_request(api_request=api_request, return_type=list_entities_t.Data)
481
484
 
482
485
 
483
- def external_resolve_entity_ids(
486
+ def resolve_entity_ids(
484
487
  self,
485
488
  *,
486
489
  entity_ids: list[typing.Union[str, int]],
@@ -498,7 +501,7 @@ class ClientMethods(ABC):
498
501
  return self.do_request(api_request=api_request, return_type=resolve_entity_ids_t.Data)
499
502
 
500
503
 
501
- def external_resolve_output_conditions(
504
+ def resolve_output_conditions(
502
505
  self,
503
506
  *,
504
507
  requested_conditions: list[resolve_output_conditions_t.ConditionRequest],
@@ -514,7 +517,7 @@ class ClientMethods(ABC):
514
517
  return self.do_request(api_request=api_request, return_type=resolve_output_conditions_t.Data)
515
518
 
516
519
 
517
- def external_set_input_attribute_values(
520
+ def set_input_attribute_values(
518
521
  self,
519
522
  *,
520
523
  attribute_values: list[set_input_attribute_values_t.InputAttributeValue],
@@ -530,7 +533,7 @@ class ClientMethods(ABC):
530
533
  return self.do_request(api_request=api_request, return_type=set_input_attribute_values_t.Data)
531
534
 
532
535
 
533
- def external_set_recipe_inputs(
536
+ def set_recipe_inputs(
534
537
  self,
535
538
  *,
536
539
  input_data: list[set_recipe_inputs_t.RecipeInputValue],
@@ -546,7 +549,7 @@ class ClientMethods(ABC):
546
549
  return self.do_request(api_request=api_request, return_type=set_recipe_inputs_t.Data)
547
550
 
548
551
 
549
- def external_set_recipe_outputs(
552
+ def set_recipe_outputs(
550
553
  self,
551
554
  *,
552
555
  output_data: list[set_recipe_outputs_t.RecipeOutputValue],
@@ -562,7 +565,7 @@ class ClientMethods(ABC):
562
565
  return self.do_request(api_request=api_request, return_type=set_recipe_outputs_t.Data)
563
566
 
564
567
 
565
- def external_set_values(
568
+ def set_values(
566
569
  self,
567
570
  *,
568
571
  entity: set_values_t.Entity,
@@ -0,0 +1,271 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # flake8: noqa: F821
3
+ # ruff: noqa: E402
4
+ # fmt: off
5
+ # isort: skip_file
6
+ from __future__ import annotations
7
+ import typing # noqa: F401
8
+ import datetime # noqa: F401
9
+ from decimal import Decimal # noqa: F401
10
+ from pkgs.strenum_compat import StrEnum
11
+ from dataclasses import dataclass
12
+ from pkgs.serialization import serial_string_enum
13
+
14
+ __all__: list[str] = [
15
+ "Entity",
16
+ "EntityType",
17
+ ]
18
+
19
+
20
+ # DO NOT MODIFY -- This file is generated by type_spec
21
+ @serial_string_enum(
22
+ labels={
23
+ "analytical_method": "Analytical Method",
24
+ "analytical_method_category": "Analytical Method Category",
25
+ "annotation_type": "Annotation Type",
26
+ "approval": "Approval",
27
+ "calculation": "Calculation",
28
+ "calendar": "Calendar",
29
+ "calendar_event": "Calendar Event",
30
+ "certification": "Certification",
31
+ "comment": "Comment",
32
+ "comment_thread": "Comment Thread",
33
+ "condition_parameter": "Condition Parameter",
34
+ "condition_parameter_mat_family": "Condition Parameter Material Family",
35
+ "constraint": "Constraint",
36
+ "constraint_set": "Constraint Set",
37
+ "curve_settings": "Curve Settings",
38
+ "custom_entity": "Custom Entity",
39
+ "doe_run": "Suggest Experiments",
40
+ "entities_viewed": "Entities Viewed",
41
+ "entity_field": "Field",
42
+ "entity_field_audit_log": "Entity Field Audit Log",
43
+ "entity_phase_event": "Entity Phase Event",
44
+ "entity_tag": "Entity Tag",
45
+ "equipment": "Equipment",
46
+ "equipment_type": "Equipment Type",
47
+ "experiment_group": "Experiment Group",
48
+ "experiment_group_type": "Experiment Group Type",
49
+ "favorite_link": "Favorite Link",
50
+ "field_option_set": "Field Option Set",
51
+ "file_folder": "File Folder",
52
+ "file_folder_membership": "File Folder Membership",
53
+ "goal": "Goal",
54
+ "ingredient": "Ingredient",
55
+ "ingredient_attribute": "Ingredient Attribute",
56
+ "ingredient_attribute_category": "Ingredient Attribute Category",
57
+ "ingredient_category": "Ingredient Category",
58
+ "ingredient_category_all": "Ingredient Category",
59
+ "ingredient_lot": "Ingredient Lot",
60
+ "ingredient_role": "Ingredient Role",
61
+ "ingredient_tag": "Ingredient Subcategory",
62
+ "input_group": "Input Group",
63
+ "inv_local_locations": "Inventory Location",
64
+ "inventory_amount": "Inventory Amount",
65
+ "lab_location": "Lab Location",
66
+ "lab_request": "Lab Request",
67
+ "license": "License",
68
+ "maintenance_schedule": "Maintenance Schedule",
69
+ "material_family": "Material Family",
70
+ "ml_job": "Batch Processing Job",
71
+ "naming_scheme": "Naming Scheme",
72
+ "naming_counter": "Naming Counter",
73
+ "notebook": "Notebook",
74
+ "notebook_cell": "Notebook Cell",
75
+ "output": "Output",
76
+ "output_calculation_entity_mapping": "Output Calculation Entity Mapping",
77
+ "output_category_all": "Output Category",
78
+ "output_condition": "Output Condition",
79
+ "output_default_condition": "Output Default Condition",
80
+ "output_condition_parameter": "Output Condition Parameter",
81
+ "output_condition_parameter_analytical_method_category": "Output Condition Parameter Analytical Method Category",
82
+ "output_condition_parameter_analytical_method": "Output Condition Parameter Analytical Method",
83
+ "output_group": "Output Group",
84
+ "recipe_output_metadata": "Recipe Output Metadata",
85
+ "permission": "Permission",
86
+ "phase_workflow": "Phase Workflow",
87
+ "predictive_model": "Predictive Model",
88
+ "product": "Product",
89
+ "project": "Project",
90
+ "recipe": "Experiment",
91
+ "recipe_calculation": "Recipe Calculation",
92
+ "recipe_permission_view": "Recipe Permission View",
93
+ "recipe_project": "Recipe Project",
94
+ "recipe_check": "Experiment Check",
95
+ "recipe_export": "Recipe Export",
96
+ "recipe_ingredients_compounded": "Recipe Ingredients Compounded",
97
+ "recipe_ingredients_compounded_calculation": "Recipe Ingredients Compounded Caclulation",
98
+ "recipe_step": "Recipe Step",
99
+ "recipe_tag": "Recipe Tag",
100
+ "recipe_metadata": "Experiment Metadata",
101
+ "review": "Review",
102
+ "review_entity_user_status": "Review Entity User Status",
103
+ "review_user": "Review User",
104
+ "rlw_phase": "Phase",
105
+ "rlw_trigger_set": "Trigger Set",
106
+ "safety_data_sheet": "Safety Data Sheet",
107
+ "scheduled_notification": "Scheduled Notification",
108
+ "specs": "Spec",
109
+ "split_template": "Split Template",
110
+ "structured_loading_user_config": "List Config",
111
+ "task": "Task",
112
+ "task_board": "Task Board",
113
+ "template": "Template",
114
+ "timesheet_entry": "Timesheet Entry",
115
+ "training_run": "Analyze Experiment",
116
+ "training_set": "Training Set",
117
+ "units": "Units",
118
+ "user_favorite": "User Favorite",
119
+ "user": "User",
120
+ "user_certification": "User Certification",
121
+ "user_group": "User Group",
122
+ "user_list_set": "User List Set",
123
+ "webhook": "Webhook",
124
+ "webhook_event": "Webhook Event",
125
+ "workflow": "Workflow",
126
+ "workflow_step": "Workflow Step",
127
+ "workflow_variant": "Workflow Variant",
128
+ "platform_notification": "Platform Notification",
129
+ "inventory_location_type": "Inventory Location Type",
130
+ "entity_definition": "Entity Definition",
131
+ "phase_transition": "Phase Transition",
132
+ "public_data_entity_link": "Public Data Entity Link",
133
+ "public_data_sourced_output": "ChemQuery Property",
134
+ "public_data_sourced_project": "ChemQuery Category",
135
+ "public_data_sourced_recipe": "ChemQuery Product",
136
+ "public_data_sourced_recipe_project": "ChemQuery Product Category",
137
+ "public_data_sourced_recipe_metadata": "ChemQuery Product Information",
138
+ "public_data_sourced_units": "ChemQuery Units",
139
+ "public_data_sourced_condition_parameter": "ChemQuery Condition Parameter",
140
+ "public_data_sourced_company": "ChemQuery Company",
141
+ "uploader": "Uploader",
142
+ },
143
+ )
144
+ class EntityType(StrEnum):
145
+ ANALYTICAL_METHOD = "analytical_method"
146
+ ANALYTICAL_METHOD_CATEGORY = "analytical_method_category"
147
+ ANNOTATION_TYPE = "annotation_type"
148
+ APPROVAL = "approval"
149
+ CALCULATION = "calculation"
150
+ CALENDAR = "calendar"
151
+ CALENDAR_EVENT = "calendar_event"
152
+ CERTIFICATION = "certification"
153
+ COMMENT = "comment"
154
+ COMMENT_THREAD = "comment_thread"
155
+ CONDITION_PARAMETER = "condition_parameter"
156
+ CONDITION_PARAMETER_MAT_FAMILY = "condition_parameter_mat_family"
157
+ CONSTRAINT = "constraint"
158
+ CONSTRAINT_SET = "constraint_set"
159
+ CURVE_SETTINGS = "curve_settings"
160
+ CUSTOM_ENTITY = "custom_entity"
161
+ DOE_RUN = "doe_run"
162
+ ENTITIES_VIEWED = "entities_viewed"
163
+ ENTITY_FIELD = "entity_field"
164
+ ENTITY_FIELD_AUDIT_LOG = "entity_field_audit_log"
165
+ ENTITY_PHASE_EVENT = "entity_phase_event"
166
+ ENTITY_TAG = "entity_tag"
167
+ EQUIPMENT = "equipment"
168
+ EQUIPMENT_TYPE = "equipment_type"
169
+ EXPERIMENT_GROUP = "experiment_group"
170
+ EXPERIMENT_GROUP_TYPE = "experiment_group_type"
171
+ FAVORITE_LINK = "favorite_link"
172
+ FIELD_OPTION_SET = "field_option_set"
173
+ FILE_FOLDER = "file_folder"
174
+ FILE_FOLDER_MEMBERSHIP = "file_folder_membership"
175
+ GOAL = "goal"
176
+ INGREDIENT = "ingredient"
177
+ INGREDIENT_ATTRIBUTE = "ingredient_attribute"
178
+ INGREDIENT_ATTRIBUTE_CATEGORY = "ingredient_attribute_category"
179
+ INGREDIENT_CATEGORY = "ingredient_category"
180
+ INGREDIENT_CATEGORY_ALL = "ingredient_category_all"
181
+ INGREDIENT_LOT = "ingredient_lot"
182
+ INGREDIENT_ROLE = "ingredient_role"
183
+ INGREDIENT_TAG = "ingredient_tag"
184
+ INPUT_GROUP = "input_group"
185
+ INV_LOCAL_LOCATIONS = "inv_local_locations"
186
+ INVENTORY_AMOUNT = "inventory_amount"
187
+ LAB_LOCATION = "lab_location"
188
+ LAB_REQUEST = "lab_request"
189
+ LICENSE = "license"
190
+ MAINTENANCE_SCHEDULE = "maintenance_schedule"
191
+ MATERIAL_FAMILY = "material_family"
192
+ ML_JOB = "ml_job"
193
+ NAMING_SCHEME = "naming_scheme"
194
+ NAMING_COUNTER = "naming_counter"
195
+ NOTEBOOK = "notebook"
196
+ NOTEBOOK_CELL = "notebook_cell"
197
+ OUTPUT = "output"
198
+ OUTPUT_CALCULATION_ENTITY_MAPPING = "output_calculation_entity_mapping"
199
+ OUTPUT_CATEGORY_ALL = "output_category_all"
200
+ OUTPUT_CONDITION = "output_condition"
201
+ OUTPUT_DEFAULT_CONDITION = "output_default_condition"
202
+ OUTPUT_CONDITION_PARAMETER = "output_condition_parameter"
203
+ OUTPUT_CONDITION_PARAMETER_ANALYTICAL_METHOD_CATEGORY = "output_condition_parameter_analytical_method_category"
204
+ OUTPUT_CONDITION_PARAMETER_ANALYTICAL_METHOD = "output_condition_parameter_analytical_method"
205
+ OUTPUT_GROUP = "output_group"
206
+ RECIPE_OUTPUT_METADATA = "recipe_output_metadata"
207
+ PERMISSION = "permission"
208
+ PHASE_WORKFLOW = "phase_workflow"
209
+ PREDICTIVE_MODEL = "predictive_model"
210
+ PRODUCT = "product"
211
+ PROJECT = "project"
212
+ RECIPE = "recipe"
213
+ RECIPE_CALCULATION = "recipe_calculation"
214
+ RECIPE_PERMISSION_VIEW = "recipe_permission_view"
215
+ RECIPE_PROJECT = "recipe_project"
216
+ RECIPE_CHECK = "recipe_check"
217
+ RECIPE_EXPORT = "recipe_export"
218
+ RECIPE_INGREDIENTS_COMPOUNDED = "recipe_ingredients_compounded"
219
+ RECIPE_INGREDIENTS_COMPOUNDED_CALCULATION = "recipe_ingredients_compounded_calculation"
220
+ RECIPE_STEP = "recipe_step"
221
+ RECIPE_TAG = "recipe_tag"
222
+ RECIPE_METADATA = "recipe_metadata"
223
+ REVIEW = "review"
224
+ REVIEW_ENTITY_USER_STATUS = "review_entity_user_status"
225
+ REVIEW_USER = "review_user"
226
+ RLW_PHASE = "rlw_phase"
227
+ RLW_TRIGGER_SET = "rlw_trigger_set"
228
+ SAFETY_DATA_SHEET = "safety_data_sheet"
229
+ SCHEDULED_NOTIFICATION = "scheduled_notification"
230
+ SPECS = "specs"
231
+ SPLIT_TEMPLATE = "split_template"
232
+ STRUCTURED_LOADING_USER_CONFIG = "structured_loading_user_config"
233
+ TASK = "task"
234
+ TASK_BOARD = "task_board"
235
+ TEMPLATE = "template"
236
+ TIMESHEET_ENTRY = "timesheet_entry"
237
+ TRAINING_RUN = "training_run"
238
+ TRAINING_SET = "training_set"
239
+ UNITS = "units"
240
+ USER_FAVORITE = "user_favorite"
241
+ USER = "user"
242
+ USER_CERTIFICATION = "user_certification"
243
+ USER_GROUP = "user_group"
244
+ USER_LIST_SET = "user_list_set"
245
+ WEBHOOK = "webhook"
246
+ WEBHOOK_EVENT = "webhook_event"
247
+ WORKFLOW = "workflow"
248
+ WORKFLOW_STEP = "workflow_step"
249
+ WORKFLOW_VARIANT = "workflow_variant"
250
+ PLATFORM_NOTIFICATION = "platform_notification"
251
+ INVENTORY_LOCATION_TYPE = "inventory_location_type"
252
+ ENTITY_DEFINITION = "entity_definition"
253
+ PHASE_TRANSITION = "phase_transition"
254
+ PUBLIC_DATA_ENTITY_LINK = "public_data_entity_link"
255
+ PUBLIC_DATA_SOURCED_OUTPUT = "public_data_sourced_output"
256
+ PUBLIC_DATA_SOURCED_PROJECT = "public_data_sourced_project"
257
+ PUBLIC_DATA_SOURCED_RECIPE = "public_data_sourced_recipe"
258
+ PUBLIC_DATA_SOURCED_RECIPE_PROJECT = "public_data_sourced_recipe_project"
259
+ PUBLIC_DATA_SOURCED_RECIPE_METADATA = "public_data_sourced_recipe_metadata"
260
+ PUBLIC_DATA_SOURCED_UNITS = "public_data_sourced_units"
261
+ PUBLIC_DATA_SOURCED_CONDITION_PARAMETER = "public_data_sourced_condition_parameter"
262
+ PUBLIC_DATA_SOURCED_COMPANY = "public_data_sourced_company"
263
+ UPLOADER = "uploader"
264
+
265
+
266
+ # DO NOT MODIFY -- This file is generated by type_spec
267
+ @dataclass(kw_only=True)
268
+ class Entity:
269
+ id: int
270
+ type: EntityType
271
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,28 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # flake8: noqa: F821
3
+ # ruff: noqa: E402
4
+ # fmt: off
5
+ # isort: skip_file
6
+ from __future__ import annotations
7
+ import typing # noqa: F401
8
+ import datetime # noqa: F401
9
+ from decimal import Decimal # noqa: F401
10
+ from dataclasses import dataclass
11
+ from pkgs.serialization import serial_class
12
+ from . import base as base_t
13
+
14
+ __all__: list[str] = [
15
+ "FieldRefNameValue",
16
+ ]
17
+
18
+
19
+ # DO NOT MODIFY -- This file is generated by type_spec
20
+ @serial_class(
21
+ unconverted_values={"value"},
22
+ )
23
+ @dataclass(kw_only=True)
24
+ class FieldRefNameValue:
25
+ field_ref_name: str
26
+ value: base_t.JsonValue
27
+ row_index: typing.Optional[typing.Optional[int]] = None
28
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,49 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # flake8: noqa: F821
3
+ # ruff: noqa: E402
4
+ # fmt: off
5
+ # isort: skip_file
6
+ from __future__ import annotations
7
+ import typing # noqa: F401
8
+ import datetime # noqa: F401
9
+ from decimal import Decimal # noqa: F401
10
+ from pkgs.strenum_compat import StrEnum
11
+ from dataclasses import dataclass
12
+ from pkgs.serialization import serial_string_enum
13
+
14
+ __all__: list[str] = [
15
+ "RecipeLink",
16
+ "RecipeLinkType",
17
+ ]
18
+
19
+
20
+ # DO NOT MODIFY -- This file is generated by type_spec
21
+ @serial_string_enum(
22
+ labels={
23
+ "user_link": "Manual Link",
24
+ "child": "Test Sample",
25
+ "self": "Self Link",
26
+ "recipe_as_output": "Analytical Sample",
27
+ "control": "Control Link",
28
+ "intermediate_recipe": "Used as Component Link",
29
+ "previous_experiment": "Previous Sample",
30
+ },
31
+ )
32
+ class RecipeLinkType(StrEnum):
33
+ USER_LINK = "user_link"
34
+ CHILD = "child"
35
+ SELF = "self"
36
+ RECIPE_AS_OUTPUT = "recipe_as_output"
37
+ CONTROL = "control"
38
+ INTERMEDIATE_RECIPE = "intermediate_recipe"
39
+ PREVIOUS_EXPERIMENT = "previous_experiment"
40
+
41
+
42
+ # DO NOT MODIFY -- This file is generated by type_spec
43
+ @dataclass(kw_only=True, frozen=True, eq=True)
44
+ class RecipeLink:
45
+ recipe_id_from: int
46
+ recipe_id_to: int
47
+ link_type: str
48
+ name: str
49
+ # DO NOT MODIFY -- This file is generated by type_spec