UncountablePythonSDK 0.0.115__py3-none-any.whl → 0.0.142.dev0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of UncountablePythonSDK might be problematic. Click here for more details.
- docs/conf.py +52 -5
- docs/index.md +107 -4
- docs/integration_examples/create_ingredient.md +43 -0
- docs/integration_examples/create_output.md +56 -0
- docs/integration_examples/index.md +6 -0
- docs/justfile +1 -1
- docs/requirements.txt +3 -2
- examples/basic_auth.py +7 -0
- examples/integration-server/jobs/materials_auto/example_cron.py +3 -0
- examples/integration-server/jobs/materials_auto/example_http.py +19 -7
- examples/integration-server/jobs/materials_auto/example_instrument.py +100 -0
- examples/integration-server/jobs/materials_auto/example_parse.py +140 -0
- examples/integration-server/jobs/materials_auto/example_predictions.py +61 -0
- examples/integration-server/jobs/materials_auto/example_runsheet_wh.py +57 -16
- examples/integration-server/jobs/materials_auto/profile.yaml +27 -0
- examples/integration-server/pyproject.toml +4 -4
- examples/oauth.py +7 -0
- pkgs/argument_parser/__init__.py +1 -0
- pkgs/argument_parser/_is_namedtuple.py +3 -0
- pkgs/argument_parser/argument_parser.py +22 -3
- pkgs/serialization_util/serialization_helpers.py +3 -1
- pkgs/type_spec/builder.py +66 -19
- pkgs/type_spec/builder_types.py +9 -0
- pkgs/type_spec/config.py +26 -5
- pkgs/type_spec/cross_output_links.py +10 -16
- pkgs/type_spec/emit_open_api.py +72 -22
- pkgs/type_spec/emit_open_api_util.py +1 -0
- pkgs/type_spec/emit_python.py +76 -12
- pkgs/type_spec/emit_typescript.py +48 -32
- pkgs/type_spec/emit_typescript_util.py +44 -6
- pkgs/type_spec/load_types.py +2 -2
- pkgs/type_spec/open_api_util.py +16 -1
- pkgs/type_spec/parts/base.ts.prepart +4 -0
- pkgs/type_spec/type_info/emit_type_info.py +37 -4
- pkgs/type_spec/ui_entry_actions/generate_ui_entry_actions.py +1 -0
- pkgs/type_spec/value_spec/__main__.py +2 -2
- pkgs/type_spec/value_spec/emit_python.py +6 -1
- uncountable/core/client.py +10 -3
- uncountable/integration/cli.py +175 -23
- uncountable/integration/executors/executors.py +1 -2
- uncountable/integration/executors/generic_upload_executor.py +1 -1
- uncountable/integration/http_server/types.py +3 -1
- uncountable/integration/job.py +35 -3
- uncountable/integration/queue_runner/command_server/__init__.py +4 -0
- uncountable/integration/queue_runner/command_server/command_client.py +89 -0
- uncountable/integration/queue_runner/command_server/command_server.py +117 -5
- uncountable/integration/queue_runner/command_server/constants.py +4 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server.proto +51 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +34 -11
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +102 -1
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +180 -0
- uncountable/integration/queue_runner/command_server/types.py +44 -1
- uncountable/integration/queue_runner/datastore/datastore_sqlite.py +189 -8
- uncountable/integration/queue_runner/datastore/interface.py +13 -0
- uncountable/integration/queue_runner/datastore/model.py +8 -1
- uncountable/integration/queue_runner/job_scheduler.py +85 -21
- uncountable/integration/queue_runner/queue_runner.py +10 -2
- uncountable/integration/queue_runner/types.py +2 -0
- uncountable/integration/queue_runner/worker.py +28 -29
- uncountable/integration/scheduler.py +121 -23
- uncountable/integration/server.py +36 -6
- uncountable/integration/telemetry.py +129 -8
- uncountable/integration/webhook_server/entrypoint.py +2 -0
- uncountable/types/__init__.py +38 -0
- uncountable/types/api/entity/create_or_update_entity.py +1 -0
- uncountable/types/api/entity/export_entities.py +13 -0
- uncountable/types/api/entity/list_aggregate.py +79 -0
- uncountable/types/api/entity/list_entities.py +25 -0
- uncountable/types/api/entity/set_barcode.py +43 -0
- uncountable/types/api/entity/transition_entity_phase.py +2 -1
- uncountable/types/api/files/download_file.py +15 -1
- uncountable/types/api/integrations/__init__.py +1 -0
- uncountable/types/api/integrations/publish_realtime_data.py +41 -0
- uncountable/types/api/integrations/push_notification.py +49 -0
- uncountable/types/api/integrations/register_sockets_token.py +41 -0
- uncountable/types/api/listing/__init__.py +1 -0
- uncountable/types/api/listing/fetch_listing.py +57 -0
- uncountable/types/api/notebooks/__init__.py +1 -0
- uncountable/types/api/notebooks/add_notebook_content.py +119 -0
- uncountable/types/api/outputs/get_output_organization.py +173 -0
- uncountable/types/api/recipes/edit_recipe_inputs.py +1 -1
- uncountable/types/api/recipes/get_recipe_output_metadata.py +2 -2
- uncountable/types/api/recipes/get_recipes_data.py +29 -0
- uncountable/types/api/recipes/lock_recipes.py +2 -1
- uncountable/types/api/recipes/set_recipe_total.py +59 -0
- uncountable/types/api/recipes/unlock_recipes.py +2 -1
- uncountable/types/api/runsheet/export_default_runsheet.py +44 -0
- uncountable/types/api/uploader/complete_async_parse.py +46 -0
- uncountable/types/api/user/__init__.py +1 -0
- uncountable/types/api/user/get_current_user_info.py +40 -0
- uncountable/types/async_batch_processor.py +266 -0
- uncountable/types/async_batch_t.py +5 -0
- uncountable/types/client_base.py +432 -2
- uncountable/types/client_config.py +1 -0
- uncountable/types/client_config_t.py +10 -0
- uncountable/types/entity_t.py +9 -1
- uncountable/types/exports_t.py +1 -0
- uncountable/types/integration_server_t.py +2 -0
- uncountable/types/integration_session.py +10 -0
- uncountable/types/integration_session_t.py +60 -0
- uncountable/types/integrations.py +10 -0
- uncountable/types/integrations_t.py +62 -0
- uncountable/types/listing.py +46 -0
- uncountable/types/listing_t.py +533 -0
- uncountable/types/notices.py +8 -0
- uncountable/types/notices_t.py +37 -0
- uncountable/types/notifications.py +11 -0
- uncountable/types/notifications_t.py +74 -0
- uncountable/types/queued_job.py +2 -0
- uncountable/types/queued_job_t.py +20 -2
- uncountable/types/sockets.py +20 -0
- uncountable/types/sockets_t.py +169 -0
- uncountable/types/uploader.py +24 -0
- uncountable/types/uploader_t.py +222 -0
- {uncountablepythonsdk-0.0.115.dist-info → uncountablepythonsdk-0.0.142.dev0.dist-info}/METADATA +5 -2
- {uncountablepythonsdk-0.0.115.dist-info → uncountablepythonsdk-0.0.142.dev0.dist-info}/RECORD +118 -79
- docs/quickstart.md +0 -19
- {uncountablepythonsdk-0.0.115.dist-info → uncountablepythonsdk-0.0.142.dev0.dist-info}/WHEEL +0 -0
- {uncountablepythonsdk-0.0.115.dist-info → uncountablepythonsdk-0.0.142.dev0.dist-info}/top_level.txt +0 -0
uncountable/types/client_base.py
CHANGED
|
@@ -8,6 +8,7 @@ import typing # noqa: F401
|
|
|
8
8
|
import datetime # noqa: F401
|
|
9
9
|
from decimal import Decimal # noqa: F401
|
|
10
10
|
from pkgs.serialization import OpaqueKey
|
|
11
|
+
import uncountable.types.api.notebooks.add_notebook_content as add_notebook_content_t
|
|
11
12
|
import uncountable.types.api.recipes.add_recipe_to_project as add_recipe_to_project_t
|
|
12
13
|
import uncountable.types.api.recipes.add_time_series_data as add_time_series_data_t
|
|
13
14
|
import uncountable.types.api.recipes.archive_recipes as archive_recipes_t
|
|
@@ -17,6 +18,8 @@ import uncountable.types.api.recipes.associate_recipe_as_lot as associate_recipe
|
|
|
17
18
|
from uncountable.types import async_batch_t
|
|
18
19
|
from uncountable.types import base_t
|
|
19
20
|
import uncountable.types.api.recipes.clear_recipe_outputs as clear_recipe_outputs_t
|
|
21
|
+
from uncountable.types import client_config_t
|
|
22
|
+
import uncountable.types.api.uploader.complete_async_parse as complete_async_parse_t
|
|
20
23
|
import uncountable.types.api.runsheet.complete_async_upload as complete_async_upload_t
|
|
21
24
|
import uncountable.types.api.chemical.convert_chemical_formats as convert_chemical_formats_t
|
|
22
25
|
import uncountable.types.api.entity.create_entities as create_entities_t
|
|
@@ -34,9 +37,11 @@ import uncountable.types.api.batch.execute_batch as execute_batch_t
|
|
|
34
37
|
import uncountable.types.api.batch.execute_batch_load_async as execute_batch_load_async_t
|
|
35
38
|
import uncountable.types.api.entity.export_entities as export_entities_t
|
|
36
39
|
from uncountable.types import exports_t
|
|
40
|
+
import uncountable.types.api.listing.fetch_listing as fetch_listing_t
|
|
37
41
|
from uncountable.types import field_values_t
|
|
38
42
|
from uncountable.types import generic_upload_t
|
|
39
43
|
import uncountable.types.api.recipes.get_column_calculation_values as get_column_calculation_values_t
|
|
44
|
+
import uncountable.types.api.user.get_current_user_info as get_current_user_info_t
|
|
40
45
|
import uncountable.types.api.recipes.get_curve as get_curve_t
|
|
41
46
|
import uncountable.types.api.entity.get_entities_data as get_entities_data_t
|
|
42
47
|
import uncountable.types.api.inputs.get_input_data as get_input_data_t
|
|
@@ -45,6 +50,7 @@ import uncountable.types.api.inputs.get_input_names as get_input_names_t
|
|
|
45
50
|
import uncountable.types.api.inputs.get_inputs_data as get_inputs_data_t
|
|
46
51
|
import uncountable.types.api.outputs.get_output_data as get_output_data_t
|
|
47
52
|
import uncountable.types.api.outputs.get_output_names as get_output_names_t
|
|
53
|
+
import uncountable.types.api.outputs.get_output_organization as get_output_organization_t
|
|
48
54
|
import uncountable.types.api.project.get_projects as get_projects_t
|
|
49
55
|
import uncountable.types.api.project.get_projects_data as get_projects_data_t
|
|
50
56
|
import uncountable.types.api.recipes.get_recipe_calculations as get_recipe_calculations_t
|
|
@@ -57,23 +63,30 @@ import uncountable.types.api.entity.grant_entity_permissions as grant_entity_per
|
|
|
57
63
|
from uncountable.types import id_source_t
|
|
58
64
|
from uncountable.types import identifier_t
|
|
59
65
|
import uncountable.types.api.uploader.invoke_uploader as invoke_uploader_t
|
|
66
|
+
import uncountable.types.api.entity.list_aggregate as list_aggregate_t
|
|
60
67
|
import uncountable.types.api.entity.list_entities as list_entities_t
|
|
61
68
|
import uncountable.types.api.id_source.list_id_source as list_id_source_t
|
|
69
|
+
from uncountable.types import listing_t
|
|
62
70
|
import uncountable.types.api.entity.lock_entity as lock_entity_t
|
|
63
71
|
import uncountable.types.api.recipes.lock_recipes as lock_recipes_t
|
|
64
72
|
import uncountable.types.api.entity.lookup_entity as lookup_entity_t
|
|
65
73
|
import uncountable.types.api.id_source.match_id_source as match_id_source_t
|
|
74
|
+
from uncountable.types import notices_t
|
|
75
|
+
from uncountable.types import notifications_t
|
|
66
76
|
from uncountable.types import permissions_t
|
|
67
77
|
from uncountable.types import post_base_t
|
|
78
|
+
import uncountable.types.api.integrations.push_notification as push_notification_t
|
|
68
79
|
from uncountable.types import recipe_identifiers_t
|
|
69
80
|
from uncountable.types import recipe_links_t
|
|
70
81
|
from uncountable.types import recipe_metadata_t
|
|
71
82
|
from uncountable.types import recipe_workflow_steps_t
|
|
83
|
+
import uncountable.types.api.integrations.register_sockets_token as register_sockets_token_t
|
|
72
84
|
import uncountable.types.api.recipes.remove_recipe_from_project as remove_recipe_from_project_t
|
|
73
85
|
import uncountable.types.api.recipe_links.remove_recipe_link as remove_recipe_link_t
|
|
74
86
|
import uncountable.types.api.entity.resolve_entity_ids as resolve_entity_ids_t
|
|
75
87
|
import uncountable.types.api.outputs.resolve_output_conditions as resolve_output_conditions_t
|
|
76
88
|
import uncountable.types.api.triggers.run_trigger as run_trigger_t
|
|
89
|
+
import uncountable.types.api.entity.set_barcode as set_barcode_t
|
|
77
90
|
import uncountable.types.api.permissions.set_core_permissions as set_core_permissions_t
|
|
78
91
|
import uncountable.types.api.entity.set_entity_field_values as set_entity_field_values_t
|
|
79
92
|
import uncountable.types.api.inputs.set_input_attribute_values as set_input_attribute_values_t
|
|
@@ -86,12 +99,15 @@ import uncountable.types.api.recipes.set_recipe_output_annotations as set_recipe
|
|
|
86
99
|
import uncountable.types.api.recipes.set_recipe_output_file as set_recipe_output_file_t
|
|
87
100
|
import uncountable.types.api.recipes.set_recipe_outputs as set_recipe_outputs_t
|
|
88
101
|
import uncountable.types.api.recipes.set_recipe_tags as set_recipe_tags_t
|
|
102
|
+
import uncountable.types.api.recipes.set_recipe_total as set_recipe_total_t
|
|
89
103
|
import uncountable.types.api.entity.set_values as set_values_t
|
|
104
|
+
from uncountable.types import sockets_t
|
|
90
105
|
import uncountable.types.api.entity.transition_entity_phase as transition_entity_phase_t
|
|
91
106
|
import uncountable.types.api.recipes.unarchive_recipes as unarchive_recipes_t
|
|
92
107
|
import uncountable.types.api.entity.unlock_entity as unlock_entity_t
|
|
93
108
|
import uncountable.types.api.recipes.unlock_recipes as unlock_recipes_t
|
|
94
109
|
import uncountable.types.api.material_families.update_entity_material_families as update_entity_material_families_t
|
|
110
|
+
from uncountable.types import uploader_t
|
|
95
111
|
import uncountable.types.api.condition_parameters.upsert_condition_match as upsert_condition_match_t
|
|
96
112
|
import uncountable.types.api.field_options.upsert_field_options as upsert_field_options_t
|
|
97
113
|
from abc import ABC, abstractmethod
|
|
@@ -105,6 +121,7 @@ class APIRequest:
|
|
|
105
121
|
method: str
|
|
106
122
|
endpoint: str
|
|
107
123
|
args: typing.Any
|
|
124
|
+
request_options: client_config_t.RequestOptions | None = None
|
|
108
125
|
|
|
109
126
|
|
|
110
127
|
class ClientMethods(ABC):
|
|
@@ -113,11 +130,39 @@ class ClientMethods(ABC):
|
|
|
113
130
|
def do_request(self, *, api_request: APIRequest, return_type: type[DT]) -> DT:
|
|
114
131
|
...
|
|
115
132
|
|
|
133
|
+
def add_notebook_content(
|
|
134
|
+
self,
|
|
135
|
+
*,
|
|
136
|
+
notebook_key: identifier_t.IdentifierKey,
|
|
137
|
+
location: add_notebook_content_t.Location,
|
|
138
|
+
contents: list[add_notebook_content_t.InputContent],
|
|
139
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
140
|
+
) -> add_notebook_content_t.Data:
|
|
141
|
+
"""Adds content to an existing notebook
|
|
142
|
+
|
|
143
|
+
:param notebook_key: Key of the notebook to add the content to
|
|
144
|
+
:param location: The location to add the content to in the notebook
|
|
145
|
+
:param contents: List of input content to add to the notebook
|
|
146
|
+
"""
|
|
147
|
+
args = add_notebook_content_t.Arguments(
|
|
148
|
+
notebook_key=notebook_key,
|
|
149
|
+
location=location,
|
|
150
|
+
contents=contents,
|
|
151
|
+
)
|
|
152
|
+
api_request = APIRequest(
|
|
153
|
+
method=add_notebook_content_t.ENDPOINT_METHOD,
|
|
154
|
+
endpoint=add_notebook_content_t.ENDPOINT_PATH,
|
|
155
|
+
args=args,
|
|
156
|
+
request_options=_request_options,
|
|
157
|
+
)
|
|
158
|
+
return self.do_request(api_request=api_request, return_type=add_notebook_content_t.Data)
|
|
159
|
+
|
|
116
160
|
def add_recipe_to_project(
|
|
117
161
|
self,
|
|
118
162
|
*,
|
|
119
163
|
recipe_key: identifier_t.IdentifierKey,
|
|
120
164
|
project_key: identifier_t.IdentifierKey,
|
|
165
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
121
166
|
) -> add_recipe_to_project_t.Data:
|
|
122
167
|
"""Adds a recipe to a project
|
|
123
168
|
|
|
@@ -132,6 +177,7 @@ class ClientMethods(ABC):
|
|
|
132
177
|
method=add_recipe_to_project_t.ENDPOINT_METHOD,
|
|
133
178
|
endpoint=add_recipe_to_project_t.ENDPOINT_PATH,
|
|
134
179
|
args=args,
|
|
180
|
+
request_options=_request_options,
|
|
135
181
|
)
|
|
136
182
|
return self.do_request(api_request=api_request, return_type=add_recipe_to_project_t.Data)
|
|
137
183
|
|
|
@@ -141,6 +187,7 @@ class ClientMethods(ABC):
|
|
|
141
187
|
time_series_segment_key: identifier_t.IdentifierKey,
|
|
142
188
|
time_series_data: list[add_time_series_data_t.TimeSeriesDatum],
|
|
143
189
|
on_conflict: add_time_series_data_t.OnTimepointConflict = add_time_series_data_t.OnTimepointConflict.ERROR,
|
|
190
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
144
191
|
) -> add_time_series_data_t.Data:
|
|
145
192
|
"""Add timepoint data to a time series segment.
|
|
146
193
|
|
|
@@ -157,6 +204,7 @@ class ClientMethods(ABC):
|
|
|
157
204
|
method=add_time_series_data_t.ENDPOINT_METHOD,
|
|
158
205
|
endpoint=add_time_series_data_t.ENDPOINT_PATH,
|
|
159
206
|
args=args,
|
|
207
|
+
request_options=_request_options,
|
|
160
208
|
)
|
|
161
209
|
return self.do_request(api_request=api_request, return_type=add_time_series_data_t.Data)
|
|
162
210
|
|
|
@@ -165,6 +213,7 @@ class ClientMethods(ABC):
|
|
|
165
213
|
*,
|
|
166
214
|
recipes: list[identifier_t.IdentifierKey],
|
|
167
215
|
reason: str | None = None,
|
|
216
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
168
217
|
) -> archive_recipes_t.Data:
|
|
169
218
|
"""Archive the provided recipes and their children
|
|
170
219
|
|
|
@@ -179,6 +228,7 @@ class ClientMethods(ABC):
|
|
|
179
228
|
method=archive_recipes_t.ENDPOINT_METHOD,
|
|
180
229
|
endpoint=archive_recipes_t.ENDPOINT_PATH,
|
|
181
230
|
args=args,
|
|
231
|
+
request_options=_request_options,
|
|
182
232
|
)
|
|
183
233
|
return self.do_request(api_request=api_request, return_type=archive_recipes_t.Data)
|
|
184
234
|
|
|
@@ -187,6 +237,7 @@ class ClientMethods(ABC):
|
|
|
187
237
|
*,
|
|
188
238
|
equipment_key: identifier_t.IdentifierKey,
|
|
189
239
|
material_family_ids: list[base_t.ObjectId],
|
|
240
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
190
241
|
) -> associate_equipment_input_t.Data:
|
|
191
242
|
"""Create or return the input association for equipment
|
|
192
243
|
|
|
@@ -201,6 +252,7 @@ class ClientMethods(ABC):
|
|
|
201
252
|
method=associate_equipment_input_t.ENDPOINT_METHOD,
|
|
202
253
|
endpoint=associate_equipment_input_t.ENDPOINT_PATH,
|
|
203
254
|
args=args,
|
|
255
|
+
request_options=_request_options,
|
|
204
256
|
)
|
|
205
257
|
return self.do_request(api_request=api_request, return_type=associate_equipment_input_t.Data)
|
|
206
258
|
|
|
@@ -210,6 +262,7 @@ class ClientMethods(ABC):
|
|
|
210
262
|
recipe_key: identifier_t.IdentifierKey,
|
|
211
263
|
input_key: identifier_t.IdentifierKey | None = None,
|
|
212
264
|
show_in_listings: bool | None = None,
|
|
265
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
213
266
|
) -> associate_recipe_as_input_t.Data:
|
|
214
267
|
"""Create or return the input association for a recipe
|
|
215
268
|
|
|
@@ -226,6 +279,7 @@ class ClientMethods(ABC):
|
|
|
226
279
|
method=associate_recipe_as_input_t.ENDPOINT_METHOD,
|
|
227
280
|
endpoint=associate_recipe_as_input_t.ENDPOINT_PATH,
|
|
228
281
|
args=args,
|
|
282
|
+
request_options=_request_options,
|
|
229
283
|
)
|
|
230
284
|
return self.do_request(api_request=api_request, return_type=associate_recipe_as_input_t.Data)
|
|
231
285
|
|
|
@@ -234,6 +288,7 @@ class ClientMethods(ABC):
|
|
|
234
288
|
*,
|
|
235
289
|
recipe_key: identifier_t.IdentifierKey,
|
|
236
290
|
ingredient_key: identifier_t.IdentifierKey,
|
|
291
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
237
292
|
) -> associate_recipe_as_lot_t.Data:
|
|
238
293
|
"""Create a new lot association for the provided recipe with the provided ingredient
|
|
239
294
|
|
|
@@ -248,6 +303,7 @@ class ClientMethods(ABC):
|
|
|
248
303
|
method=associate_recipe_as_lot_t.ENDPOINT_METHOD,
|
|
249
304
|
endpoint=associate_recipe_as_lot_t.ENDPOINT_PATH,
|
|
250
305
|
args=args,
|
|
306
|
+
request_options=_request_options,
|
|
251
307
|
)
|
|
252
308
|
return self.do_request(api_request=api_request, return_type=associate_recipe_as_lot_t.Data)
|
|
253
309
|
|
|
@@ -255,6 +311,7 @@ class ClientMethods(ABC):
|
|
|
255
311
|
self,
|
|
256
312
|
*,
|
|
257
313
|
recipe_key: identifier_t.IdentifierKey,
|
|
314
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
258
315
|
) -> clear_recipe_outputs_t.Data:
|
|
259
316
|
"""Clears all output values & output metadata for a given recipe
|
|
260
317
|
|
|
@@ -267,14 +324,40 @@ class ClientMethods(ABC):
|
|
|
267
324
|
method=clear_recipe_outputs_t.ENDPOINT_METHOD,
|
|
268
325
|
endpoint=clear_recipe_outputs_t.ENDPOINT_PATH,
|
|
269
326
|
args=args,
|
|
327
|
+
request_options=_request_options,
|
|
270
328
|
)
|
|
271
329
|
return self.do_request(api_request=api_request, return_type=clear_recipe_outputs_t.Data)
|
|
272
330
|
|
|
331
|
+
def complete_async_parse(
|
|
332
|
+
self,
|
|
333
|
+
*,
|
|
334
|
+
parsed_file_data: list[uploader_t.ParsedFileData],
|
|
335
|
+
async_job_key: identifier_t.IdentifierKey,
|
|
336
|
+
upload_destination: generic_upload_t.UploadDestinationRecipe,
|
|
337
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
338
|
+
) -> complete_async_parse_t.Data:
|
|
339
|
+
"""Parses uploaded files asynchronously
|
|
340
|
+
|
|
341
|
+
"""
|
|
342
|
+
args = complete_async_parse_t.Arguments(
|
|
343
|
+
parsed_file_data=parsed_file_data,
|
|
344
|
+
async_job_key=async_job_key,
|
|
345
|
+
upload_destination=upload_destination,
|
|
346
|
+
)
|
|
347
|
+
api_request = APIRequest(
|
|
348
|
+
method=complete_async_parse_t.ENDPOINT_METHOD,
|
|
349
|
+
endpoint=complete_async_parse_t.ENDPOINT_PATH,
|
|
350
|
+
args=args,
|
|
351
|
+
request_options=_request_options,
|
|
352
|
+
)
|
|
353
|
+
return self.do_request(api_request=api_request, return_type=complete_async_parse_t.Data)
|
|
354
|
+
|
|
273
355
|
def complete_async_upload(
|
|
274
356
|
self,
|
|
275
357
|
*,
|
|
276
358
|
async_job_id: base_t.ObjectId,
|
|
277
359
|
file_id: base_t.ObjectId,
|
|
360
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
278
361
|
) -> complete_async_upload_t.Data:
|
|
279
362
|
"""Processes an file id with a given async job id to be uploaded asynchronously
|
|
280
363
|
|
|
@@ -287,6 +370,7 @@ class ClientMethods(ABC):
|
|
|
287
370
|
method=complete_async_upload_t.ENDPOINT_METHOD,
|
|
288
371
|
endpoint=complete_async_upload_t.ENDPOINT_PATH,
|
|
289
372
|
args=args,
|
|
373
|
+
request_options=_request_options,
|
|
290
374
|
)
|
|
291
375
|
return self.do_request(api_request=api_request, return_type=complete_async_upload_t.Data)
|
|
292
376
|
|
|
@@ -294,6 +378,7 @@ class ClientMethods(ABC):
|
|
|
294
378
|
self,
|
|
295
379
|
*,
|
|
296
380
|
source_chemical_structures: list[convert_chemical_formats_t.ChemicalStructureFile],
|
|
381
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
297
382
|
) -> convert_chemical_formats_t.Data:
|
|
298
383
|
"""Converts chemical formats, into the format used by Uncountable and usable in other APIs for eg. set_input_attribute_values
|
|
299
384
|
|
|
@@ -305,6 +390,7 @@ class ClientMethods(ABC):
|
|
|
305
390
|
method=convert_chemical_formats_t.ENDPOINT_METHOD,
|
|
306
391
|
endpoint=convert_chemical_formats_t.ENDPOINT_PATH,
|
|
307
392
|
args=args,
|
|
393
|
+
request_options=_request_options,
|
|
308
394
|
)
|
|
309
395
|
return self.do_request(api_request=api_request, return_type=convert_chemical_formats_t.Data)
|
|
310
396
|
|
|
@@ -315,6 +401,7 @@ class ClientMethods(ABC):
|
|
|
315
401
|
entities_to_create: list[create_entities_t.EntityToCreate],
|
|
316
402
|
definition_id: base_t.ObjectId | None = None,
|
|
317
403
|
definition_key: identifier_t.IdentifierKey | None = None,
|
|
404
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
318
405
|
) -> create_entities_t.Data:
|
|
319
406
|
"""Creates new Uncountable entities
|
|
320
407
|
|
|
@@ -333,6 +420,7 @@ class ClientMethods(ABC):
|
|
|
333
420
|
method=create_entities_t.ENDPOINT_METHOD,
|
|
334
421
|
endpoint=create_entities_t.ENDPOINT_PATH,
|
|
335
422
|
args=args,
|
|
423
|
+
request_options=_request_options,
|
|
336
424
|
)
|
|
337
425
|
return self.do_request(api_request=api_request, return_type=create_entities_t.Data)
|
|
338
426
|
|
|
@@ -344,6 +432,7 @@ class ClientMethods(ABC):
|
|
|
344
432
|
definition_key: identifier_t.IdentifierKey | None = None,
|
|
345
433
|
field_values: list[field_values_t.FieldRefNameValue] | None = None,
|
|
346
434
|
parent_entity: entity_t.Entity | None = None,
|
|
435
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
347
436
|
) -> create_entity_t.Data:
|
|
348
437
|
"""Creates a new Uncountable entity
|
|
349
438
|
|
|
@@ -363,6 +452,7 @@ class ClientMethods(ABC):
|
|
|
363
452
|
method=create_entity_t.ENDPOINT_METHOD,
|
|
364
453
|
endpoint=create_entity_t.ENDPOINT_PATH,
|
|
365
454
|
args=args,
|
|
455
|
+
request_options=_request_options,
|
|
366
456
|
)
|
|
367
457
|
return self.do_request(api_request=api_request, return_type=create_entity_t.Data)
|
|
368
458
|
|
|
@@ -370,6 +460,7 @@ class ClientMethods(ABC):
|
|
|
370
460
|
self,
|
|
371
461
|
*,
|
|
372
462
|
inputs_to_create: list[create_inputs_t.InputToCreate],
|
|
463
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
373
464
|
) -> create_inputs_t.Data:
|
|
374
465
|
"""Creates new inputs
|
|
375
466
|
|
|
@@ -382,6 +473,7 @@ class ClientMethods(ABC):
|
|
|
382
473
|
method=create_inputs_t.ENDPOINT_METHOD,
|
|
383
474
|
endpoint=create_inputs_t.ENDPOINT_PATH,
|
|
384
475
|
args=args,
|
|
476
|
+
request_options=_request_options,
|
|
385
477
|
)
|
|
386
478
|
return self.do_request(api_request=api_request, return_type=create_inputs_t.Data)
|
|
387
479
|
|
|
@@ -390,6 +482,7 @@ class ClientMethods(ABC):
|
|
|
390
482
|
*,
|
|
391
483
|
recipe_key: identifier_t.IdentifierKey,
|
|
392
484
|
recipe_workflow_step_identifier: recipe_workflow_steps_t.RecipeWorkflowStepIdentifier,
|
|
485
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
393
486
|
) -> create_mix_order_t.Data:
|
|
394
487
|
"""Creates mix order on a recipe workflow step
|
|
395
488
|
|
|
@@ -402,6 +495,7 @@ class ClientMethods(ABC):
|
|
|
402
495
|
method=create_mix_order_t.ENDPOINT_METHOD,
|
|
403
496
|
endpoint=create_mix_order_t.ENDPOINT_PATH,
|
|
404
497
|
args=args,
|
|
498
|
+
request_options=_request_options,
|
|
405
499
|
)
|
|
406
500
|
return self.do_request(api_request=api_request, return_type=create_mix_order_t.Data)
|
|
407
501
|
|
|
@@ -412,20 +506,25 @@ class ClientMethods(ABC):
|
|
|
412
506
|
definition_key: identifier_t.IdentifierKey,
|
|
413
507
|
field_values: list[field_values_t.FieldArgumentValue],
|
|
414
508
|
entity_key: identifier_t.IdentifierKey | None = None,
|
|
509
|
+
on_create_init_field_values: list[field_values_t.FieldArgumentValue] | None = None,
|
|
510
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
415
511
|
) -> create_or_update_entity_t.Data:
|
|
416
512
|
"""Creates or updates field values for an entity
|
|
417
513
|
|
|
514
|
+
:param on_create_init_field_values: Field values set only when the entity is created (will be ignored if entity already exists)
|
|
418
515
|
"""
|
|
419
516
|
args = create_or_update_entity_t.Arguments(
|
|
420
517
|
entity_key=entity_key,
|
|
421
518
|
entity_type=entity_type,
|
|
422
519
|
definition_key=definition_key,
|
|
423
520
|
field_values=field_values,
|
|
521
|
+
on_create_init_field_values=on_create_init_field_values,
|
|
424
522
|
)
|
|
425
523
|
api_request = APIRequest(
|
|
426
524
|
method=create_or_update_entity_t.ENDPOINT_METHOD,
|
|
427
525
|
endpoint=create_or_update_entity_t.ENDPOINT_PATH,
|
|
428
526
|
args=args,
|
|
527
|
+
request_options=_request_options,
|
|
429
528
|
)
|
|
430
529
|
return self.do_request(api_request=api_request, return_type=create_or_update_entity_t.Data)
|
|
431
530
|
|
|
@@ -440,6 +539,7 @@ class ClientMethods(ABC):
|
|
|
440
539
|
recipe_metadata: list[recipe_metadata_t.MetadataValue] | None = None,
|
|
441
540
|
identifiers: recipe_identifiers_t.RecipeIdentifiers | None = None,
|
|
442
541
|
definition_key: identifier_t.IdentifierKey | None = None,
|
|
542
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
443
543
|
) -> create_recipe_t.Data:
|
|
444
544
|
"""Returns the id of the recipe being created.
|
|
445
545
|
|
|
@@ -466,6 +566,7 @@ class ClientMethods(ABC):
|
|
|
466
566
|
method=create_recipe_t.ENDPOINT_METHOD,
|
|
467
567
|
endpoint=create_recipe_t.ENDPOINT_PATH,
|
|
468
568
|
args=args,
|
|
569
|
+
request_options=_request_options,
|
|
469
570
|
)
|
|
470
571
|
return self.do_request(api_request=api_request, return_type=create_recipe_t.Data)
|
|
471
572
|
|
|
@@ -476,6 +577,7 @@ class ClientMethods(ABC):
|
|
|
476
577
|
recipe_to_key: identifier_t.IdentifierKey,
|
|
477
578
|
link_type: typing.Literal[recipe_links_t.RecipeLinkType.CHILD] | typing.Literal[recipe_links_t.RecipeLinkType.CONTROL] | typing.Literal[recipe_links_t.RecipeLinkType.USER_LINK] | typing.Literal[recipe_links_t.RecipeLinkType.PREVIOUS_EXPERIMENT],
|
|
478
579
|
name: str | None = None,
|
|
580
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
479
581
|
) -> create_recipe_link_t.Data:
|
|
480
582
|
"""Create a link between two recipes. Skip if the link already exists
|
|
481
583
|
|
|
@@ -494,6 +596,7 @@ class ClientMethods(ABC):
|
|
|
494
596
|
method=create_recipe_link_t.ENDPOINT_METHOD,
|
|
495
597
|
endpoint=create_recipe_link_t.ENDPOINT_PATH,
|
|
496
598
|
args=args,
|
|
599
|
+
request_options=_request_options,
|
|
497
600
|
)
|
|
498
601
|
return self.do_request(api_request=api_request, return_type=create_recipe_link_t.Data)
|
|
499
602
|
|
|
@@ -503,8 +606,9 @@ class ClientMethods(ABC):
|
|
|
503
606
|
material_family_id: base_t.ObjectId,
|
|
504
607
|
recipe_definitions: list[create_recipes_t.CreateRecipeDefinition],
|
|
505
608
|
project_id: base_t.ObjectId | None = None,
|
|
609
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
506
610
|
) -> create_recipes_t.Data:
|
|
507
|
-
"""
|
|
611
|
+
"""Creates recipes in Uncountable, optionally with metadata values, and returns the resulting ids in corresponding order
|
|
508
612
|
|
|
509
613
|
:param material_family_id: The identifier of the material family to create the recipes in
|
|
510
614
|
:param project_id: The identifier of the project to create the recipes in
|
|
@@ -518,6 +622,7 @@ class ClientMethods(ABC):
|
|
|
518
622
|
method=create_recipes_t.ENDPOINT_METHOD,
|
|
519
623
|
endpoint=create_recipes_t.ENDPOINT_PATH,
|
|
520
624
|
args=args,
|
|
625
|
+
request_options=_request_options,
|
|
521
626
|
)
|
|
522
627
|
return self.do_request(api_request=api_request, return_type=create_recipes_t.Data)
|
|
523
628
|
|
|
@@ -525,6 +630,7 @@ class ClientMethods(ABC):
|
|
|
525
630
|
self,
|
|
526
631
|
*,
|
|
527
632
|
recipe_key: identifier_t.IdentifierKey,
|
|
633
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
528
634
|
) -> disassociate_recipe_as_input_t.Data:
|
|
529
635
|
"""Remove any association between a recipe and ingredients
|
|
530
636
|
|
|
@@ -537,6 +643,7 @@ class ClientMethods(ABC):
|
|
|
537
643
|
method=disassociate_recipe_as_input_t.ENDPOINT_METHOD,
|
|
538
644
|
endpoint=disassociate_recipe_as_input_t.ENDPOINT_PATH,
|
|
539
645
|
args=args,
|
|
646
|
+
request_options=_request_options,
|
|
540
647
|
)
|
|
541
648
|
return self.do_request(api_request=api_request, return_type=disassociate_recipe_as_input_t.Data)
|
|
542
649
|
|
|
@@ -546,6 +653,7 @@ class ClientMethods(ABC):
|
|
|
546
653
|
recipe_key: identifier_t.IdentifierKey,
|
|
547
654
|
recipe_workflow_step_identifier: recipe_workflow_steps_t.RecipeWorkflowStepIdentifier,
|
|
548
655
|
edits: list[edit_recipe_inputs_t.RecipeInputEdit],
|
|
656
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
549
657
|
) -> edit_recipe_inputs_t.Data:
|
|
550
658
|
"""Clear, update, or add inputs on a recipe
|
|
551
659
|
|
|
@@ -560,6 +668,7 @@ class ClientMethods(ABC):
|
|
|
560
668
|
method=edit_recipe_inputs_t.ENDPOINT_METHOD,
|
|
561
669
|
endpoint=edit_recipe_inputs_t.ENDPOINT_PATH,
|
|
562
670
|
args=args,
|
|
671
|
+
request_options=_request_options,
|
|
563
672
|
)
|
|
564
673
|
return self.do_request(api_request=api_request, return_type=edit_recipe_inputs_t.Data)
|
|
565
674
|
|
|
@@ -567,6 +676,7 @@ class ClientMethods(ABC):
|
|
|
567
676
|
self,
|
|
568
677
|
*,
|
|
569
678
|
requests: list[execute_batch_t.BatchRequest],
|
|
679
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
570
680
|
) -> execute_batch_t.Data:
|
|
571
681
|
"""Run multiple API calls via one request
|
|
572
682
|
|
|
@@ -578,6 +688,7 @@ class ClientMethods(ABC):
|
|
|
578
688
|
method=execute_batch_t.ENDPOINT_METHOD,
|
|
579
689
|
endpoint=execute_batch_t.ENDPOINT_PATH,
|
|
580
690
|
args=args,
|
|
691
|
+
request_options=_request_options,
|
|
581
692
|
)
|
|
582
693
|
return self.do_request(api_request=api_request, return_type=execute_batch_t.Data)
|
|
583
694
|
|
|
@@ -585,6 +696,7 @@ class ClientMethods(ABC):
|
|
|
585
696
|
self,
|
|
586
697
|
*,
|
|
587
698
|
requests: list[async_batch_t.AsyncBatchRequest],
|
|
699
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
588
700
|
) -> execute_batch_load_async_t.Data:
|
|
589
701
|
"""Run multiple API calls via one request
|
|
590
702
|
|
|
@@ -596,6 +708,7 @@ class ClientMethods(ABC):
|
|
|
596
708
|
method=execute_batch_load_async_t.ENDPOINT_METHOD,
|
|
597
709
|
endpoint=execute_batch_load_async_t.ENDPOINT_PATH,
|
|
598
710
|
args=args,
|
|
711
|
+
request_options=_request_options,
|
|
599
712
|
)
|
|
600
713
|
return self.do_request(api_request=api_request, return_type=execute_batch_load_async_t.Data)
|
|
601
714
|
|
|
@@ -606,6 +719,8 @@ class ClientMethods(ABC):
|
|
|
606
719
|
type: exports_t.ExportType = exports_t.ExportType.EXCEL,
|
|
607
720
|
client_timezone: exports_t.ListingExportUserTimezone | None = None,
|
|
608
721
|
limit: int | None = None,
|
|
722
|
+
attributes: list[export_entities_t.ListingAttribute] | None = None,
|
|
723
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
609
724
|
) -> export_entities_t.Data:
|
|
610
725
|
"""Uses a structured loading configuration to export entities in the system. This endpoint is asynchronous, and returns the job ID that can be used to query the status of the export.
|
|
611
726
|
|
|
@@ -617,19 +732,55 @@ class ClientMethods(ABC):
|
|
|
617
732
|
client_timezone=client_timezone,
|
|
618
733
|
limit=limit,
|
|
619
734
|
type=type,
|
|
735
|
+
attributes=attributes,
|
|
620
736
|
)
|
|
621
737
|
api_request = APIRequest(
|
|
622
738
|
method=export_entities_t.ENDPOINT_METHOD,
|
|
623
739
|
endpoint=export_entities_t.ENDPOINT_PATH,
|
|
624
740
|
args=args,
|
|
741
|
+
request_options=_request_options,
|
|
625
742
|
)
|
|
626
743
|
return self.do_request(api_request=api_request, return_type=export_entities_t.Data)
|
|
627
744
|
|
|
745
|
+
def fetch_listing(
|
|
746
|
+
self,
|
|
747
|
+
*,
|
|
748
|
+
entity_type: entity_t.EntityType,
|
|
749
|
+
columns: list[listing_t.ColumnIdentifier],
|
|
750
|
+
filters: listing_t.FilterNode | None = None,
|
|
751
|
+
limit: int | None = None,
|
|
752
|
+
offset: int | None = None,
|
|
753
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
754
|
+
) -> fetch_listing_t.Data:
|
|
755
|
+
"""External API for fetching a listing based on some structured columns and filters
|
|
756
|
+
|
|
757
|
+
:param entity_type: The entity type to fetch listing entries for
|
|
758
|
+
:param columns: The columns to include in the results
|
|
759
|
+
:param filters: Structured filters to apply to the listing, represented by a FilterNode object
|
|
760
|
+
:param limit: The number of entries to return. If not provided, defaults to 100. Note a maximum of 100 entries can be returned.
|
|
761
|
+
:param offset: The number of entries to skip for pagination
|
|
762
|
+
"""
|
|
763
|
+
args = fetch_listing_t.Arguments(
|
|
764
|
+
entity_type=entity_type,
|
|
765
|
+
columns=columns,
|
|
766
|
+
filters=filters,
|
|
767
|
+
limit=limit,
|
|
768
|
+
offset=offset,
|
|
769
|
+
)
|
|
770
|
+
api_request = APIRequest(
|
|
771
|
+
method=fetch_listing_t.ENDPOINT_METHOD,
|
|
772
|
+
endpoint=fetch_listing_t.ENDPOINT_PATH,
|
|
773
|
+
args=args,
|
|
774
|
+
request_options=_request_options,
|
|
775
|
+
)
|
|
776
|
+
return self.do_request(api_request=api_request, return_type=fetch_listing_t.Data)
|
|
777
|
+
|
|
628
778
|
def get_column_calculation_values(
|
|
629
779
|
self,
|
|
630
780
|
*,
|
|
631
781
|
recipe_keys: list[identifier_t.IdentifierKey],
|
|
632
782
|
calculation_key: identifier_t.IdentifierKey,
|
|
783
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
633
784
|
) -> get_column_calculation_values_t.Data:
|
|
634
785
|
"""Get the values for a column calculations for recipes
|
|
635
786
|
|
|
@@ -644,14 +795,33 @@ class ClientMethods(ABC):
|
|
|
644
795
|
method=get_column_calculation_values_t.ENDPOINT_METHOD,
|
|
645
796
|
endpoint=get_column_calculation_values_t.ENDPOINT_PATH,
|
|
646
797
|
args=args,
|
|
798
|
+
request_options=_request_options,
|
|
647
799
|
)
|
|
648
800
|
return self.do_request(api_request=api_request, return_type=get_column_calculation_values_t.Data)
|
|
649
801
|
|
|
802
|
+
def get_current_user_info(
|
|
803
|
+
self,
|
|
804
|
+
*,
|
|
805
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
806
|
+
) -> get_current_user_info_t.Data:
|
|
807
|
+
"""Return information about the current user
|
|
808
|
+
|
|
809
|
+
"""
|
|
810
|
+
args = get_current_user_info_t.Arguments()
|
|
811
|
+
api_request = APIRequest(
|
|
812
|
+
method=get_current_user_info_t.ENDPOINT_METHOD,
|
|
813
|
+
endpoint=get_current_user_info_t.ENDPOINT_PATH,
|
|
814
|
+
args=args,
|
|
815
|
+
request_options=_request_options,
|
|
816
|
+
)
|
|
817
|
+
return self.do_request(api_request=api_request, return_type=get_current_user_info_t.Data)
|
|
818
|
+
|
|
650
819
|
def get_curve(
|
|
651
820
|
self,
|
|
652
821
|
*,
|
|
653
822
|
recipe_output_id: base_t.ObjectId | None = None,
|
|
654
823
|
recipe_input_id: base_t.ObjectId | None = None,
|
|
824
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
655
825
|
) -> get_curve_t.Data:
|
|
656
826
|
"""Returns an array of values for the specified curve id.
|
|
657
827
|
|
|
@@ -666,6 +836,7 @@ class ClientMethods(ABC):
|
|
|
666
836
|
method=get_curve_t.ENDPOINT_METHOD,
|
|
667
837
|
endpoint=get_curve_t.ENDPOINT_PATH,
|
|
668
838
|
args=args,
|
|
839
|
+
request_options=_request_options,
|
|
669
840
|
)
|
|
670
841
|
return self.do_request(api_request=api_request, return_type=get_curve_t.Data)
|
|
671
842
|
|
|
@@ -674,6 +845,7 @@ class ClientMethods(ABC):
|
|
|
674
845
|
*,
|
|
675
846
|
entity_ids: list[base_t.ObjectId],
|
|
676
847
|
entity_type: entity_t.EntityType,
|
|
848
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
677
849
|
) -> get_entities_data_t.Data:
|
|
678
850
|
"""Gets the details for a passed entity
|
|
679
851
|
|
|
@@ -688,6 +860,7 @@ class ClientMethods(ABC):
|
|
|
688
860
|
method=get_entities_data_t.ENDPOINT_METHOD,
|
|
689
861
|
endpoint=get_entities_data_t.ENDPOINT_PATH,
|
|
690
862
|
args=args,
|
|
863
|
+
request_options=_request_options,
|
|
691
864
|
)
|
|
692
865
|
return self.do_request(api_request=api_request, return_type=get_entities_data_t.Data)
|
|
693
866
|
|
|
@@ -699,6 +872,7 @@ class ClientMethods(ABC):
|
|
|
699
872
|
is_parameter: bool | None,
|
|
700
873
|
offset: int | None = None,
|
|
701
874
|
limit: int | None = None,
|
|
875
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
702
876
|
) -> get_input_data_t.Data:
|
|
703
877
|
"""Gets the attribute, categorization and other metadata associated with a set of inputs. An input is either an ingredient or process parameter, with metadata and calculations assigned separately
|
|
704
878
|
|
|
@@ -719,6 +893,7 @@ class ClientMethods(ABC):
|
|
|
719
893
|
method=get_input_data_t.ENDPOINT_METHOD,
|
|
720
894
|
endpoint=get_input_data_t.ENDPOINT_PATH,
|
|
721
895
|
args=args,
|
|
896
|
+
request_options=_request_options,
|
|
722
897
|
)
|
|
723
898
|
return self.do_request(api_request=api_request, return_type=get_input_data_t.Data)
|
|
724
899
|
|
|
@@ -726,6 +901,7 @@ class ClientMethods(ABC):
|
|
|
726
901
|
self,
|
|
727
902
|
*,
|
|
728
903
|
material_family_id: base_t.ObjectId,
|
|
904
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
729
905
|
) -> get_input_group_names_t.Data:
|
|
730
906
|
"""Gets the name of all input groups in a material family that either the user created, or are shared to all users.
|
|
731
907
|
|
|
@@ -738,6 +914,7 @@ class ClientMethods(ABC):
|
|
|
738
914
|
method=get_input_group_names_t.ENDPOINT_METHOD,
|
|
739
915
|
endpoint=get_input_group_names_t.ENDPOINT_PATH,
|
|
740
916
|
args=args,
|
|
917
|
+
request_options=_request_options,
|
|
741
918
|
)
|
|
742
919
|
return self.do_request(api_request=api_request, return_type=get_input_group_names_t.Data)
|
|
743
920
|
|
|
@@ -748,6 +925,7 @@ class ClientMethods(ABC):
|
|
|
748
925
|
is_parameter: bool | None,
|
|
749
926
|
offset: int | None = None,
|
|
750
927
|
limit: int | None = None,
|
|
928
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
751
929
|
) -> get_input_names_t.Data:
|
|
752
930
|
"""Gets the name of all inputs for a material family. An input is either an ingredient or process parameter, with metadata and calculations assigned separately
|
|
753
931
|
|
|
@@ -766,6 +944,7 @@ class ClientMethods(ABC):
|
|
|
766
944
|
method=get_input_names_t.ENDPOINT_METHOD,
|
|
767
945
|
endpoint=get_input_names_t.ENDPOINT_PATH,
|
|
768
946
|
args=args,
|
|
947
|
+
request_options=_request_options,
|
|
769
948
|
)
|
|
770
949
|
return self.do_request(api_request=api_request, return_type=get_input_names_t.Data)
|
|
771
950
|
|
|
@@ -773,6 +952,7 @@ class ClientMethods(ABC):
|
|
|
773
952
|
self,
|
|
774
953
|
*,
|
|
775
954
|
input_ids: list[base_t.ObjectId],
|
|
955
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
776
956
|
) -> get_inputs_data_t.Data:
|
|
777
957
|
"""Gets the details for passed input ids
|
|
778
958
|
|
|
@@ -785,6 +965,7 @@ class ClientMethods(ABC):
|
|
|
785
965
|
method=get_inputs_data_t.ENDPOINT_METHOD,
|
|
786
966
|
endpoint=get_inputs_data_t.ENDPOINT_PATH,
|
|
787
967
|
args=args,
|
|
968
|
+
request_options=_request_options,
|
|
788
969
|
)
|
|
789
970
|
return self.do_request(api_request=api_request, return_type=get_inputs_data_t.Data)
|
|
790
971
|
|
|
@@ -795,6 +976,7 @@ class ClientMethods(ABC):
|
|
|
795
976
|
output_ids: list[base_t.ObjectId] | None = None,
|
|
796
977
|
offset: int | None = None,
|
|
797
978
|
limit: int | None = None,
|
|
979
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
798
980
|
) -> get_output_data_t.Data:
|
|
799
981
|
"""Gets the attribute, categorization and other metadata associated with a set of outputs
|
|
800
982
|
|
|
@@ -813,6 +995,7 @@ class ClientMethods(ABC):
|
|
|
813
995
|
method=get_output_data_t.ENDPOINT_METHOD,
|
|
814
996
|
endpoint=get_output_data_t.ENDPOINT_PATH,
|
|
815
997
|
args=args,
|
|
998
|
+
request_options=_request_options,
|
|
816
999
|
)
|
|
817
1000
|
return self.do_request(api_request=api_request, return_type=get_output_data_t.Data)
|
|
818
1001
|
|
|
@@ -822,6 +1005,7 @@ class ClientMethods(ABC):
|
|
|
822
1005
|
material_family_id: base_t.ObjectId,
|
|
823
1006
|
offset: int | None = None,
|
|
824
1007
|
limit: int | None = None,
|
|
1008
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
825
1009
|
) -> get_output_names_t.Data:
|
|
826
1010
|
"""Gets the name of all outputs for a material family. An output represents a measurement value of any time (numeric, text, curve, etc). This includes calculations based off of other outputs, such as a calculated change over time
|
|
827
1011
|
|
|
@@ -838,14 +1022,36 @@ class ClientMethods(ABC):
|
|
|
838
1022
|
method=get_output_names_t.ENDPOINT_METHOD,
|
|
839
1023
|
endpoint=get_output_names_t.ENDPOINT_PATH,
|
|
840
1024
|
args=args,
|
|
1025
|
+
request_options=_request_options,
|
|
841
1026
|
)
|
|
842
1027
|
return self.do_request(api_request=api_request, return_type=get_output_names_t.Data)
|
|
843
1028
|
|
|
1029
|
+
def get_output_organization(
|
|
1030
|
+
self,
|
|
1031
|
+
*,
|
|
1032
|
+
request: get_output_organization_t.OutputOrganizationRequest,
|
|
1033
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1034
|
+
) -> get_output_organization_t.Data:
|
|
1035
|
+
"""Returns the output organization for the specified material family, project, or user
|
|
1036
|
+
|
|
1037
|
+
"""
|
|
1038
|
+
args = get_output_organization_t.Arguments(
|
|
1039
|
+
request=request,
|
|
1040
|
+
)
|
|
1041
|
+
api_request = APIRequest(
|
|
1042
|
+
method=get_output_organization_t.ENDPOINT_METHOD,
|
|
1043
|
+
endpoint=get_output_organization_t.ENDPOINT_PATH,
|
|
1044
|
+
args=args,
|
|
1045
|
+
request_options=_request_options,
|
|
1046
|
+
)
|
|
1047
|
+
return self.do_request(api_request=api_request, return_type=get_output_organization_t.Data)
|
|
1048
|
+
|
|
844
1049
|
def get_projects(
|
|
845
1050
|
self,
|
|
846
1051
|
*,
|
|
847
1052
|
all_material_families: bool,
|
|
848
1053
|
material_family_id: base_t.ObjectId | None,
|
|
1054
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
849
1055
|
) -> get_projects_t.Data:
|
|
850
1056
|
"""Gets either all projects created in the platform, or the projects associated with a material family ID. Projects are where experiments are placed in Uncountable, similar to folders in a directory structure
|
|
851
1057
|
|
|
@@ -860,6 +1066,7 @@ class ClientMethods(ABC):
|
|
|
860
1066
|
method=get_projects_t.ENDPOINT_METHOD,
|
|
861
1067
|
endpoint=get_projects_t.ENDPOINT_PATH,
|
|
862
1068
|
args=args,
|
|
1069
|
+
request_options=_request_options,
|
|
863
1070
|
)
|
|
864
1071
|
return self.do_request(api_request=api_request, return_type=get_projects_t.Data)
|
|
865
1072
|
|
|
@@ -869,6 +1076,7 @@ class ClientMethods(ABC):
|
|
|
869
1076
|
project_ids: list[base_t.ObjectId],
|
|
870
1077
|
offset: int | None = None,
|
|
871
1078
|
limit: int | None = None,
|
|
1079
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
872
1080
|
) -> get_projects_data_t.Data:
|
|
873
1081
|
"""Gets either all data associated with a set of projects created in the platform. Because Uncountables recipe structure is complex, various data values are exploded out to increase efficiency in parsing, and this page is paginated to prevent too large of return values
|
|
874
1082
|
|
|
@@ -885,6 +1093,7 @@ class ClientMethods(ABC):
|
|
|
885
1093
|
method=get_projects_data_t.ENDPOINT_METHOD,
|
|
886
1094
|
endpoint=get_projects_data_t.ENDPOINT_PATH,
|
|
887
1095
|
args=args,
|
|
1096
|
+
request_options=_request_options,
|
|
888
1097
|
)
|
|
889
1098
|
return self.do_request(api_request=api_request, return_type=get_projects_data_t.Data)
|
|
890
1099
|
|
|
@@ -893,6 +1102,7 @@ class ClientMethods(ABC):
|
|
|
893
1102
|
*,
|
|
894
1103
|
recipe_ids: list[base_t.ObjectId],
|
|
895
1104
|
calculation_ids: list[base_t.ObjectId] | None = None,
|
|
1105
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
896
1106
|
) -> get_recipe_calculations_t.Data:
|
|
897
1107
|
"""Gets the calculations for the passed recipes
|
|
898
1108
|
|
|
@@ -907,6 +1117,7 @@ class ClientMethods(ABC):
|
|
|
907
1117
|
method=get_recipe_calculations_t.ENDPOINT_METHOD,
|
|
908
1118
|
endpoint=get_recipe_calculations_t.ENDPOINT_PATH,
|
|
909
1119
|
args=args,
|
|
1120
|
+
request_options=_request_options,
|
|
910
1121
|
)
|
|
911
1122
|
return self.do_request(api_request=api_request, return_type=get_recipe_calculations_t.Data)
|
|
912
1123
|
|
|
@@ -916,6 +1127,7 @@ class ClientMethods(ABC):
|
|
|
916
1127
|
recipe_ids: list[base_t.ObjectId],
|
|
917
1128
|
depth: int = 1,
|
|
918
1129
|
link_types: list[recipe_links_t.RecipeLinkType] | None,
|
|
1130
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
919
1131
|
) -> get_recipe_links_t.Data:
|
|
920
1132
|
"""Gets the links for the passed recipes
|
|
921
1133
|
|
|
@@ -932,6 +1144,7 @@ class ClientMethods(ABC):
|
|
|
932
1144
|
method=get_recipe_links_t.ENDPOINT_METHOD,
|
|
933
1145
|
endpoint=get_recipe_links_t.ENDPOINT_PATH,
|
|
934
1146
|
args=args,
|
|
1147
|
+
request_options=_request_options,
|
|
935
1148
|
)
|
|
936
1149
|
return self.do_request(api_request=api_request, return_type=get_recipe_links_t.Data)
|
|
937
1150
|
|
|
@@ -942,6 +1155,7 @@ class ClientMethods(ABC):
|
|
|
942
1155
|
recipe_metadata_ids: list[base_t.ObjectId] | None,
|
|
943
1156
|
offset: int | None = None,
|
|
944
1157
|
limit: int | None = None,
|
|
1158
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
945
1159
|
) -> get_recipe_metadata_data_t.Data:
|
|
946
1160
|
"""Gets the recipe metadata. Recipe metadata is data associated with experiments that is not an input, output or calculation, such as a sample ID.
|
|
947
1161
|
|
|
@@ -960,6 +1174,7 @@ class ClientMethods(ABC):
|
|
|
960
1174
|
method=get_recipe_metadata_data_t.ENDPOINT_METHOD,
|
|
961
1175
|
endpoint=get_recipe_metadata_data_t.ENDPOINT_PATH,
|
|
962
1176
|
args=args,
|
|
1177
|
+
request_options=_request_options,
|
|
963
1178
|
)
|
|
964
1179
|
return self.do_request(api_request=api_request, return_type=get_recipe_metadata_data_t.Data)
|
|
965
1180
|
|
|
@@ -967,6 +1182,7 @@ class ClientMethods(ABC):
|
|
|
967
1182
|
self,
|
|
968
1183
|
*,
|
|
969
1184
|
project_id: base_t.ObjectId,
|
|
1185
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
970
1186
|
) -> get_recipe_names_t.Data:
|
|
971
1187
|
"""Gets the name of all recipes (or experiments, used as synonyms by Uncountable) for a project. The call external_get_projects can be used to find projects
|
|
972
1188
|
|
|
@@ -979,6 +1195,7 @@ class ClientMethods(ABC):
|
|
|
979
1195
|
method=get_recipe_names_t.ENDPOINT_METHOD,
|
|
980
1196
|
endpoint=get_recipe_names_t.ENDPOINT_PATH,
|
|
981
1197
|
args=args,
|
|
1198
|
+
request_options=_request_options,
|
|
982
1199
|
)
|
|
983
1200
|
return self.do_request(api_request=api_request, return_type=get_recipe_names_t.Data)
|
|
984
1201
|
|
|
@@ -986,6 +1203,7 @@ class ClientMethods(ABC):
|
|
|
986
1203
|
self,
|
|
987
1204
|
*,
|
|
988
1205
|
recipe_output_ids: list[base_t.ObjectId],
|
|
1206
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
989
1207
|
) -> get_recipe_output_metadata_t.Data:
|
|
990
1208
|
"""Gets the metadata values for the passed recipe outputs
|
|
991
1209
|
|
|
@@ -998,6 +1216,7 @@ class ClientMethods(ABC):
|
|
|
998
1216
|
method=get_recipe_output_metadata_t.ENDPOINT_METHOD,
|
|
999
1217
|
endpoint=get_recipe_output_metadata_t.ENDPOINT_PATH,
|
|
1000
1218
|
args=args,
|
|
1219
|
+
request_options=_request_options,
|
|
1001
1220
|
)
|
|
1002
1221
|
return self.do_request(api_request=api_request, return_type=get_recipe_output_metadata_t.Data)
|
|
1003
1222
|
|
|
@@ -1008,6 +1227,8 @@ class ClientMethods(ABC):
|
|
|
1008
1227
|
project_id: base_t.ObjectId | None = None,
|
|
1009
1228
|
offset: int | None = None,
|
|
1010
1229
|
limit: int | None = None,
|
|
1230
|
+
empty_output_behavior: get_recipes_data_t.RecipeOutputInclusion | None = None,
|
|
1231
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1011
1232
|
) -> get_recipes_data_t.Data:
|
|
1012
1233
|
"""Gets all data associated with a set of recipes. Because Uncountables recipe structure is complex, various data values are exploded out to increase efficiency in parsing, and this page is paginated to prevent too large of return values
|
|
1013
1234
|
|
|
@@ -1015,17 +1236,20 @@ class ClientMethods(ABC):
|
|
|
1015
1236
|
:param project_id: The projects to get the data from. Either these or recipe_ids must be filled in
|
|
1016
1237
|
:param offset: Used for pagination. All pagination is done in order of Recipe ID. [Pagination More Info](#pagination)
|
|
1017
1238
|
:param limit: The number of data points to return. If not filled in, it will be set to 100, and cannot be set higher than 100. [Pagination More Info](#pagination)
|
|
1239
|
+
:param empty_output_behavior: Recipe output inclusion behavior for empty outputs. Empty recipe outputs are outputs added to the experiment that do not have a value associated with them.
|
|
1018
1240
|
"""
|
|
1019
1241
|
args = get_recipes_data_t.Arguments(
|
|
1020
1242
|
recipe_ids=recipe_ids,
|
|
1021
1243
|
project_id=project_id,
|
|
1022
1244
|
offset=offset,
|
|
1023
1245
|
limit=limit,
|
|
1246
|
+
empty_output_behavior=empty_output_behavior,
|
|
1024
1247
|
)
|
|
1025
1248
|
api_request = APIRequest(
|
|
1026
1249
|
method=get_recipes_data_t.ENDPOINT_METHOD,
|
|
1027
1250
|
endpoint=get_recipes_data_t.ENDPOINT_PATH,
|
|
1028
1251
|
args=args,
|
|
1252
|
+
request_options=_request_options,
|
|
1029
1253
|
)
|
|
1030
1254
|
return self.do_request(api_request=api_request, return_type=get_recipes_data_t.Data)
|
|
1031
1255
|
|
|
@@ -1038,6 +1262,7 @@ class ClientMethods(ABC):
|
|
|
1038
1262
|
user_keys: list[identifier_t.IdentifierKey] | None = None,
|
|
1039
1263
|
user_group_keys: list[identifier_t.IdentifierKey] | None = None,
|
|
1040
1264
|
all_users: bool | None = None,
|
|
1265
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1041
1266
|
) -> grant_entity_permissions_t.Data:
|
|
1042
1267
|
"""Grant entity permissions to a list of users or user groups or to all users.
|
|
1043
1268
|
|
|
@@ -1054,6 +1279,7 @@ class ClientMethods(ABC):
|
|
|
1054
1279
|
method=grant_entity_permissions_t.ENDPOINT_METHOD,
|
|
1055
1280
|
endpoint=grant_entity_permissions_t.ENDPOINT_PATH,
|
|
1056
1281
|
args=args,
|
|
1282
|
+
request_options=_request_options,
|
|
1057
1283
|
)
|
|
1058
1284
|
return self.do_request(api_request=api_request, return_type=grant_entity_permissions_t.Data)
|
|
1059
1285
|
|
|
@@ -1064,6 +1290,7 @@ class ClientMethods(ABC):
|
|
|
1064
1290
|
destination: generic_upload_t.UploadDestination,
|
|
1065
1291
|
file_id: base_t.ObjectId | None = None,
|
|
1066
1292
|
file_ids: list[base_t.ObjectId] | None = None,
|
|
1293
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1067
1294
|
) -> invoke_uploader_t.Data:
|
|
1068
1295
|
"""Runs a file through an uploader.
|
|
1069
1296
|
|
|
@@ -1079,9 +1306,40 @@ class ClientMethods(ABC):
|
|
|
1079
1306
|
method=invoke_uploader_t.ENDPOINT_METHOD,
|
|
1080
1307
|
endpoint=invoke_uploader_t.ENDPOINT_PATH,
|
|
1081
1308
|
args=args,
|
|
1309
|
+
request_options=_request_options,
|
|
1082
1310
|
)
|
|
1083
1311
|
return self.do_request(api_request=api_request, return_type=invoke_uploader_t.Data)
|
|
1084
1312
|
|
|
1313
|
+
def list_aggregate(
|
|
1314
|
+
self,
|
|
1315
|
+
*,
|
|
1316
|
+
config_reference: str,
|
|
1317
|
+
attribute_values: list[list_aggregate_t.AttributeValue] | None = None,
|
|
1318
|
+
offset: int | None = None,
|
|
1319
|
+
limit: int | None = None,
|
|
1320
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1321
|
+
) -> list_aggregate_t.Data:
|
|
1322
|
+
"""Uses a structured loading configuration to list aggregated data from the platform
|
|
1323
|
+
|
|
1324
|
+
:param config_reference: The configuration reference name for the listing config
|
|
1325
|
+
:param attribute_values: Attributes to pass to the configuration for parameterizing filters
|
|
1326
|
+
:param offset: Used for pagination. Pagination is done based on the sorting of the config. [Pagination More Info](#pagination)
|
|
1327
|
+
:param limit: The number of data points to return. If not filled in, it will be set to 100, and cannot be set higher than 100. [Pagination More Info](#pagination)
|
|
1328
|
+
"""
|
|
1329
|
+
args = list_aggregate_t.Arguments(
|
|
1330
|
+
config_reference=config_reference,
|
|
1331
|
+
attribute_values=attribute_values,
|
|
1332
|
+
offset=offset,
|
|
1333
|
+
limit=limit,
|
|
1334
|
+
)
|
|
1335
|
+
api_request = APIRequest(
|
|
1336
|
+
method=list_aggregate_t.ENDPOINT_METHOD,
|
|
1337
|
+
endpoint=list_aggregate_t.ENDPOINT_PATH,
|
|
1338
|
+
args=args,
|
|
1339
|
+
request_options=_request_options,
|
|
1340
|
+
)
|
|
1341
|
+
return self.do_request(api_request=api_request, return_type=list_aggregate_t.Data)
|
|
1342
|
+
|
|
1085
1343
|
def list_entities(
|
|
1086
1344
|
self,
|
|
1087
1345
|
*,
|
|
@@ -1090,6 +1348,8 @@ class ClientMethods(ABC):
|
|
|
1090
1348
|
attributes: dict[OpaqueKey, base_t.JsonValue] | None = None,
|
|
1091
1349
|
offset: int | None = None,
|
|
1092
1350
|
limit: int | None = None,
|
|
1351
|
+
additional_filter_configs: list[list_entities_t.AdditionalFilterConfig] | None = None,
|
|
1352
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1093
1353
|
) -> list_entities_t.Data:
|
|
1094
1354
|
"""Uses a structured loading configuration to list entities in the system
|
|
1095
1355
|
|
|
@@ -1098,6 +1358,7 @@ class ClientMethods(ABC):
|
|
|
1098
1358
|
:param attributes: Attributes to pass to the configuration for parameterizing filters
|
|
1099
1359
|
:param offset: Used for pagination. Pagination is done based on the sorting of the config. [Pagination More Info](#pagination)
|
|
1100
1360
|
:param limit: The number of data points to return. If not filled in, it will be set to 100, and cannot be set higher than 100. [Pagination More Info](#pagination)
|
|
1361
|
+
:param additional_filter_configs: Advanced property: Additional filter configurations to apply to the listing. A maximum of 10 additional filter configs are supported.
|
|
1101
1362
|
"""
|
|
1102
1363
|
args = list_entities_t.Arguments(
|
|
1103
1364
|
entity_type=entity_type,
|
|
@@ -1105,11 +1366,13 @@ class ClientMethods(ABC):
|
|
|
1105
1366
|
attributes=attributes,
|
|
1106
1367
|
offset=offset,
|
|
1107
1368
|
limit=limit,
|
|
1369
|
+
additional_filter_configs=additional_filter_configs,
|
|
1108
1370
|
)
|
|
1109
1371
|
api_request = APIRequest(
|
|
1110
1372
|
method=list_entities_t.ENDPOINT_METHOD,
|
|
1111
1373
|
endpoint=list_entities_t.ENDPOINT_PATH,
|
|
1112
1374
|
args=args,
|
|
1375
|
+
request_options=_request_options,
|
|
1113
1376
|
)
|
|
1114
1377
|
return self.do_request(api_request=api_request, return_type=list_entities_t.Data)
|
|
1115
1378
|
|
|
@@ -1120,6 +1383,7 @@ class ClientMethods(ABC):
|
|
|
1120
1383
|
search_label: str,
|
|
1121
1384
|
offset: int | None = None,
|
|
1122
1385
|
limit: int | None = None,
|
|
1386
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1123
1387
|
) -> list_id_source_t.Data:
|
|
1124
1388
|
"""Lists id and label pairs
|
|
1125
1389
|
|
|
@@ -1138,6 +1402,7 @@ class ClientMethods(ABC):
|
|
|
1138
1402
|
method=list_id_source_t.ENDPOINT_METHOD,
|
|
1139
1403
|
endpoint=list_id_source_t.ENDPOINT_PATH,
|
|
1140
1404
|
args=args,
|
|
1405
|
+
request_options=_request_options,
|
|
1141
1406
|
)
|
|
1142
1407
|
return self.do_request(api_request=api_request, return_type=list_id_source_t.Data)
|
|
1143
1408
|
|
|
@@ -1147,6 +1412,7 @@ class ClientMethods(ABC):
|
|
|
1147
1412
|
entity_key: identifier_t.IdentifierKey,
|
|
1148
1413
|
entity_type: entity_t.EntityType,
|
|
1149
1414
|
globally_removable: bool | None = None,
|
|
1415
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1150
1416
|
) -> lock_entity_t.Data:
|
|
1151
1417
|
"""Lock an entity
|
|
1152
1418
|
|
|
@@ -1162,6 +1428,7 @@ class ClientMethods(ABC):
|
|
|
1162
1428
|
method=lock_entity_t.ENDPOINT_METHOD,
|
|
1163
1429
|
endpoint=lock_entity_t.ENDPOINT_PATH,
|
|
1164
1430
|
args=args,
|
|
1431
|
+
request_options=_request_options,
|
|
1165
1432
|
)
|
|
1166
1433
|
return self.do_request(api_request=api_request, return_type=lock_entity_t.Data)
|
|
1167
1434
|
|
|
@@ -1173,6 +1440,7 @@ class ClientMethods(ABC):
|
|
|
1173
1440
|
globally_removable: bool,
|
|
1174
1441
|
lock_samples: bool | None = None,
|
|
1175
1442
|
comments: str | None = None,
|
|
1443
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1176
1444
|
) -> lock_recipes_t.Data:
|
|
1177
1445
|
"""Lock experiments. Experiments will require unlocking to be editable. Edits to the experiments are blocked while they are locked.
|
|
1178
1446
|
|
|
@@ -1196,6 +1464,7 @@ class ClientMethods(ABC):
|
|
|
1196
1464
|
method=lock_recipes_t.ENDPOINT_METHOD,
|
|
1197
1465
|
endpoint=lock_recipes_t.ENDPOINT_PATH,
|
|
1198
1466
|
args=args,
|
|
1467
|
+
request_options=_request_options,
|
|
1199
1468
|
)
|
|
1200
1469
|
return self.do_request(api_request=api_request, return_type=lock_recipes_t.Data)
|
|
1201
1470
|
|
|
@@ -1204,6 +1473,7 @@ class ClientMethods(ABC):
|
|
|
1204
1473
|
*,
|
|
1205
1474
|
entity_type: entity_t.EntityType,
|
|
1206
1475
|
query: lookup_entity_t.LookupEntityQuery,
|
|
1476
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1207
1477
|
) -> lookup_entity_t.Data:
|
|
1208
1478
|
"""Look up an entity based on an identifier or field values
|
|
1209
1479
|
|
|
@@ -1216,6 +1486,7 @@ class ClientMethods(ABC):
|
|
|
1216
1486
|
method=lookup_entity_t.ENDPOINT_METHOD,
|
|
1217
1487
|
endpoint=lookup_entity_t.ENDPOINT_PATH,
|
|
1218
1488
|
args=args,
|
|
1489
|
+
request_options=_request_options,
|
|
1219
1490
|
)
|
|
1220
1491
|
return self.do_request(api_request=api_request, return_type=lookup_entity_t.Data)
|
|
1221
1492
|
|
|
@@ -1224,6 +1495,7 @@ class ClientMethods(ABC):
|
|
|
1224
1495
|
*,
|
|
1225
1496
|
spec: id_source_t.IdSourceSpec,
|
|
1226
1497
|
names: list[str],
|
|
1498
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1227
1499
|
) -> match_id_source_t.Data:
|
|
1228
1500
|
"""Lists id and label pairs
|
|
1229
1501
|
|
|
@@ -1238,14 +1510,66 @@ class ClientMethods(ABC):
|
|
|
1238
1510
|
method=match_id_source_t.ENDPOINT_METHOD,
|
|
1239
1511
|
endpoint=match_id_source_t.ENDPOINT_PATH,
|
|
1240
1512
|
args=args,
|
|
1513
|
+
request_options=_request_options,
|
|
1241
1514
|
)
|
|
1242
1515
|
return self.do_request(api_request=api_request, return_type=match_id_source_t.Data)
|
|
1243
1516
|
|
|
1517
|
+
def push_notification(
|
|
1518
|
+
self,
|
|
1519
|
+
*,
|
|
1520
|
+
notification_targets: list[notifications_t.NotificationTarget],
|
|
1521
|
+
subject: str,
|
|
1522
|
+
message: str,
|
|
1523
|
+
display_notice: bool = False,
|
|
1524
|
+
entity: entity_t.EntityIdentifier | None = None,
|
|
1525
|
+
notice_configuration: notices_t.NotificationNoticeConfiguration | None = None,
|
|
1526
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1527
|
+
) -> push_notification_t.Data:
|
|
1528
|
+
"""Push a notification to a user or user group
|
|
1529
|
+
|
|
1530
|
+
"""
|
|
1531
|
+
args = push_notification_t.Arguments(
|
|
1532
|
+
notification_targets=notification_targets,
|
|
1533
|
+
subject=subject,
|
|
1534
|
+
message=message,
|
|
1535
|
+
entity=entity,
|
|
1536
|
+
display_notice=display_notice,
|
|
1537
|
+
notice_configuration=notice_configuration,
|
|
1538
|
+
)
|
|
1539
|
+
api_request = APIRequest(
|
|
1540
|
+
method=push_notification_t.ENDPOINT_METHOD,
|
|
1541
|
+
endpoint=push_notification_t.ENDPOINT_PATH,
|
|
1542
|
+
args=args,
|
|
1543
|
+
request_options=_request_options,
|
|
1544
|
+
)
|
|
1545
|
+
return self.do_request(api_request=api_request, return_type=push_notification_t.Data)
|
|
1546
|
+
|
|
1547
|
+
def register_sockets_token(
|
|
1548
|
+
self,
|
|
1549
|
+
*,
|
|
1550
|
+
socket_request: sockets_t.SocketTokenRequest,
|
|
1551
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1552
|
+
) -> register_sockets_token_t.Data:
|
|
1553
|
+
"""Request token for connecting to sockets server
|
|
1554
|
+
|
|
1555
|
+
"""
|
|
1556
|
+
args = register_sockets_token_t.Arguments(
|
|
1557
|
+
socket_request=socket_request,
|
|
1558
|
+
)
|
|
1559
|
+
api_request = APIRequest(
|
|
1560
|
+
method=register_sockets_token_t.ENDPOINT_METHOD,
|
|
1561
|
+
endpoint=register_sockets_token_t.ENDPOINT_PATH,
|
|
1562
|
+
args=args,
|
|
1563
|
+
request_options=_request_options,
|
|
1564
|
+
)
|
|
1565
|
+
return self.do_request(api_request=api_request, return_type=register_sockets_token_t.Data)
|
|
1566
|
+
|
|
1244
1567
|
def remove_recipe_from_project(
|
|
1245
1568
|
self,
|
|
1246
1569
|
*,
|
|
1247
1570
|
recipe_key: identifier_t.IdentifierKey,
|
|
1248
1571
|
project_key: identifier_t.IdentifierKey,
|
|
1572
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1249
1573
|
) -> remove_recipe_from_project_t.Data:
|
|
1250
1574
|
"""Removes a recipe from a project
|
|
1251
1575
|
|
|
@@ -1260,6 +1584,7 @@ class ClientMethods(ABC):
|
|
|
1260
1584
|
method=remove_recipe_from_project_t.ENDPOINT_METHOD,
|
|
1261
1585
|
endpoint=remove_recipe_from_project_t.ENDPOINT_PATH,
|
|
1262
1586
|
args=args,
|
|
1587
|
+
request_options=_request_options,
|
|
1263
1588
|
)
|
|
1264
1589
|
return self.do_request(api_request=api_request, return_type=remove_recipe_from_project_t.Data)
|
|
1265
1590
|
|
|
@@ -1269,6 +1594,7 @@ class ClientMethods(ABC):
|
|
|
1269
1594
|
recipe_from_key: identifier_t.IdentifierKey,
|
|
1270
1595
|
recipe_to_key: identifier_t.IdentifierKey,
|
|
1271
1596
|
link_type: typing.Literal[recipe_links_t.RecipeLinkType.CHILD] | typing.Literal[recipe_links_t.RecipeLinkType.CONTROL] | typing.Literal[recipe_links_t.RecipeLinkType.USER_LINK] | typing.Literal[recipe_links_t.RecipeLinkType.PREVIOUS_EXPERIMENT],
|
|
1597
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1272
1598
|
) -> remove_recipe_link_t.Data:
|
|
1273
1599
|
"""Remove a link between two recipes. Skip if the link doesn't already exist
|
|
1274
1600
|
|
|
@@ -1285,6 +1611,7 @@ class ClientMethods(ABC):
|
|
|
1285
1611
|
method=remove_recipe_link_t.ENDPOINT_METHOD,
|
|
1286
1612
|
endpoint=remove_recipe_link_t.ENDPOINT_PATH,
|
|
1287
1613
|
args=args,
|
|
1614
|
+
request_options=_request_options,
|
|
1288
1615
|
)
|
|
1289
1616
|
return self.do_request(api_request=api_request, return_type=remove_recipe_link_t.Data)
|
|
1290
1617
|
|
|
@@ -1293,6 +1620,7 @@ class ClientMethods(ABC):
|
|
|
1293
1620
|
*,
|
|
1294
1621
|
entity_ids: list[str | base_t.ObjectId],
|
|
1295
1622
|
entity_type: entity_t.EntityType,
|
|
1623
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1296
1624
|
) -> resolve_entity_ids_t.Data:
|
|
1297
1625
|
"""Gets the names for passed in ids
|
|
1298
1626
|
|
|
@@ -1307,6 +1635,7 @@ class ClientMethods(ABC):
|
|
|
1307
1635
|
method=resolve_entity_ids_t.ENDPOINT_METHOD,
|
|
1308
1636
|
endpoint=resolve_entity_ids_t.ENDPOINT_PATH,
|
|
1309
1637
|
args=args,
|
|
1638
|
+
request_options=_request_options,
|
|
1310
1639
|
)
|
|
1311
1640
|
return self.do_request(api_request=api_request, return_type=resolve_entity_ids_t.Data)
|
|
1312
1641
|
|
|
@@ -1314,6 +1643,7 @@ class ClientMethods(ABC):
|
|
|
1314
1643
|
self,
|
|
1315
1644
|
*,
|
|
1316
1645
|
requested_conditions: list[resolve_output_conditions_t.ConditionRequest],
|
|
1646
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1317
1647
|
) -> resolve_output_conditions_t.Data:
|
|
1318
1648
|
"""For the provided set of condition parameter id and values, returns the existing or newly created output condition id for that value and id pair.
|
|
1319
1649
|
|
|
@@ -1325,6 +1655,7 @@ class ClientMethods(ABC):
|
|
|
1325
1655
|
method=resolve_output_conditions_t.ENDPOINT_METHOD,
|
|
1326
1656
|
endpoint=resolve_output_conditions_t.ENDPOINT_PATH,
|
|
1327
1657
|
args=args,
|
|
1658
|
+
request_options=_request_options,
|
|
1328
1659
|
)
|
|
1329
1660
|
return self.do_request(api_request=api_request, return_type=resolve_output_conditions_t.Data)
|
|
1330
1661
|
|
|
@@ -1333,6 +1664,7 @@ class ClientMethods(ABC):
|
|
|
1333
1664
|
*,
|
|
1334
1665
|
trigger_ref_name: str,
|
|
1335
1666
|
entity: entity_t.Entity | None = None,
|
|
1667
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1336
1668
|
) -> run_trigger_t.Data:
|
|
1337
1669
|
"""Runs a trigger. Requires admin access
|
|
1338
1670
|
|
|
@@ -1345,9 +1677,32 @@ class ClientMethods(ABC):
|
|
|
1345
1677
|
method=run_trigger_t.ENDPOINT_METHOD,
|
|
1346
1678
|
endpoint=run_trigger_t.ENDPOINT_PATH,
|
|
1347
1679
|
args=args,
|
|
1680
|
+
request_options=_request_options,
|
|
1348
1681
|
)
|
|
1349
1682
|
return self.do_request(api_request=api_request, return_type=run_trigger_t.Data)
|
|
1350
1683
|
|
|
1684
|
+
def set_barcode(
|
|
1685
|
+
self,
|
|
1686
|
+
*,
|
|
1687
|
+
entity_key: entity_t.EntityIdentifier,
|
|
1688
|
+
barcode_value: str,
|
|
1689
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1690
|
+
) -> set_barcode_t.Data:
|
|
1691
|
+
"""Sets the barcode for an entity
|
|
1692
|
+
|
|
1693
|
+
"""
|
|
1694
|
+
args = set_barcode_t.Arguments(
|
|
1695
|
+
entity_key=entity_key,
|
|
1696
|
+
barcode_value=barcode_value,
|
|
1697
|
+
)
|
|
1698
|
+
api_request = APIRequest(
|
|
1699
|
+
method=set_barcode_t.ENDPOINT_METHOD,
|
|
1700
|
+
endpoint=set_barcode_t.ENDPOINT_PATH,
|
|
1701
|
+
args=args,
|
|
1702
|
+
request_options=_request_options,
|
|
1703
|
+
)
|
|
1704
|
+
return self.do_request(api_request=api_request, return_type=set_barcode_t.Data)
|
|
1705
|
+
|
|
1351
1706
|
def set_core_permissions(
|
|
1352
1707
|
self,
|
|
1353
1708
|
*,
|
|
@@ -1356,6 +1711,7 @@ class ClientMethods(ABC):
|
|
|
1356
1711
|
update_type: post_base_t.UpdateType,
|
|
1357
1712
|
user_group_ids: list[int] | None = None,
|
|
1358
1713
|
user_ids: list[int] | None = None,
|
|
1714
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1359
1715
|
) -> set_core_permissions_t.Data:
|
|
1360
1716
|
"""Sets recipe related permissions
|
|
1361
1717
|
|
|
@@ -1375,6 +1731,7 @@ class ClientMethods(ABC):
|
|
|
1375
1731
|
method=set_core_permissions_t.ENDPOINT_METHOD,
|
|
1376
1732
|
endpoint=set_core_permissions_t.ENDPOINT_PATH,
|
|
1377
1733
|
args=args,
|
|
1734
|
+
request_options=_request_options,
|
|
1378
1735
|
)
|
|
1379
1736
|
return self.do_request(api_request=api_request, return_type=set_core_permissions_t.Data)
|
|
1380
1737
|
|
|
@@ -1383,6 +1740,7 @@ class ClientMethods(ABC):
|
|
|
1383
1740
|
*,
|
|
1384
1741
|
entity_identifier: entity_t.EntityIdentifier,
|
|
1385
1742
|
field_values: list[field_values_t.FieldArgumentValue],
|
|
1743
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1386
1744
|
) -> set_entity_field_values_t.Data:
|
|
1387
1745
|
"""Sets field values for an entity
|
|
1388
1746
|
|
|
@@ -1397,6 +1755,7 @@ class ClientMethods(ABC):
|
|
|
1397
1755
|
method=set_entity_field_values_t.ENDPOINT_METHOD,
|
|
1398
1756
|
endpoint=set_entity_field_values_t.ENDPOINT_PATH,
|
|
1399
1757
|
args=args,
|
|
1758
|
+
request_options=_request_options,
|
|
1400
1759
|
)
|
|
1401
1760
|
return self.do_request(api_request=api_request, return_type=set_entity_field_values_t.Data)
|
|
1402
1761
|
|
|
@@ -1404,6 +1763,7 @@ class ClientMethods(ABC):
|
|
|
1404
1763
|
self,
|
|
1405
1764
|
*,
|
|
1406
1765
|
attribute_values: list[set_input_attribute_values_t.InputAttributeValue],
|
|
1766
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1407
1767
|
) -> set_input_attribute_values_t.Data:
|
|
1408
1768
|
"""Sets attribute values for an input
|
|
1409
1769
|
|
|
@@ -1416,6 +1776,7 @@ class ClientMethods(ABC):
|
|
|
1416
1776
|
method=set_input_attribute_values_t.ENDPOINT_METHOD,
|
|
1417
1777
|
endpoint=set_input_attribute_values_t.ENDPOINT_PATH,
|
|
1418
1778
|
args=args,
|
|
1779
|
+
request_options=_request_options,
|
|
1419
1780
|
)
|
|
1420
1781
|
return self.do_request(api_request=api_request, return_type=set_input_attribute_values_t.Data)
|
|
1421
1782
|
|
|
@@ -1425,6 +1786,7 @@ class ClientMethods(ABC):
|
|
|
1425
1786
|
input_key: identifier_t.IdentifierKey,
|
|
1426
1787
|
category_id: int | None,
|
|
1427
1788
|
material_family_ids: list[int] | None = None,
|
|
1789
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1428
1790
|
) -> set_input_category_t.Data:
|
|
1429
1791
|
"""Sets subcategories for an input
|
|
1430
1792
|
|
|
@@ -1441,6 +1803,7 @@ class ClientMethods(ABC):
|
|
|
1441
1803
|
method=set_input_category_t.ENDPOINT_METHOD,
|
|
1442
1804
|
endpoint=set_input_category_t.ENDPOINT_PATH,
|
|
1443
1805
|
args=args,
|
|
1806
|
+
request_options=_request_options,
|
|
1444
1807
|
)
|
|
1445
1808
|
return self.do_request(api_request=api_request, return_type=set_input_category_t.Data)
|
|
1446
1809
|
|
|
@@ -1450,6 +1813,7 @@ class ClientMethods(ABC):
|
|
|
1450
1813
|
input_key: identifier_t.IdentifierKey,
|
|
1451
1814
|
subcategory_ids: list[int],
|
|
1452
1815
|
update_type: post_base_t.UpdateType,
|
|
1816
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1453
1817
|
) -> set_input_subcategories_t.Data:
|
|
1454
1818
|
"""Sets subcategories for an input
|
|
1455
1819
|
|
|
@@ -1466,6 +1830,7 @@ class ClientMethods(ABC):
|
|
|
1466
1830
|
method=set_input_subcategories_t.ENDPOINT_METHOD,
|
|
1467
1831
|
endpoint=set_input_subcategories_t.ENDPOINT_PATH,
|
|
1468
1832
|
args=args,
|
|
1833
|
+
request_options=_request_options,
|
|
1469
1834
|
)
|
|
1470
1835
|
return self.do_request(api_request=api_request, return_type=set_input_subcategories_t.Data)
|
|
1471
1836
|
|
|
@@ -1474,6 +1839,7 @@ class ClientMethods(ABC):
|
|
|
1474
1839
|
*,
|
|
1475
1840
|
input_key: identifier_t.IdentifierKey,
|
|
1476
1841
|
intermediate_type: set_intermediate_type_t.IntermediateType,
|
|
1842
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1477
1843
|
) -> set_intermediate_type_t.Data:
|
|
1478
1844
|
"""Sets the type of an intermediate ingredient.
|
|
1479
1845
|
|
|
@@ -1488,6 +1854,7 @@ class ClientMethods(ABC):
|
|
|
1488
1854
|
method=set_intermediate_type_t.ENDPOINT_METHOD,
|
|
1489
1855
|
endpoint=set_intermediate_type_t.ENDPOINT_PATH,
|
|
1490
1856
|
args=args,
|
|
1857
|
+
request_options=_request_options,
|
|
1491
1858
|
)
|
|
1492
1859
|
return self.do_request(api_request=api_request, return_type=set_intermediate_type_t.Data)
|
|
1493
1860
|
|
|
@@ -1495,6 +1862,7 @@ class ClientMethods(ABC):
|
|
|
1495
1862
|
self,
|
|
1496
1863
|
*,
|
|
1497
1864
|
input_data: list[set_recipe_inputs_t.RecipeInputValue],
|
|
1865
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1498
1866
|
) -> set_recipe_inputs_t.Data:
|
|
1499
1867
|
"""Sets inputs values for an experiment. Values set can be numeric, text or categorical types in the Uncountable system
|
|
1500
1868
|
|
|
@@ -1507,6 +1875,7 @@ class ClientMethods(ABC):
|
|
|
1507
1875
|
method=set_recipe_inputs_t.ENDPOINT_METHOD,
|
|
1508
1876
|
endpoint=set_recipe_inputs_t.ENDPOINT_PATH,
|
|
1509
1877
|
args=args,
|
|
1878
|
+
request_options=_request_options,
|
|
1510
1879
|
)
|
|
1511
1880
|
return self.do_request(api_request=api_request, return_type=set_recipe_inputs_t.Data)
|
|
1512
1881
|
|
|
@@ -1515,6 +1884,7 @@ class ClientMethods(ABC):
|
|
|
1515
1884
|
*,
|
|
1516
1885
|
recipe_key: identifier_t.IdentifierKey,
|
|
1517
1886
|
recipe_metadata: list[recipe_metadata_t.MetadataValue],
|
|
1887
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1518
1888
|
) -> set_recipe_metadata_t.Data:
|
|
1519
1889
|
"""Set metadata values on a recipe
|
|
1520
1890
|
|
|
@@ -1529,6 +1899,7 @@ class ClientMethods(ABC):
|
|
|
1529
1899
|
method=set_recipe_metadata_t.ENDPOINT_METHOD,
|
|
1530
1900
|
endpoint=set_recipe_metadata_t.ENDPOINT_PATH,
|
|
1531
1901
|
args=args,
|
|
1902
|
+
request_options=_request_options,
|
|
1532
1903
|
)
|
|
1533
1904
|
return self.do_request(api_request=api_request, return_type=set_recipe_metadata_t.Data)
|
|
1534
1905
|
|
|
@@ -1536,6 +1907,7 @@ class ClientMethods(ABC):
|
|
|
1536
1907
|
self,
|
|
1537
1908
|
*,
|
|
1538
1909
|
updates: list[set_recipe_output_annotations_t.RecipeOutputUpdateAnnotations],
|
|
1910
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1539
1911
|
) -> set_recipe_output_annotations_t.Data:
|
|
1540
1912
|
"""Update annotations for an experiments outputs
|
|
1541
1913
|
|
|
@@ -1548,6 +1920,7 @@ class ClientMethods(ABC):
|
|
|
1548
1920
|
method=set_recipe_output_annotations_t.ENDPOINT_METHOD,
|
|
1549
1921
|
endpoint=set_recipe_output_annotations_t.ENDPOINT_PATH,
|
|
1550
1922
|
args=args,
|
|
1923
|
+
request_options=_request_options,
|
|
1551
1924
|
)
|
|
1552
1925
|
return self.do_request(api_request=api_request, return_type=set_recipe_output_annotations_t.Data)
|
|
1553
1926
|
|
|
@@ -1555,6 +1928,7 @@ class ClientMethods(ABC):
|
|
|
1555
1928
|
self,
|
|
1556
1929
|
*,
|
|
1557
1930
|
output_file_data: set_recipe_output_file_t.RecipeOutputFileValue,
|
|
1931
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1558
1932
|
) -> set_recipe_output_file_t.Data:
|
|
1559
1933
|
"""Sets output file value for an experiment. Include a single file as part of the FormData of the request with the filename as the key
|
|
1560
1934
|
|
|
@@ -1567,6 +1941,7 @@ class ClientMethods(ABC):
|
|
|
1567
1941
|
method=set_recipe_output_file_t.ENDPOINT_METHOD,
|
|
1568
1942
|
endpoint=set_recipe_output_file_t.ENDPOINT_PATH,
|
|
1569
1943
|
args=args,
|
|
1944
|
+
request_options=_request_options,
|
|
1570
1945
|
)
|
|
1571
1946
|
return self.do_request(api_request=api_request, return_type=set_recipe_output_file_t.Data)
|
|
1572
1947
|
|
|
@@ -1574,6 +1949,7 @@ class ClientMethods(ABC):
|
|
|
1574
1949
|
self,
|
|
1575
1950
|
*,
|
|
1576
1951
|
output_data: list[set_recipe_outputs_t.RecipeOutputValue],
|
|
1952
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1577
1953
|
) -> set_recipe_outputs_t.Data:
|
|
1578
1954
|
"""Sets output values for an experiment. Values set can be numeric, text or categorical types in the Uncountable system
|
|
1579
1955
|
|
|
@@ -1586,6 +1962,7 @@ class ClientMethods(ABC):
|
|
|
1586
1962
|
method=set_recipe_outputs_t.ENDPOINT_METHOD,
|
|
1587
1963
|
endpoint=set_recipe_outputs_t.ENDPOINT_PATH,
|
|
1588
1964
|
args=args,
|
|
1965
|
+
request_options=_request_options,
|
|
1589
1966
|
)
|
|
1590
1967
|
return self.do_request(api_request=api_request, return_type=set_recipe_outputs_t.Data)
|
|
1591
1968
|
|
|
@@ -1594,6 +1971,7 @@ class ClientMethods(ABC):
|
|
|
1594
1971
|
*,
|
|
1595
1972
|
recipe_key: identifier_t.IdentifierKey,
|
|
1596
1973
|
recipe_tag_update: set_recipe_tags_t.RecipeTagUpdate,
|
|
1974
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1597
1975
|
) -> set_recipe_tags_t.Data:
|
|
1598
1976
|
"""Modifies recipes tags for a recipe
|
|
1599
1977
|
|
|
@@ -1608,14 +1986,46 @@ class ClientMethods(ABC):
|
|
|
1608
1986
|
method=set_recipe_tags_t.ENDPOINT_METHOD,
|
|
1609
1987
|
endpoint=set_recipe_tags_t.ENDPOINT_PATH,
|
|
1610
1988
|
args=args,
|
|
1989
|
+
request_options=_request_options,
|
|
1611
1990
|
)
|
|
1612
1991
|
return self.do_request(api_request=api_request, return_type=set_recipe_tags_t.Data)
|
|
1613
1992
|
|
|
1993
|
+
def set_recipe_total(
|
|
1994
|
+
self,
|
|
1995
|
+
*,
|
|
1996
|
+
recipe_key: identifier_t.IdentifierKey,
|
|
1997
|
+
value: set_recipe_total_t.ValueNumeric,
|
|
1998
|
+
recipe_workflow_step_identifier: recipe_workflow_steps_t.RecipeWorkflowStepIdentifier | None = None,
|
|
1999
|
+
calculation_key: identifier_t.IdentifierKey | None = None,
|
|
2000
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
2001
|
+
) -> set_recipe_total_t.Data:
|
|
2002
|
+
"""Updates the Set Total value for a recipe or one of its workflow steps
|
|
2003
|
+
|
|
2004
|
+
:param recipe_key: Identifier for the recipe
|
|
2005
|
+
:param recipe_workflow_step_identifier: Identifier for the recipe workflow step
|
|
2006
|
+
:param value: The quantity in mass, volume, or moles to set for the total
|
|
2007
|
+
:param calculation_key: The linked basis calculation to set
|
|
2008
|
+
"""
|
|
2009
|
+
args = set_recipe_total_t.Arguments(
|
|
2010
|
+
recipe_key=recipe_key,
|
|
2011
|
+
recipe_workflow_step_identifier=recipe_workflow_step_identifier,
|
|
2012
|
+
value=value,
|
|
2013
|
+
calculation_key=calculation_key,
|
|
2014
|
+
)
|
|
2015
|
+
api_request = APIRequest(
|
|
2016
|
+
method=set_recipe_total_t.ENDPOINT_METHOD,
|
|
2017
|
+
endpoint=set_recipe_total_t.ENDPOINT_PATH,
|
|
2018
|
+
args=args,
|
|
2019
|
+
request_options=_request_options,
|
|
2020
|
+
)
|
|
2021
|
+
return self.do_request(api_request=api_request, return_type=set_recipe_total_t.Data)
|
|
2022
|
+
|
|
1614
2023
|
def set_values(
|
|
1615
2024
|
self,
|
|
1616
2025
|
*,
|
|
1617
2026
|
entity: entity_t.Entity,
|
|
1618
2027
|
values: list[field_values_t.ArgumentValueRefName],
|
|
2028
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1619
2029
|
) -> set_values_t.Data:
|
|
1620
2030
|
"""Sets field values for an entity
|
|
1621
2031
|
|
|
@@ -1628,26 +2038,34 @@ class ClientMethods(ABC):
|
|
|
1628
2038
|
method=set_values_t.ENDPOINT_METHOD,
|
|
1629
2039
|
endpoint=set_values_t.ENDPOINT_PATH,
|
|
1630
2040
|
args=args,
|
|
2041
|
+
request_options=_request_options,
|
|
1631
2042
|
)
|
|
1632
2043
|
return self.do_request(api_request=api_request, return_type=set_values_t.Data)
|
|
1633
2044
|
|
|
1634
2045
|
def transition_entity_phase(
|
|
1635
2046
|
self,
|
|
1636
2047
|
*,
|
|
1637
|
-
entity: entity_t.Entity,
|
|
1638
2048
|
transition: transition_entity_phase_t.TransitionIdentifier,
|
|
2049
|
+
entity: entity_t.Entity | None = None,
|
|
2050
|
+
entity_identifier: entity_t.EntityIdentifier | None = None,
|
|
2051
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1639
2052
|
) -> transition_entity_phase_t.Data:
|
|
1640
2053
|
"""Transitions an entity from one phase to another
|
|
1641
2054
|
|
|
2055
|
+
:param entity: Entity to transition. If entity_identifier is provided, this should be omitted.
|
|
2056
|
+
:param entity_identifier: Identifier of the entity to transition. If entity is provided, this should be omitted.
|
|
2057
|
+
:param transition: Identifier of the transition to perform
|
|
1642
2058
|
"""
|
|
1643
2059
|
args = transition_entity_phase_t.Arguments(
|
|
1644
2060
|
entity=entity,
|
|
2061
|
+
entity_identifier=entity_identifier,
|
|
1645
2062
|
transition=transition,
|
|
1646
2063
|
)
|
|
1647
2064
|
api_request = APIRequest(
|
|
1648
2065
|
method=transition_entity_phase_t.ENDPOINT_METHOD,
|
|
1649
2066
|
endpoint=transition_entity_phase_t.ENDPOINT_PATH,
|
|
1650
2067
|
args=args,
|
|
2068
|
+
request_options=_request_options,
|
|
1651
2069
|
)
|
|
1652
2070
|
return self.do_request(api_request=api_request, return_type=transition_entity_phase_t.Data)
|
|
1653
2071
|
|
|
@@ -1655,6 +2073,7 @@ class ClientMethods(ABC):
|
|
|
1655
2073
|
self,
|
|
1656
2074
|
*,
|
|
1657
2075
|
recipes: list[identifier_t.IdentifierKey],
|
|
2076
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1658
2077
|
) -> unarchive_recipes_t.Data:
|
|
1659
2078
|
"""Unarchive/restore the provided recipes
|
|
1660
2079
|
|
|
@@ -1667,6 +2086,7 @@ class ClientMethods(ABC):
|
|
|
1667
2086
|
method=unarchive_recipes_t.ENDPOINT_METHOD,
|
|
1668
2087
|
endpoint=unarchive_recipes_t.ENDPOINT_PATH,
|
|
1669
2088
|
args=args,
|
|
2089
|
+
request_options=_request_options,
|
|
1670
2090
|
)
|
|
1671
2091
|
return self.do_request(api_request=api_request, return_type=unarchive_recipes_t.Data)
|
|
1672
2092
|
|
|
@@ -1675,6 +2095,7 @@ class ClientMethods(ABC):
|
|
|
1675
2095
|
*,
|
|
1676
2096
|
entity_key: identifier_t.IdentifierKey,
|
|
1677
2097
|
entity_type: entity_t.EntityType,
|
|
2098
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1678
2099
|
) -> unlock_entity_t.Data:
|
|
1679
2100
|
"""Unlock an entity
|
|
1680
2101
|
|
|
@@ -1688,6 +2109,7 @@ class ClientMethods(ABC):
|
|
|
1688
2109
|
method=unlock_entity_t.ENDPOINT_METHOD,
|
|
1689
2110
|
endpoint=unlock_entity_t.ENDPOINT_PATH,
|
|
1690
2111
|
args=args,
|
|
2112
|
+
request_options=_request_options,
|
|
1691
2113
|
)
|
|
1692
2114
|
return self.do_request(api_request=api_request, return_type=unlock_entity_t.Data)
|
|
1693
2115
|
|
|
@@ -1697,6 +2119,7 @@ class ClientMethods(ABC):
|
|
|
1697
2119
|
type: unlock_recipes_t.RecipeUnlockType = unlock_recipes_t.RecipeUnlockType.STANDARD,
|
|
1698
2120
|
recipes: list[identifier_t.IdentifierKey],
|
|
1699
2121
|
unlock_samples: bool | None = None,
|
|
2122
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1700
2123
|
) -> unlock_recipes_t.Data:
|
|
1701
2124
|
"""Unlock experiments. Experiments will edtiable after unlocking if they are currently locked.
|
|
1702
2125
|
|
|
@@ -1713,6 +2136,7 @@ class ClientMethods(ABC):
|
|
|
1713
2136
|
method=unlock_recipes_t.ENDPOINT_METHOD,
|
|
1714
2137
|
endpoint=unlock_recipes_t.ENDPOINT_PATH,
|
|
1715
2138
|
args=args,
|
|
2139
|
+
request_options=_request_options,
|
|
1716
2140
|
)
|
|
1717
2141
|
return self.do_request(api_request=api_request, return_type=unlock_recipes_t.Data)
|
|
1718
2142
|
|
|
@@ -1723,6 +2147,7 @@ class ClientMethods(ABC):
|
|
|
1723
2147
|
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] | typing.Literal[entity_t.EntityType.INGREDIENT_CATEGORY_ALL],
|
|
1724
2148
|
material_family_ids: list[base_t.ObjectId],
|
|
1725
2149
|
update_type: post_base_t.UpdateType,
|
|
2150
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1726
2151
|
) -> update_entity_material_families_t.Data:
|
|
1727
2152
|
"""Updates the material families that the entity is available in
|
|
1728
2153
|
|
|
@@ -1741,6 +2166,7 @@ class ClientMethods(ABC):
|
|
|
1741
2166
|
method=update_entity_material_families_t.ENDPOINT_METHOD,
|
|
1742
2167
|
endpoint=update_entity_material_families_t.ENDPOINT_PATH,
|
|
1743
2168
|
args=args,
|
|
2169
|
+
request_options=_request_options,
|
|
1744
2170
|
)
|
|
1745
2171
|
return self.do_request(api_request=api_request, return_type=update_entity_material_families_t.Data)
|
|
1746
2172
|
|
|
@@ -1752,6 +2178,7 @@ class ClientMethods(ABC):
|
|
|
1752
2178
|
condition_parameters: list[upsert_condition_match_t.ConditionParameter] | None = None,
|
|
1753
2179
|
output_conditions: list[identifier_t.IdentifierKey] | None = None,
|
|
1754
2180
|
existing_condition_match: identifier_t.IdentifierKey | None = None,
|
|
2181
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1755
2182
|
) -> upsert_condition_match_t.Data:
|
|
1756
2183
|
"""Creates or updates condition match
|
|
1757
2184
|
|
|
@@ -1767,6 +2194,7 @@ class ClientMethods(ABC):
|
|
|
1767
2194
|
method=upsert_condition_match_t.ENDPOINT_METHOD,
|
|
1768
2195
|
endpoint=upsert_condition_match_t.ENDPOINT_PATH,
|
|
1769
2196
|
args=args,
|
|
2197
|
+
request_options=_request_options,
|
|
1770
2198
|
)
|
|
1771
2199
|
return self.do_request(api_request=api_request, return_type=upsert_condition_match_t.Data)
|
|
1772
2200
|
|
|
@@ -1775,6 +2203,7 @@ class ClientMethods(ABC):
|
|
|
1775
2203
|
*,
|
|
1776
2204
|
option_set_key: identifier_t.IdentifierKey,
|
|
1777
2205
|
field_options: list[upsert_field_options_t.FieldOption],
|
|
2206
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1778
2207
|
) -> upsert_field_options_t.Data:
|
|
1779
2208
|
"""Creates or updates field options for an option set
|
|
1780
2209
|
|
|
@@ -1789,5 +2218,6 @@ class ClientMethods(ABC):
|
|
|
1789
2218
|
method=upsert_field_options_t.ENDPOINT_METHOD,
|
|
1790
2219
|
endpoint=upsert_field_options_t.ENDPOINT_PATH,
|
|
1791
2220
|
args=args,
|
|
2221
|
+
request_options=_request_options,
|
|
1792
2222
|
)
|
|
1793
2223
|
return self.do_request(api_request=api_request, return_type=upsert_field_options_t.Data)
|