UncountablePythonSDK 0.0.82__py3-none-any.whl → 0.0.132__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 +54 -7
- 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 +2 -2
- docs/requirements.txt +6 -4
- examples/basic_auth.py +7 -0
- examples/create_ingredient_sdk.py +34 -0
- examples/download_files.py +26 -0
- examples/integration-server/jobs/materials_auto/concurrent_cron.py +11 -0
- examples/integration-server/jobs/materials_auto/example_cron.py +3 -0
- examples/integration-server/jobs/materials_auto/example_http.py +47 -0
- 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 +39 -0
- examples/integration-server/jobs/materials_auto/example_wh.py +17 -9
- examples/integration-server/jobs/materials_auto/profile.yaml +61 -0
- examples/integration-server/pyproject.toml +10 -10
- examples/oauth.py +7 -0
- examples/set_recipe_metadata_file.py +1 -1
- examples/upload_files.py +1 -2
- pkgs/argument_parser/__init__.py +8 -0
- pkgs/argument_parser/_is_namedtuple.py +3 -0
- pkgs/argument_parser/argument_parser.py +196 -63
- pkgs/filesystem_utils/__init__.py +1 -0
- pkgs/filesystem_utils/_blob_session.py +144 -0
- pkgs/filesystem_utils/_gdrive_session.py +5 -5
- pkgs/filesystem_utils/_s3_session.py +2 -1
- pkgs/filesystem_utils/_sftp_session.py +6 -3
- pkgs/filesystem_utils/file_type_utils.py +30 -10
- pkgs/serialization/__init__.py +7 -2
- pkgs/serialization/annotation.py +64 -0
- pkgs/serialization/missing_sentry.py +1 -1
- pkgs/serialization/opaque_key.py +1 -1
- pkgs/serialization/serial_alias.py +47 -0
- pkgs/serialization/serial_class.py +40 -48
- pkgs/serialization/serial_generic.py +16 -0
- pkgs/serialization/serial_union.py +16 -16
- pkgs/serialization_util/__init__.py +6 -0
- pkgs/serialization_util/dataclasses.py +14 -0
- pkgs/serialization_util/serialization_helpers.py +15 -5
- pkgs/type_spec/actions_registry/__main__.py +0 -4
- pkgs/type_spec/actions_registry/emit_typescript.py +2 -4
- pkgs/type_spec/builder.py +248 -70
- pkgs/type_spec/builder_types.py +9 -0
- pkgs/type_spec/config.py +40 -7
- pkgs/type_spec/cross_output_links.py +99 -0
- pkgs/type_spec/emit_open_api.py +121 -34
- pkgs/type_spec/emit_open_api_util.py +5 -5
- pkgs/type_spec/emit_python.py +277 -86
- pkgs/type_spec/emit_typescript.py +102 -29
- pkgs/type_spec/emit_typescript_util.py +66 -10
- pkgs/type_spec/load_types.py +16 -3
- pkgs/type_spec/non_discriminated_union_exceptions.py +14 -0
- pkgs/type_spec/open_api_util.py +29 -4
- pkgs/type_spec/parts/base.py.prepart +11 -8
- pkgs/type_spec/parts/base.ts.prepart +4 -0
- pkgs/type_spec/type_info/__main__.py +3 -1
- pkgs/type_spec/type_info/emit_type_info.py +115 -22
- pkgs/type_spec/ui_entry_actions/__init__.py +4 -0
- pkgs/type_spec/ui_entry_actions/generate_ui_entry_actions.py +308 -0
- pkgs/type_spec/util.py +3 -3
- pkgs/type_spec/value_spec/__main__.py +26 -9
- pkgs/type_spec/value_spec/convert_type.py +18 -0
- pkgs/type_spec/value_spec/emit_python.py +13 -3
- pkgs/type_spec/value_spec/types.py +1 -1
- uncountable/core/async_batch.py +1 -1
- uncountable/core/client.py +133 -34
- uncountable/core/environment.py +3 -3
- uncountable/core/file_upload.py +39 -15
- uncountable/integration/cli.py +116 -23
- uncountable/integration/construct_client.py +3 -3
- uncountable/integration/executors/executors.py +12 -2
- uncountable/integration/executors/generic_upload_executor.py +66 -14
- uncountable/integration/http_server/__init__.py +5 -0
- uncountable/integration/http_server/types.py +69 -0
- uncountable/integration/job.py +192 -7
- uncountable/integration/queue_runner/command_server/__init__.py +4 -0
- uncountable/integration/queue_runner/command_server/command_client.py +65 -0
- uncountable/integration/queue_runner/command_server/command_server.py +83 -5
- uncountable/integration/queue_runner/command_server/constants.py +4 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server.proto +36 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +28 -11
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +77 -1
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +135 -0
- uncountable/integration/queue_runner/command_server/types.py +25 -2
- uncountable/integration/queue_runner/datastore/datastore_sqlite.py +168 -11
- uncountable/integration/queue_runner/datastore/interface.py +10 -0
- uncountable/integration/queue_runner/datastore/model.py +8 -1
- uncountable/integration/queue_runner/job_scheduler.py +63 -23
- uncountable/integration/queue_runner/queue_runner.py +10 -2
- uncountable/integration/queue_runner/worker.py +22 -17
- uncountable/integration/scan_profiles.py +1 -1
- uncountable/integration/scheduler.py +74 -25
- uncountable/integration/secret_retrieval/retrieve_secret.py +1 -1
- uncountable/integration/server.py +42 -12
- uncountable/integration/telemetry.py +63 -10
- uncountable/integration/webhook_server/entrypoint.py +39 -112
- uncountable/types/__init__.py +58 -1
- uncountable/types/api/batch/execute_batch.py +5 -6
- uncountable/types/api/batch/execute_batch_load_async.py +2 -3
- uncountable/types/api/chemical/convert_chemical_formats.py +10 -5
- uncountable/types/api/condition_parameters/__init__.py +1 -0
- uncountable/types/api/condition_parameters/upsert_condition_match.py +72 -0
- uncountable/types/api/entity/create_entities.py +7 -7
- uncountable/types/api/entity/create_entity.py +8 -8
- uncountable/types/api/entity/create_or_update_entity.py +48 -0
- uncountable/types/api/entity/export_entities.py +59 -0
- uncountable/types/api/entity/get_entities_data.py +3 -4
- uncountable/types/api/entity/grant_entity_permissions.py +6 -6
- uncountable/types/api/entity/list_aggregate.py +79 -0
- uncountable/types/api/entity/list_entities.py +34 -10
- uncountable/types/api/entity/lock_entity.py +4 -4
- uncountable/types/api/entity/lookup_entity.py +116 -0
- uncountable/types/api/entity/resolve_entity_ids.py +5 -6
- uncountable/types/api/entity/set_entity_field_values.py +44 -0
- uncountable/types/api/entity/set_values.py +3 -3
- uncountable/types/api/entity/transition_entity_phase.py +14 -7
- uncountable/types/api/entity/unlock_entity.py +3 -3
- uncountable/types/api/equipment/associate_equipment_input.py +2 -3
- uncountable/types/api/field_options/upsert_field_options.py +7 -7
- uncountable/types/api/files/__init__.py +1 -0
- uncountable/types/api/files/download_file.py +77 -0
- uncountable/types/api/id_source/list_id_source.py +6 -7
- uncountable/types/api/id_source/match_id_source.py +4 -5
- uncountable/types/api/input_groups/get_input_group_names.py +3 -4
- uncountable/types/api/inputs/create_inputs.py +10 -9
- uncountable/types/api/inputs/get_input_data.py +11 -12
- uncountable/types/api/inputs/get_input_names.py +6 -7
- uncountable/types/api/inputs/get_inputs_data.py +6 -7
- uncountable/types/api/inputs/set_input_attribute_values.py +5 -6
- uncountable/types/api/inputs/set_input_category.py +5 -5
- uncountable/types/api/inputs/set_input_subcategories.py +3 -3
- uncountable/types/api/inputs/set_intermediate_type.py +4 -4
- 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 +58 -0
- uncountable/types/api/material_families/update_entity_material_families.py +3 -4
- uncountable/types/api/notebooks/__init__.py +1 -0
- uncountable/types/api/notebooks/add_notebook_content.py +119 -0
- uncountable/types/api/outputs/get_output_data.py +12 -13
- uncountable/types/api/outputs/get_output_names.py +5 -6
- uncountable/types/api/outputs/get_output_organization.py +173 -0
- uncountable/types/api/outputs/resolve_output_conditions.py +7 -8
- uncountable/types/api/permissions/set_core_permissions.py +16 -10
- uncountable/types/api/project/get_projects.py +6 -7
- uncountable/types/api/project/get_projects_data.py +7 -8
- uncountable/types/api/recipe_links/create_recipe_link.py +5 -5
- uncountable/types/api/recipe_links/remove_recipe_link.py +4 -4
- uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +6 -7
- uncountable/types/api/recipes/add_recipe_to_project.py +3 -3
- uncountable/types/api/recipes/add_time_series_data.py +64 -0
- uncountable/types/api/recipes/archive_recipes.py +4 -4
- uncountable/types/api/recipes/associate_recipe_as_input.py +5 -5
- uncountable/types/api/recipes/associate_recipe_as_lot.py +3 -3
- uncountable/types/api/recipes/clear_recipe_outputs.py +3 -3
- uncountable/types/api/recipes/create_mix_order.py +44 -0
- uncountable/types/api/recipes/create_recipe.py +8 -9
- uncountable/types/api/recipes/create_recipes.py +8 -9
- uncountable/types/api/recipes/disassociate_recipe_as_input.py +3 -3
- uncountable/types/api/recipes/edit_recipe_inputs.py +101 -24
- uncountable/types/api/recipes/get_column_calculation_values.py +4 -5
- uncountable/types/api/recipes/get_curve.py +4 -5
- uncountable/types/api/recipes/get_recipe_calculations.py +6 -7
- uncountable/types/api/recipes/get_recipe_links.py +3 -4
- uncountable/types/api/recipes/get_recipe_names.py +3 -4
- uncountable/types/api/recipes/get_recipe_output_metadata.py +5 -6
- uncountable/types/api/recipes/get_recipes_data.py +62 -34
- uncountable/types/api/recipes/lock_recipes.py +9 -8
- uncountable/types/api/recipes/remove_recipe_from_project.py +3 -3
- uncountable/types/api/recipes/set_recipe_inputs.py +9 -10
- uncountable/types/api/recipes/set_recipe_metadata.py +3 -3
- uncountable/types/api/recipes/set_recipe_output_annotations.py +11 -12
- uncountable/types/api/recipes/set_recipe_output_file.py +5 -6
- uncountable/types/api/recipes/set_recipe_outputs.py +24 -13
- uncountable/types/api/recipes/set_recipe_tags.py +14 -9
- uncountable/types/api/recipes/set_recipe_total.py +59 -0
- uncountable/types/api/recipes/unarchive_recipes.py +3 -3
- uncountable/types/api/recipes/unlock_recipes.py +7 -6
- uncountable/types/api/runsheet/__init__.py +1 -0
- uncountable/types/api/runsheet/complete_async_upload.py +41 -0
- uncountable/types/api/triggers/run_trigger.py +4 -4
- uncountable/types/api/uploader/complete_async_parse.py +46 -0
- uncountable/types/api/uploader/invoke_uploader.py +4 -5
- uncountable/types/api/user/__init__.py +1 -0
- uncountable/types/api/user/get_current_user_info.py +40 -0
- uncountable/types/async_batch.py +1 -1
- uncountable/types/async_batch_processor.py +506 -23
- uncountable/types/async_batch_t.py +35 -8
- uncountable/types/async_jobs.py +0 -1
- uncountable/types/async_jobs_t.py +1 -2
- uncountable/types/auth_retrieval.py +0 -1
- uncountable/types/auth_retrieval_t.py +6 -6
- uncountable/types/base.py +0 -1
- uncountable/types/base_t.py +11 -9
- uncountable/types/calculations.py +0 -1
- uncountable/types/calculations_t.py +1 -2
- uncountable/types/chemical_structure.py +0 -1
- uncountable/types/chemical_structure_t.py +5 -5
- uncountable/types/client_base.py +614 -69
- uncountable/types/client_config.py +1 -1
- uncountable/types/client_config_t.py +13 -3
- uncountable/types/curves.py +0 -1
- uncountable/types/curves_t.py +6 -7
- uncountable/types/data.py +12 -0
- uncountable/types/data_t.py +103 -0
- uncountable/types/entity.py +1 -1
- uncountable/types/entity_t.py +90 -10
- uncountable/types/experiment_groups.py +0 -1
- uncountable/types/experiment_groups_t.py +1 -2
- uncountable/types/exports.py +8 -0
- uncountable/types/exports_t.py +34 -0
- uncountable/types/field_values.py +19 -1
- uncountable/types/field_values_t.py +242 -9
- uncountable/types/fields.py +0 -1
- uncountable/types/fields_t.py +1 -2
- uncountable/types/generic_upload.py +0 -1
- uncountable/types/generic_upload_t.py +14 -14
- uncountable/types/id_source.py +0 -1
- uncountable/types/id_source_t.py +13 -7
- uncountable/types/identifier.py +0 -1
- uncountable/types/identifier_t.py +10 -5
- uncountable/types/input_attributes.py +0 -1
- uncountable/types/input_attributes_t.py +3 -4
- uncountable/types/inputs.py +0 -1
- uncountable/types/inputs_t.py +3 -4
- uncountable/types/integration_server.py +0 -1
- uncountable/types/integration_server_t.py +13 -4
- 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/job_definition.py +2 -1
- uncountable/types/job_definition_t.py +57 -32
- uncountable/types/listing.py +9 -0
- uncountable/types/listing_t.py +51 -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/outputs.py +0 -1
- uncountable/types/outputs_t.py +2 -3
- uncountable/types/overrides.py +0 -1
- uncountable/types/overrides_t.py +10 -4
- uncountable/types/permissions.py +0 -1
- uncountable/types/permissions_t.py +1 -2
- uncountable/types/phases.py +0 -1
- uncountable/types/phases_t.py +1 -2
- uncountable/types/post_base.py +0 -1
- uncountable/types/post_base_t.py +1 -2
- uncountable/types/queued_job.py +2 -1
- uncountable/types/queued_job_t.py +29 -12
- uncountable/types/recipe_identifiers.py +0 -1
- uncountable/types/recipe_identifiers_t.py +18 -8
- uncountable/types/recipe_inputs.py +0 -1
- uncountable/types/recipe_inputs_t.py +1 -2
- uncountable/types/recipe_links.py +0 -1
- uncountable/types/recipe_links_t.py +3 -4
- uncountable/types/recipe_metadata.py +0 -1
- uncountable/types/recipe_metadata_t.py +9 -10
- uncountable/types/recipe_output_metadata.py +0 -1
- uncountable/types/recipe_output_metadata_t.py +1 -2
- uncountable/types/recipe_tags.py +0 -1
- uncountable/types/recipe_tags_t.py +1 -2
- uncountable/types/recipe_workflow_steps.py +0 -1
- uncountable/types/recipe_workflow_steps_t.py +7 -7
- uncountable/types/recipes.py +0 -1
- uncountable/types/recipes_t.py +2 -2
- uncountable/types/response.py +0 -1
- uncountable/types/response_t.py +2 -2
- uncountable/types/secret_retrieval.py +0 -1
- uncountable/types/secret_retrieval_t.py +7 -7
- uncountable/types/sockets.py +20 -0
- uncountable/types/sockets_t.py +169 -0
- uncountable/types/structured_filters.py +25 -0
- uncountable/types/structured_filters_t.py +248 -0
- uncountable/types/units.py +0 -1
- uncountable/types/units_t.py +1 -2
- uncountable/types/uploader.py +24 -0
- uncountable/types/uploader_t.py +222 -0
- uncountable/types/users.py +0 -1
- uncountable/types/users_t.py +1 -2
- uncountable/types/webhook_job.py +1 -1
- uncountable/types/webhook_job_t.py +14 -3
- uncountable/types/workflows.py +0 -1
- uncountable/types/workflows_t.py +3 -4
- uncountablepythonsdk-0.0.132.dist-info/METADATA +64 -0
- uncountablepythonsdk-0.0.132.dist-info/RECORD +363 -0
- {UncountablePythonSDK-0.0.82.dist-info → uncountablepythonsdk-0.0.132.dist-info}/WHEEL +1 -1
- UncountablePythonSDK-0.0.82.dist-info/METADATA +0 -60
- UncountablePythonSDK-0.0.82.dist-info/RECORD +0 -292
- docs/quickstart.md +0 -19
- {UncountablePythonSDK-0.0.82.dist-info → uncountablepythonsdk-0.0.132.dist-info}/top_level.txt +0 -0
uncountable/types/client_base.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -9,7 +8,9 @@ import typing # noqa: F401
|
|
|
9
8
|
import datetime # noqa: F401
|
|
10
9
|
from decimal import Decimal # noqa: F401
|
|
11
10
|
from pkgs.serialization import OpaqueKey
|
|
11
|
+
import uncountable.types.api.notebooks.add_notebook_content as add_notebook_content_t
|
|
12
12
|
import uncountable.types.api.recipes.add_recipe_to_project as add_recipe_to_project_t
|
|
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
|
|
14
15
|
import uncountable.types.api.equipment.associate_equipment_input as associate_equipment_input_t
|
|
15
16
|
import uncountable.types.api.recipes.associate_recipe_as_input as associate_recipe_as_input_t
|
|
@@ -17,10 +18,15 @@ 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
|
|
23
|
+
import uncountable.types.api.runsheet.complete_async_upload as complete_async_upload_t
|
|
20
24
|
import uncountable.types.api.chemical.convert_chemical_formats as convert_chemical_formats_t
|
|
21
25
|
import uncountable.types.api.entity.create_entities as create_entities_t
|
|
22
26
|
import uncountable.types.api.entity.create_entity as create_entity_t
|
|
23
27
|
import uncountable.types.api.inputs.create_inputs as create_inputs_t
|
|
28
|
+
import uncountable.types.api.recipes.create_mix_order as create_mix_order_t
|
|
29
|
+
import uncountable.types.api.entity.create_or_update_entity as create_or_update_entity_t
|
|
24
30
|
import uncountable.types.api.recipes.create_recipe as create_recipe_t
|
|
25
31
|
import uncountable.types.api.recipe_links.create_recipe_link as create_recipe_link_t
|
|
26
32
|
import uncountable.types.api.recipes.create_recipes as create_recipes_t
|
|
@@ -29,9 +35,12 @@ import uncountable.types.api.recipes.edit_recipe_inputs as edit_recipe_inputs_t
|
|
|
29
35
|
from uncountable.types import entity_t
|
|
30
36
|
import uncountable.types.api.batch.execute_batch as execute_batch_t
|
|
31
37
|
import uncountable.types.api.batch.execute_batch_load_async as execute_batch_load_async_t
|
|
38
|
+
import uncountable.types.api.entity.export_entities as export_entities_t
|
|
39
|
+
from uncountable.types import exports_t
|
|
32
40
|
from uncountable.types import field_values_t
|
|
33
41
|
from uncountable.types import generic_upload_t
|
|
34
42
|
import uncountable.types.api.recipes.get_column_calculation_values as get_column_calculation_values_t
|
|
43
|
+
import uncountable.types.api.user.get_current_user_info as get_current_user_info_t
|
|
35
44
|
import uncountable.types.api.recipes.get_curve as get_curve_t
|
|
36
45
|
import uncountable.types.api.entity.get_entities_data as get_entities_data_t
|
|
37
46
|
import uncountable.types.api.inputs.get_input_data as get_input_data_t
|
|
@@ -52,23 +61,30 @@ import uncountable.types.api.entity.grant_entity_permissions as grant_entity_per
|
|
|
52
61
|
from uncountable.types import id_source_t
|
|
53
62
|
from uncountable.types import identifier_t
|
|
54
63
|
import uncountable.types.api.uploader.invoke_uploader as invoke_uploader_t
|
|
64
|
+
import uncountable.types.api.entity.list_aggregate as list_aggregate_t
|
|
55
65
|
import uncountable.types.api.entity.list_entities as list_entities_t
|
|
56
66
|
import uncountable.types.api.id_source.list_id_source as list_id_source_t
|
|
57
67
|
import uncountable.types.api.entity.lock_entity as lock_entity_t
|
|
58
68
|
import uncountable.types.api.recipes.lock_recipes as lock_recipes_t
|
|
69
|
+
import uncountable.types.api.entity.lookup_entity as lookup_entity_t
|
|
59
70
|
import uncountable.types.api.id_source.match_id_source as match_id_source_t
|
|
71
|
+
from uncountable.types import notices_t
|
|
72
|
+
from uncountable.types import notifications_t
|
|
60
73
|
from uncountable.types import permissions_t
|
|
61
74
|
from uncountable.types import post_base_t
|
|
75
|
+
import uncountable.types.api.integrations.push_notification as push_notification_t
|
|
62
76
|
from uncountable.types import recipe_identifiers_t
|
|
63
77
|
from uncountable.types import recipe_links_t
|
|
64
78
|
from uncountable.types import recipe_metadata_t
|
|
65
79
|
from uncountable.types import recipe_workflow_steps_t
|
|
80
|
+
import uncountable.types.api.integrations.register_sockets_token as register_sockets_token_t
|
|
66
81
|
import uncountable.types.api.recipes.remove_recipe_from_project as remove_recipe_from_project_t
|
|
67
82
|
import uncountable.types.api.recipe_links.remove_recipe_link as remove_recipe_link_t
|
|
68
83
|
import uncountable.types.api.entity.resolve_entity_ids as resolve_entity_ids_t
|
|
69
84
|
import uncountable.types.api.outputs.resolve_output_conditions as resolve_output_conditions_t
|
|
70
85
|
import uncountable.types.api.triggers.run_trigger as run_trigger_t
|
|
71
86
|
import uncountable.types.api.permissions.set_core_permissions as set_core_permissions_t
|
|
87
|
+
import uncountable.types.api.entity.set_entity_field_values as set_entity_field_values_t
|
|
72
88
|
import uncountable.types.api.inputs.set_input_attribute_values as set_input_attribute_values_t
|
|
73
89
|
import uncountable.types.api.inputs.set_input_category as set_input_category_t
|
|
74
90
|
import uncountable.types.api.inputs.set_input_subcategories as set_input_subcategories_t
|
|
@@ -79,12 +95,16 @@ import uncountable.types.api.recipes.set_recipe_output_annotations as set_recipe
|
|
|
79
95
|
import uncountable.types.api.recipes.set_recipe_output_file as set_recipe_output_file_t
|
|
80
96
|
import uncountable.types.api.recipes.set_recipe_outputs as set_recipe_outputs_t
|
|
81
97
|
import uncountable.types.api.recipes.set_recipe_tags as set_recipe_tags_t
|
|
98
|
+
import uncountable.types.api.recipes.set_recipe_total as set_recipe_total_t
|
|
82
99
|
import uncountable.types.api.entity.set_values as set_values_t
|
|
100
|
+
from uncountable.types import sockets_t
|
|
83
101
|
import uncountable.types.api.entity.transition_entity_phase as transition_entity_phase_t
|
|
84
102
|
import uncountable.types.api.recipes.unarchive_recipes as unarchive_recipes_t
|
|
85
103
|
import uncountable.types.api.entity.unlock_entity as unlock_entity_t
|
|
86
104
|
import uncountable.types.api.recipes.unlock_recipes as unlock_recipes_t
|
|
87
105
|
import uncountable.types.api.material_families.update_entity_material_families as update_entity_material_families_t
|
|
106
|
+
from uncountable.types import uploader_t
|
|
107
|
+
import uncountable.types.api.condition_parameters.upsert_condition_match as upsert_condition_match_t
|
|
88
108
|
import uncountable.types.api.field_options.upsert_field_options as upsert_field_options_t
|
|
89
109
|
from abc import ABC, abstractmethod
|
|
90
110
|
import dataclasses
|
|
@@ -97,6 +117,7 @@ class APIRequest:
|
|
|
97
117
|
method: str
|
|
98
118
|
endpoint: str
|
|
99
119
|
args: typing.Any
|
|
120
|
+
request_options: client_config_t.RequestOptions | None = None
|
|
100
121
|
|
|
101
122
|
|
|
102
123
|
class ClientMethods(ABC):
|
|
@@ -105,11 +126,39 @@ class ClientMethods(ABC):
|
|
|
105
126
|
def do_request(self, *, api_request: APIRequest, return_type: type[DT]) -> DT:
|
|
106
127
|
...
|
|
107
128
|
|
|
129
|
+
def add_notebook_content(
|
|
130
|
+
self,
|
|
131
|
+
*,
|
|
132
|
+
notebook_key: identifier_t.IdentifierKey,
|
|
133
|
+
location: add_notebook_content_t.Location,
|
|
134
|
+
contents: list[add_notebook_content_t.InputContent],
|
|
135
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
136
|
+
) -> add_notebook_content_t.Data:
|
|
137
|
+
"""Adds content to an existing notebook
|
|
138
|
+
|
|
139
|
+
:param notebook_key: Key of the notebook to add the content to
|
|
140
|
+
:param location: The location to add the content to in the notebook
|
|
141
|
+
:param contents: List of input content to add to the notebook
|
|
142
|
+
"""
|
|
143
|
+
args = add_notebook_content_t.Arguments(
|
|
144
|
+
notebook_key=notebook_key,
|
|
145
|
+
location=location,
|
|
146
|
+
contents=contents,
|
|
147
|
+
)
|
|
148
|
+
api_request = APIRequest(
|
|
149
|
+
method=add_notebook_content_t.ENDPOINT_METHOD,
|
|
150
|
+
endpoint=add_notebook_content_t.ENDPOINT_PATH,
|
|
151
|
+
args=args,
|
|
152
|
+
request_options=_request_options,
|
|
153
|
+
)
|
|
154
|
+
return self.do_request(api_request=api_request, return_type=add_notebook_content_t.Data)
|
|
155
|
+
|
|
108
156
|
def add_recipe_to_project(
|
|
109
157
|
self,
|
|
110
158
|
*,
|
|
111
159
|
recipe_key: identifier_t.IdentifierKey,
|
|
112
160
|
project_key: identifier_t.IdentifierKey,
|
|
161
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
113
162
|
) -> add_recipe_to_project_t.Data:
|
|
114
163
|
"""Adds a recipe to a project
|
|
115
164
|
|
|
@@ -124,14 +173,43 @@ class ClientMethods(ABC):
|
|
|
124
173
|
method=add_recipe_to_project_t.ENDPOINT_METHOD,
|
|
125
174
|
endpoint=add_recipe_to_project_t.ENDPOINT_PATH,
|
|
126
175
|
args=args,
|
|
176
|
+
request_options=_request_options,
|
|
127
177
|
)
|
|
128
178
|
return self.do_request(api_request=api_request, return_type=add_recipe_to_project_t.Data)
|
|
129
179
|
|
|
180
|
+
def external_add_time_series_data(
|
|
181
|
+
self,
|
|
182
|
+
*,
|
|
183
|
+
time_series_segment_key: identifier_t.IdentifierKey,
|
|
184
|
+
time_series_data: list[add_time_series_data_t.TimeSeriesDatum],
|
|
185
|
+
on_conflict: add_time_series_data_t.OnTimepointConflict = add_time_series_data_t.OnTimepointConflict.ERROR,
|
|
186
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
187
|
+
) -> add_time_series_data_t.Data:
|
|
188
|
+
"""Add timepoint data to a time series segment.
|
|
189
|
+
|
|
190
|
+
:param time_series_segment_key: The time series segment to add data to
|
|
191
|
+
:param time_series_data: The data to add to the time series segment
|
|
192
|
+
:param on_conflict: What to do if a TimeSeriesDatum already exists at the same timestamp
|
|
193
|
+
"""
|
|
194
|
+
args = add_time_series_data_t.Arguments(
|
|
195
|
+
time_series_segment_key=time_series_segment_key,
|
|
196
|
+
time_series_data=time_series_data,
|
|
197
|
+
on_conflict=on_conflict,
|
|
198
|
+
)
|
|
199
|
+
api_request = APIRequest(
|
|
200
|
+
method=add_time_series_data_t.ENDPOINT_METHOD,
|
|
201
|
+
endpoint=add_time_series_data_t.ENDPOINT_PATH,
|
|
202
|
+
args=args,
|
|
203
|
+
request_options=_request_options,
|
|
204
|
+
)
|
|
205
|
+
return self.do_request(api_request=api_request, return_type=add_time_series_data_t.Data)
|
|
206
|
+
|
|
130
207
|
def archive_recipes(
|
|
131
208
|
self,
|
|
132
209
|
*,
|
|
133
210
|
recipes: list[identifier_t.IdentifierKey],
|
|
134
|
-
reason:
|
|
211
|
+
reason: str | None = None,
|
|
212
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
135
213
|
) -> archive_recipes_t.Data:
|
|
136
214
|
"""Archive the provided recipes and their children
|
|
137
215
|
|
|
@@ -146,6 +224,7 @@ class ClientMethods(ABC):
|
|
|
146
224
|
method=archive_recipes_t.ENDPOINT_METHOD,
|
|
147
225
|
endpoint=archive_recipes_t.ENDPOINT_PATH,
|
|
148
226
|
args=args,
|
|
227
|
+
request_options=_request_options,
|
|
149
228
|
)
|
|
150
229
|
return self.do_request(api_request=api_request, return_type=archive_recipes_t.Data)
|
|
151
230
|
|
|
@@ -154,6 +233,7 @@ class ClientMethods(ABC):
|
|
|
154
233
|
*,
|
|
155
234
|
equipment_key: identifier_t.IdentifierKey,
|
|
156
235
|
material_family_ids: list[base_t.ObjectId],
|
|
236
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
157
237
|
) -> associate_equipment_input_t.Data:
|
|
158
238
|
"""Create or return the input association for equipment
|
|
159
239
|
|
|
@@ -168,6 +248,7 @@ class ClientMethods(ABC):
|
|
|
168
248
|
method=associate_equipment_input_t.ENDPOINT_METHOD,
|
|
169
249
|
endpoint=associate_equipment_input_t.ENDPOINT_PATH,
|
|
170
250
|
args=args,
|
|
251
|
+
request_options=_request_options,
|
|
171
252
|
)
|
|
172
253
|
return self.do_request(api_request=api_request, return_type=associate_equipment_input_t.Data)
|
|
173
254
|
|
|
@@ -175,8 +256,9 @@ class ClientMethods(ABC):
|
|
|
175
256
|
self,
|
|
176
257
|
*,
|
|
177
258
|
recipe_key: identifier_t.IdentifierKey,
|
|
178
|
-
input_key:
|
|
179
|
-
show_in_listings:
|
|
259
|
+
input_key: identifier_t.IdentifierKey | None = None,
|
|
260
|
+
show_in_listings: bool | None = None,
|
|
261
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
180
262
|
) -> associate_recipe_as_input_t.Data:
|
|
181
263
|
"""Create or return the input association for a recipe
|
|
182
264
|
|
|
@@ -193,6 +275,7 @@ class ClientMethods(ABC):
|
|
|
193
275
|
method=associate_recipe_as_input_t.ENDPOINT_METHOD,
|
|
194
276
|
endpoint=associate_recipe_as_input_t.ENDPOINT_PATH,
|
|
195
277
|
args=args,
|
|
278
|
+
request_options=_request_options,
|
|
196
279
|
)
|
|
197
280
|
return self.do_request(api_request=api_request, return_type=associate_recipe_as_input_t.Data)
|
|
198
281
|
|
|
@@ -201,6 +284,7 @@ class ClientMethods(ABC):
|
|
|
201
284
|
*,
|
|
202
285
|
recipe_key: identifier_t.IdentifierKey,
|
|
203
286
|
ingredient_key: identifier_t.IdentifierKey,
|
|
287
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
204
288
|
) -> associate_recipe_as_lot_t.Data:
|
|
205
289
|
"""Create a new lot association for the provided recipe with the provided ingredient
|
|
206
290
|
|
|
@@ -215,6 +299,7 @@ class ClientMethods(ABC):
|
|
|
215
299
|
method=associate_recipe_as_lot_t.ENDPOINT_METHOD,
|
|
216
300
|
endpoint=associate_recipe_as_lot_t.ENDPOINT_PATH,
|
|
217
301
|
args=args,
|
|
302
|
+
request_options=_request_options,
|
|
218
303
|
)
|
|
219
304
|
return self.do_request(api_request=api_request, return_type=associate_recipe_as_lot_t.Data)
|
|
220
305
|
|
|
@@ -222,6 +307,7 @@ class ClientMethods(ABC):
|
|
|
222
307
|
self,
|
|
223
308
|
*,
|
|
224
309
|
recipe_key: identifier_t.IdentifierKey,
|
|
310
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
225
311
|
) -> clear_recipe_outputs_t.Data:
|
|
226
312
|
"""Clears all output values & output metadata for a given recipe
|
|
227
313
|
|
|
@@ -234,13 +320,61 @@ class ClientMethods(ABC):
|
|
|
234
320
|
method=clear_recipe_outputs_t.ENDPOINT_METHOD,
|
|
235
321
|
endpoint=clear_recipe_outputs_t.ENDPOINT_PATH,
|
|
236
322
|
args=args,
|
|
323
|
+
request_options=_request_options,
|
|
237
324
|
)
|
|
238
325
|
return self.do_request(api_request=api_request, return_type=clear_recipe_outputs_t.Data)
|
|
239
326
|
|
|
327
|
+
def complete_async_parse(
|
|
328
|
+
self,
|
|
329
|
+
*,
|
|
330
|
+
parsed_file_data: list[uploader_t.ParsedFileData],
|
|
331
|
+
async_job_key: identifier_t.IdentifierKey,
|
|
332
|
+
upload_destination: generic_upload_t.UploadDestinationRecipe,
|
|
333
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
334
|
+
) -> complete_async_parse_t.Data:
|
|
335
|
+
"""Parses uploaded files asynchronously
|
|
336
|
+
|
|
337
|
+
"""
|
|
338
|
+
args = complete_async_parse_t.Arguments(
|
|
339
|
+
parsed_file_data=parsed_file_data,
|
|
340
|
+
async_job_key=async_job_key,
|
|
341
|
+
upload_destination=upload_destination,
|
|
342
|
+
)
|
|
343
|
+
api_request = APIRequest(
|
|
344
|
+
method=complete_async_parse_t.ENDPOINT_METHOD,
|
|
345
|
+
endpoint=complete_async_parse_t.ENDPOINT_PATH,
|
|
346
|
+
args=args,
|
|
347
|
+
request_options=_request_options,
|
|
348
|
+
)
|
|
349
|
+
return self.do_request(api_request=api_request, return_type=complete_async_parse_t.Data)
|
|
350
|
+
|
|
351
|
+
def complete_async_upload(
|
|
352
|
+
self,
|
|
353
|
+
*,
|
|
354
|
+
async_job_id: base_t.ObjectId,
|
|
355
|
+
file_id: base_t.ObjectId,
|
|
356
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
357
|
+
) -> complete_async_upload_t.Data:
|
|
358
|
+
"""Processes an file id with a given async job id to be uploaded asynchronously
|
|
359
|
+
|
|
360
|
+
"""
|
|
361
|
+
args = complete_async_upload_t.Arguments(
|
|
362
|
+
async_job_id=async_job_id,
|
|
363
|
+
file_id=file_id,
|
|
364
|
+
)
|
|
365
|
+
api_request = APIRequest(
|
|
366
|
+
method=complete_async_upload_t.ENDPOINT_METHOD,
|
|
367
|
+
endpoint=complete_async_upload_t.ENDPOINT_PATH,
|
|
368
|
+
args=args,
|
|
369
|
+
request_options=_request_options,
|
|
370
|
+
)
|
|
371
|
+
return self.do_request(api_request=api_request, return_type=complete_async_upload_t.Data)
|
|
372
|
+
|
|
240
373
|
def convert_chemical_formats(
|
|
241
374
|
self,
|
|
242
375
|
*,
|
|
243
376
|
source_chemical_structures: list[convert_chemical_formats_t.ChemicalStructureFile],
|
|
377
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
244
378
|
) -> convert_chemical_formats_t.Data:
|
|
245
379
|
"""Converts chemical formats, into the format used by Uncountable and usable in other APIs for eg. set_input_attribute_values
|
|
246
380
|
|
|
@@ -252,6 +386,7 @@ class ClientMethods(ABC):
|
|
|
252
386
|
method=convert_chemical_formats_t.ENDPOINT_METHOD,
|
|
253
387
|
endpoint=convert_chemical_formats_t.ENDPOINT_PATH,
|
|
254
388
|
args=args,
|
|
389
|
+
request_options=_request_options,
|
|
255
390
|
)
|
|
256
391
|
return self.do_request(api_request=api_request, return_type=convert_chemical_formats_t.Data)
|
|
257
392
|
|
|
@@ -260,8 +395,9 @@ class ClientMethods(ABC):
|
|
|
260
395
|
*,
|
|
261
396
|
entity_type: entity_t.LimitedEntityType,
|
|
262
397
|
entities_to_create: list[create_entities_t.EntityToCreate],
|
|
263
|
-
definition_id:
|
|
264
|
-
definition_key:
|
|
398
|
+
definition_id: base_t.ObjectId | None = None,
|
|
399
|
+
definition_key: identifier_t.IdentifierKey | None = None,
|
|
400
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
265
401
|
) -> create_entities_t.Data:
|
|
266
402
|
"""Creates new Uncountable entities
|
|
267
403
|
|
|
@@ -280,6 +416,7 @@ class ClientMethods(ABC):
|
|
|
280
416
|
method=create_entities_t.ENDPOINT_METHOD,
|
|
281
417
|
endpoint=create_entities_t.ENDPOINT_PATH,
|
|
282
418
|
args=args,
|
|
419
|
+
request_options=_request_options,
|
|
283
420
|
)
|
|
284
421
|
return self.do_request(api_request=api_request, return_type=create_entities_t.Data)
|
|
285
422
|
|
|
@@ -287,26 +424,31 @@ class ClientMethods(ABC):
|
|
|
287
424
|
self,
|
|
288
425
|
*,
|
|
289
426
|
entity_type: entity_t.LimitedEntityType,
|
|
290
|
-
definition_id:
|
|
291
|
-
definition_key:
|
|
292
|
-
field_values:
|
|
427
|
+
definition_id: base_t.ObjectId | None = None,
|
|
428
|
+
definition_key: identifier_t.IdentifierKey | None = None,
|
|
429
|
+
field_values: list[field_values_t.FieldRefNameValue] | None = None,
|
|
430
|
+
parent_entity: entity_t.Entity | None = None,
|
|
431
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
293
432
|
) -> create_entity_t.Data:
|
|
294
433
|
"""Creates a new Uncountable entity
|
|
295
434
|
|
|
296
435
|
:param definition_id: Definition id of the entity to create
|
|
297
436
|
:param definition_key: Key for the definition of the entity to create
|
|
298
437
|
:param entity_type: The type of the entities requested
|
|
438
|
+
:param parent_entity: The parent entity associated for this new entity. This only applies if there is a pre-defined relationship.
|
|
299
439
|
"""
|
|
300
440
|
args = create_entity_t.Arguments(
|
|
301
441
|
definition_id=definition_id,
|
|
302
442
|
definition_key=definition_key,
|
|
303
443
|
entity_type=entity_type,
|
|
304
444
|
field_values=field_values,
|
|
445
|
+
parent_entity=parent_entity,
|
|
305
446
|
)
|
|
306
447
|
api_request = APIRequest(
|
|
307
448
|
method=create_entity_t.ENDPOINT_METHOD,
|
|
308
449
|
endpoint=create_entity_t.ENDPOINT_PATH,
|
|
309
450
|
args=args,
|
|
451
|
+
request_options=_request_options,
|
|
310
452
|
)
|
|
311
453
|
return self.do_request(api_request=api_request, return_type=create_entity_t.Data)
|
|
312
454
|
|
|
@@ -314,6 +456,7 @@ class ClientMethods(ABC):
|
|
|
314
456
|
self,
|
|
315
457
|
*,
|
|
316
458
|
inputs_to_create: list[create_inputs_t.InputToCreate],
|
|
459
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
317
460
|
) -> create_inputs_t.Data:
|
|
318
461
|
"""Creates new inputs
|
|
319
462
|
|
|
@@ -326,20 +469,73 @@ class ClientMethods(ABC):
|
|
|
326
469
|
method=create_inputs_t.ENDPOINT_METHOD,
|
|
327
470
|
endpoint=create_inputs_t.ENDPOINT_PATH,
|
|
328
471
|
args=args,
|
|
472
|
+
request_options=_request_options,
|
|
329
473
|
)
|
|
330
474
|
return self.do_request(api_request=api_request, return_type=create_inputs_t.Data)
|
|
331
475
|
|
|
476
|
+
def create_mix_order(
|
|
477
|
+
self,
|
|
478
|
+
*,
|
|
479
|
+
recipe_key: identifier_t.IdentifierKey,
|
|
480
|
+
recipe_workflow_step_identifier: recipe_workflow_steps_t.RecipeWorkflowStepIdentifier,
|
|
481
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
482
|
+
) -> create_mix_order_t.Data:
|
|
483
|
+
"""Creates mix order on a recipe workflow step
|
|
484
|
+
|
|
485
|
+
"""
|
|
486
|
+
args = create_mix_order_t.Arguments(
|
|
487
|
+
recipe_key=recipe_key,
|
|
488
|
+
recipe_workflow_step_identifier=recipe_workflow_step_identifier,
|
|
489
|
+
)
|
|
490
|
+
api_request = APIRequest(
|
|
491
|
+
method=create_mix_order_t.ENDPOINT_METHOD,
|
|
492
|
+
endpoint=create_mix_order_t.ENDPOINT_PATH,
|
|
493
|
+
args=args,
|
|
494
|
+
request_options=_request_options,
|
|
495
|
+
)
|
|
496
|
+
return self.do_request(api_request=api_request, return_type=create_mix_order_t.Data)
|
|
497
|
+
|
|
498
|
+
def create_or_update_entity(
|
|
499
|
+
self,
|
|
500
|
+
*,
|
|
501
|
+
entity_type: entity_t.EntityType,
|
|
502
|
+
definition_key: identifier_t.IdentifierKey,
|
|
503
|
+
field_values: list[field_values_t.FieldArgumentValue],
|
|
504
|
+
entity_key: identifier_t.IdentifierKey | None = None,
|
|
505
|
+
on_create_init_field_values: list[field_values_t.FieldArgumentValue] | None = None,
|
|
506
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
507
|
+
) -> create_or_update_entity_t.Data:
|
|
508
|
+
"""Creates or updates field values for an entity
|
|
509
|
+
|
|
510
|
+
:param on_create_init_field_values: Field values set only when the entity is created (will be ignored if entity already exists)
|
|
511
|
+
"""
|
|
512
|
+
args = create_or_update_entity_t.Arguments(
|
|
513
|
+
entity_key=entity_key,
|
|
514
|
+
entity_type=entity_type,
|
|
515
|
+
definition_key=definition_key,
|
|
516
|
+
field_values=field_values,
|
|
517
|
+
on_create_init_field_values=on_create_init_field_values,
|
|
518
|
+
)
|
|
519
|
+
api_request = APIRequest(
|
|
520
|
+
method=create_or_update_entity_t.ENDPOINT_METHOD,
|
|
521
|
+
endpoint=create_or_update_entity_t.ENDPOINT_PATH,
|
|
522
|
+
args=args,
|
|
523
|
+
request_options=_request_options,
|
|
524
|
+
)
|
|
525
|
+
return self.do_request(api_request=api_request, return_type=create_or_update_entity_t.Data)
|
|
526
|
+
|
|
332
527
|
def create_recipe(
|
|
333
528
|
self,
|
|
334
529
|
*,
|
|
335
530
|
material_family_id: base_t.ObjectId,
|
|
336
531
|
workflow_id: base_t.ObjectId,
|
|
337
|
-
name:
|
|
338
|
-
project_id:
|
|
339
|
-
workflow_variant_id:
|
|
340
|
-
recipe_metadata:
|
|
341
|
-
identifiers:
|
|
342
|
-
definition_key:
|
|
532
|
+
name: str | None = None,
|
|
533
|
+
project_id: base_t.ObjectId | None = None,
|
|
534
|
+
workflow_variant_id: base_t.ObjectId | None = None,
|
|
535
|
+
recipe_metadata: list[recipe_metadata_t.MetadataValue] | None = None,
|
|
536
|
+
identifiers: recipe_identifiers_t.RecipeIdentifiers | None = None,
|
|
537
|
+
definition_key: identifier_t.IdentifierKey | None = None,
|
|
538
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
343
539
|
) -> create_recipe_t.Data:
|
|
344
540
|
"""Returns the id of the recipe being created.
|
|
345
541
|
|
|
@@ -366,6 +562,7 @@ class ClientMethods(ABC):
|
|
|
366
562
|
method=create_recipe_t.ENDPOINT_METHOD,
|
|
367
563
|
endpoint=create_recipe_t.ENDPOINT_PATH,
|
|
368
564
|
args=args,
|
|
565
|
+
request_options=_request_options,
|
|
369
566
|
)
|
|
370
567
|
return self.do_request(api_request=api_request, return_type=create_recipe_t.Data)
|
|
371
568
|
|
|
@@ -374,8 +571,9 @@ class ClientMethods(ABC):
|
|
|
374
571
|
*,
|
|
375
572
|
recipe_from_key: identifier_t.IdentifierKey,
|
|
376
573
|
recipe_to_key: identifier_t.IdentifierKey,
|
|
377
|
-
link_type: typing.
|
|
378
|
-
name: str,
|
|
574
|
+
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],
|
|
575
|
+
name: str | None = None,
|
|
576
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
379
577
|
) -> create_recipe_link_t.Data:
|
|
380
578
|
"""Create a link between two recipes. Skip if the link already exists
|
|
381
579
|
|
|
@@ -394,6 +592,7 @@ class ClientMethods(ABC):
|
|
|
394
592
|
method=create_recipe_link_t.ENDPOINT_METHOD,
|
|
395
593
|
endpoint=create_recipe_link_t.ENDPOINT_PATH,
|
|
396
594
|
args=args,
|
|
595
|
+
request_options=_request_options,
|
|
397
596
|
)
|
|
398
597
|
return self.do_request(api_request=api_request, return_type=create_recipe_link_t.Data)
|
|
399
598
|
|
|
@@ -402,9 +601,10 @@ class ClientMethods(ABC):
|
|
|
402
601
|
*,
|
|
403
602
|
material_family_id: base_t.ObjectId,
|
|
404
603
|
recipe_definitions: list[create_recipes_t.CreateRecipeDefinition],
|
|
405
|
-
project_id:
|
|
604
|
+
project_id: base_t.ObjectId | None = None,
|
|
605
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
406
606
|
) -> create_recipes_t.Data:
|
|
407
|
-
"""
|
|
607
|
+
"""Creates recipes in Uncountable, optionally with metadata values, and returns the resulting ids in corresponding order
|
|
408
608
|
|
|
409
609
|
:param material_family_id: The identifier of the material family to create the recipes in
|
|
410
610
|
:param project_id: The identifier of the project to create the recipes in
|
|
@@ -418,6 +618,7 @@ class ClientMethods(ABC):
|
|
|
418
618
|
method=create_recipes_t.ENDPOINT_METHOD,
|
|
419
619
|
endpoint=create_recipes_t.ENDPOINT_PATH,
|
|
420
620
|
args=args,
|
|
621
|
+
request_options=_request_options,
|
|
421
622
|
)
|
|
422
623
|
return self.do_request(api_request=api_request, return_type=create_recipes_t.Data)
|
|
423
624
|
|
|
@@ -425,6 +626,7 @@ class ClientMethods(ABC):
|
|
|
425
626
|
self,
|
|
426
627
|
*,
|
|
427
628
|
recipe_key: identifier_t.IdentifierKey,
|
|
629
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
428
630
|
) -> disassociate_recipe_as_input_t.Data:
|
|
429
631
|
"""Remove any association between a recipe and ingredients
|
|
430
632
|
|
|
@@ -437,6 +639,7 @@ class ClientMethods(ABC):
|
|
|
437
639
|
method=disassociate_recipe_as_input_t.ENDPOINT_METHOD,
|
|
438
640
|
endpoint=disassociate_recipe_as_input_t.ENDPOINT_PATH,
|
|
439
641
|
args=args,
|
|
642
|
+
request_options=_request_options,
|
|
440
643
|
)
|
|
441
644
|
return self.do_request(api_request=api_request, return_type=disassociate_recipe_as_input_t.Data)
|
|
442
645
|
|
|
@@ -446,6 +649,7 @@ class ClientMethods(ABC):
|
|
|
446
649
|
recipe_key: identifier_t.IdentifierKey,
|
|
447
650
|
recipe_workflow_step_identifier: recipe_workflow_steps_t.RecipeWorkflowStepIdentifier,
|
|
448
651
|
edits: list[edit_recipe_inputs_t.RecipeInputEdit],
|
|
652
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
449
653
|
) -> edit_recipe_inputs_t.Data:
|
|
450
654
|
"""Clear, update, or add inputs on a recipe
|
|
451
655
|
|
|
@@ -460,6 +664,7 @@ class ClientMethods(ABC):
|
|
|
460
664
|
method=edit_recipe_inputs_t.ENDPOINT_METHOD,
|
|
461
665
|
endpoint=edit_recipe_inputs_t.ENDPOINT_PATH,
|
|
462
666
|
args=args,
|
|
667
|
+
request_options=_request_options,
|
|
463
668
|
)
|
|
464
669
|
return self.do_request(api_request=api_request, return_type=edit_recipe_inputs_t.Data)
|
|
465
670
|
|
|
@@ -467,6 +672,7 @@ class ClientMethods(ABC):
|
|
|
467
672
|
self,
|
|
468
673
|
*,
|
|
469
674
|
requests: list[execute_batch_t.BatchRequest],
|
|
675
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
470
676
|
) -> execute_batch_t.Data:
|
|
471
677
|
"""Run multiple API calls via one request
|
|
472
678
|
|
|
@@ -478,6 +684,7 @@ class ClientMethods(ABC):
|
|
|
478
684
|
method=execute_batch_t.ENDPOINT_METHOD,
|
|
479
685
|
endpoint=execute_batch_t.ENDPOINT_PATH,
|
|
480
686
|
args=args,
|
|
687
|
+
request_options=_request_options,
|
|
481
688
|
)
|
|
482
689
|
return self.do_request(api_request=api_request, return_type=execute_batch_t.Data)
|
|
483
690
|
|
|
@@ -485,6 +692,7 @@ class ClientMethods(ABC):
|
|
|
485
692
|
self,
|
|
486
693
|
*,
|
|
487
694
|
requests: list[async_batch_t.AsyncBatchRequest],
|
|
695
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
488
696
|
) -> execute_batch_load_async_t.Data:
|
|
489
697
|
"""Run multiple API calls via one request
|
|
490
698
|
|
|
@@ -496,14 +704,46 @@ class ClientMethods(ABC):
|
|
|
496
704
|
method=execute_batch_load_async_t.ENDPOINT_METHOD,
|
|
497
705
|
endpoint=execute_batch_load_async_t.ENDPOINT_PATH,
|
|
498
706
|
args=args,
|
|
707
|
+
request_options=_request_options,
|
|
499
708
|
)
|
|
500
709
|
return self.do_request(api_request=api_request, return_type=execute_batch_load_async_t.Data)
|
|
501
710
|
|
|
711
|
+
def export_entities(
|
|
712
|
+
self,
|
|
713
|
+
*,
|
|
714
|
+
config_key: identifier_t.IdentifierKey,
|
|
715
|
+
type: exports_t.ExportType = exports_t.ExportType.EXCEL,
|
|
716
|
+
client_timezone: exports_t.ListingExportUserTimezone | None = None,
|
|
717
|
+
limit: int | None = None,
|
|
718
|
+
attributes: list[export_entities_t.ListingAttribute] | None = None,
|
|
719
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
720
|
+
) -> export_entities_t.Data:
|
|
721
|
+
"""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.
|
|
722
|
+
|
|
723
|
+
:param config_key: The configuration reference for the listing config
|
|
724
|
+
:param limit: The number of data points to return. If not filled in, all filtered entities will be included in the export.
|
|
725
|
+
"""
|
|
726
|
+
args = export_entities_t.Arguments(
|
|
727
|
+
config_key=config_key,
|
|
728
|
+
client_timezone=client_timezone,
|
|
729
|
+
limit=limit,
|
|
730
|
+
type=type,
|
|
731
|
+
attributes=attributes,
|
|
732
|
+
)
|
|
733
|
+
api_request = APIRequest(
|
|
734
|
+
method=export_entities_t.ENDPOINT_METHOD,
|
|
735
|
+
endpoint=export_entities_t.ENDPOINT_PATH,
|
|
736
|
+
args=args,
|
|
737
|
+
request_options=_request_options,
|
|
738
|
+
)
|
|
739
|
+
return self.do_request(api_request=api_request, return_type=export_entities_t.Data)
|
|
740
|
+
|
|
502
741
|
def get_column_calculation_values(
|
|
503
742
|
self,
|
|
504
743
|
*,
|
|
505
744
|
recipe_keys: list[identifier_t.IdentifierKey],
|
|
506
745
|
calculation_key: identifier_t.IdentifierKey,
|
|
746
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
507
747
|
) -> get_column_calculation_values_t.Data:
|
|
508
748
|
"""Get the values for a column calculations for recipes
|
|
509
749
|
|
|
@@ -518,14 +758,33 @@ class ClientMethods(ABC):
|
|
|
518
758
|
method=get_column_calculation_values_t.ENDPOINT_METHOD,
|
|
519
759
|
endpoint=get_column_calculation_values_t.ENDPOINT_PATH,
|
|
520
760
|
args=args,
|
|
761
|
+
request_options=_request_options,
|
|
521
762
|
)
|
|
522
763
|
return self.do_request(api_request=api_request, return_type=get_column_calculation_values_t.Data)
|
|
523
764
|
|
|
765
|
+
def get_current_user_info(
|
|
766
|
+
self,
|
|
767
|
+
*,
|
|
768
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
769
|
+
) -> get_current_user_info_t.Data:
|
|
770
|
+
"""Return information about the current user
|
|
771
|
+
|
|
772
|
+
"""
|
|
773
|
+
args = get_current_user_info_t.Arguments()
|
|
774
|
+
api_request = APIRequest(
|
|
775
|
+
method=get_current_user_info_t.ENDPOINT_METHOD,
|
|
776
|
+
endpoint=get_current_user_info_t.ENDPOINT_PATH,
|
|
777
|
+
args=args,
|
|
778
|
+
request_options=_request_options,
|
|
779
|
+
)
|
|
780
|
+
return self.do_request(api_request=api_request, return_type=get_current_user_info_t.Data)
|
|
781
|
+
|
|
524
782
|
def get_curve(
|
|
525
783
|
self,
|
|
526
784
|
*,
|
|
527
|
-
recipe_output_id:
|
|
528
|
-
recipe_input_id:
|
|
785
|
+
recipe_output_id: base_t.ObjectId | None = None,
|
|
786
|
+
recipe_input_id: base_t.ObjectId | None = None,
|
|
787
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
529
788
|
) -> get_curve_t.Data:
|
|
530
789
|
"""Returns an array of values for the specified curve id.
|
|
531
790
|
|
|
@@ -540,6 +799,7 @@ class ClientMethods(ABC):
|
|
|
540
799
|
method=get_curve_t.ENDPOINT_METHOD,
|
|
541
800
|
endpoint=get_curve_t.ENDPOINT_PATH,
|
|
542
801
|
args=args,
|
|
802
|
+
request_options=_request_options,
|
|
543
803
|
)
|
|
544
804
|
return self.do_request(api_request=api_request, return_type=get_curve_t.Data)
|
|
545
805
|
|
|
@@ -548,6 +808,7 @@ class ClientMethods(ABC):
|
|
|
548
808
|
*,
|
|
549
809
|
entity_ids: list[base_t.ObjectId],
|
|
550
810
|
entity_type: entity_t.EntityType,
|
|
811
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
551
812
|
) -> get_entities_data_t.Data:
|
|
552
813
|
"""Gets the details for a passed entity
|
|
553
814
|
|
|
@@ -562,6 +823,7 @@ class ClientMethods(ABC):
|
|
|
562
823
|
method=get_entities_data_t.ENDPOINT_METHOD,
|
|
563
824
|
endpoint=get_entities_data_t.ENDPOINT_PATH,
|
|
564
825
|
args=args,
|
|
826
|
+
request_options=_request_options,
|
|
565
827
|
)
|
|
566
828
|
return self.do_request(api_request=api_request, return_type=get_entities_data_t.Data)
|
|
567
829
|
|
|
@@ -569,10 +831,11 @@ class ClientMethods(ABC):
|
|
|
569
831
|
self,
|
|
570
832
|
*,
|
|
571
833
|
material_family_id: base_t.ObjectId,
|
|
572
|
-
input_ids:
|
|
573
|
-
is_parameter:
|
|
574
|
-
offset:
|
|
575
|
-
limit:
|
|
834
|
+
input_ids: list[base_t.ObjectId] | None,
|
|
835
|
+
is_parameter: bool | None,
|
|
836
|
+
offset: int | None = None,
|
|
837
|
+
limit: int | None = None,
|
|
838
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
576
839
|
) -> get_input_data_t.Data:
|
|
577
840
|
"""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
|
|
578
841
|
|
|
@@ -593,6 +856,7 @@ class ClientMethods(ABC):
|
|
|
593
856
|
method=get_input_data_t.ENDPOINT_METHOD,
|
|
594
857
|
endpoint=get_input_data_t.ENDPOINT_PATH,
|
|
595
858
|
args=args,
|
|
859
|
+
request_options=_request_options,
|
|
596
860
|
)
|
|
597
861
|
return self.do_request(api_request=api_request, return_type=get_input_data_t.Data)
|
|
598
862
|
|
|
@@ -600,6 +864,7 @@ class ClientMethods(ABC):
|
|
|
600
864
|
self,
|
|
601
865
|
*,
|
|
602
866
|
material_family_id: base_t.ObjectId,
|
|
867
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
603
868
|
) -> get_input_group_names_t.Data:
|
|
604
869
|
"""Gets the name of all input groups in a material family that either the user created, or are shared to all users.
|
|
605
870
|
|
|
@@ -612,6 +877,7 @@ class ClientMethods(ABC):
|
|
|
612
877
|
method=get_input_group_names_t.ENDPOINT_METHOD,
|
|
613
878
|
endpoint=get_input_group_names_t.ENDPOINT_PATH,
|
|
614
879
|
args=args,
|
|
880
|
+
request_options=_request_options,
|
|
615
881
|
)
|
|
616
882
|
return self.do_request(api_request=api_request, return_type=get_input_group_names_t.Data)
|
|
617
883
|
|
|
@@ -619,9 +885,10 @@ class ClientMethods(ABC):
|
|
|
619
885
|
self,
|
|
620
886
|
*,
|
|
621
887
|
material_family_id: base_t.ObjectId,
|
|
622
|
-
is_parameter:
|
|
623
|
-
offset:
|
|
624
|
-
limit:
|
|
888
|
+
is_parameter: bool | None,
|
|
889
|
+
offset: int | None = None,
|
|
890
|
+
limit: int | None = None,
|
|
891
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
625
892
|
) -> get_input_names_t.Data:
|
|
626
893
|
"""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
|
|
627
894
|
|
|
@@ -640,6 +907,7 @@ class ClientMethods(ABC):
|
|
|
640
907
|
method=get_input_names_t.ENDPOINT_METHOD,
|
|
641
908
|
endpoint=get_input_names_t.ENDPOINT_PATH,
|
|
642
909
|
args=args,
|
|
910
|
+
request_options=_request_options,
|
|
643
911
|
)
|
|
644
912
|
return self.do_request(api_request=api_request, return_type=get_input_names_t.Data)
|
|
645
913
|
|
|
@@ -647,6 +915,7 @@ class ClientMethods(ABC):
|
|
|
647
915
|
self,
|
|
648
916
|
*,
|
|
649
917
|
input_ids: list[base_t.ObjectId],
|
|
918
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
650
919
|
) -> get_inputs_data_t.Data:
|
|
651
920
|
"""Gets the details for passed input ids
|
|
652
921
|
|
|
@@ -659,6 +928,7 @@ class ClientMethods(ABC):
|
|
|
659
928
|
method=get_inputs_data_t.ENDPOINT_METHOD,
|
|
660
929
|
endpoint=get_inputs_data_t.ENDPOINT_PATH,
|
|
661
930
|
args=args,
|
|
931
|
+
request_options=_request_options,
|
|
662
932
|
)
|
|
663
933
|
return self.do_request(api_request=api_request, return_type=get_inputs_data_t.Data)
|
|
664
934
|
|
|
@@ -666,9 +936,10 @@ class ClientMethods(ABC):
|
|
|
666
936
|
self,
|
|
667
937
|
*,
|
|
668
938
|
material_family_id: base_t.ObjectId,
|
|
669
|
-
output_ids:
|
|
670
|
-
offset:
|
|
671
|
-
limit:
|
|
939
|
+
output_ids: list[base_t.ObjectId] | None = None,
|
|
940
|
+
offset: int | None = None,
|
|
941
|
+
limit: int | None = None,
|
|
942
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
672
943
|
) -> get_output_data_t.Data:
|
|
673
944
|
"""Gets the attribute, categorization and other metadata associated with a set of outputs
|
|
674
945
|
|
|
@@ -687,6 +958,7 @@ class ClientMethods(ABC):
|
|
|
687
958
|
method=get_output_data_t.ENDPOINT_METHOD,
|
|
688
959
|
endpoint=get_output_data_t.ENDPOINT_PATH,
|
|
689
960
|
args=args,
|
|
961
|
+
request_options=_request_options,
|
|
690
962
|
)
|
|
691
963
|
return self.do_request(api_request=api_request, return_type=get_output_data_t.Data)
|
|
692
964
|
|
|
@@ -694,8 +966,9 @@ class ClientMethods(ABC):
|
|
|
694
966
|
self,
|
|
695
967
|
*,
|
|
696
968
|
material_family_id: base_t.ObjectId,
|
|
697
|
-
offset:
|
|
698
|
-
limit:
|
|
969
|
+
offset: int | None = None,
|
|
970
|
+
limit: int | None = None,
|
|
971
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
699
972
|
) -> get_output_names_t.Data:
|
|
700
973
|
"""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
|
|
701
974
|
|
|
@@ -712,6 +985,7 @@ class ClientMethods(ABC):
|
|
|
712
985
|
method=get_output_names_t.ENDPOINT_METHOD,
|
|
713
986
|
endpoint=get_output_names_t.ENDPOINT_PATH,
|
|
714
987
|
args=args,
|
|
988
|
+
request_options=_request_options,
|
|
715
989
|
)
|
|
716
990
|
return self.do_request(api_request=api_request, return_type=get_output_names_t.Data)
|
|
717
991
|
|
|
@@ -719,7 +993,8 @@ class ClientMethods(ABC):
|
|
|
719
993
|
self,
|
|
720
994
|
*,
|
|
721
995
|
all_material_families: bool,
|
|
722
|
-
material_family_id:
|
|
996
|
+
material_family_id: base_t.ObjectId | None,
|
|
997
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
723
998
|
) -> get_projects_t.Data:
|
|
724
999
|
"""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
|
|
725
1000
|
|
|
@@ -734,6 +1009,7 @@ class ClientMethods(ABC):
|
|
|
734
1009
|
method=get_projects_t.ENDPOINT_METHOD,
|
|
735
1010
|
endpoint=get_projects_t.ENDPOINT_PATH,
|
|
736
1011
|
args=args,
|
|
1012
|
+
request_options=_request_options,
|
|
737
1013
|
)
|
|
738
1014
|
return self.do_request(api_request=api_request, return_type=get_projects_t.Data)
|
|
739
1015
|
|
|
@@ -741,8 +1017,9 @@ class ClientMethods(ABC):
|
|
|
741
1017
|
self,
|
|
742
1018
|
*,
|
|
743
1019
|
project_ids: list[base_t.ObjectId],
|
|
744
|
-
offset:
|
|
745
|
-
limit:
|
|
1020
|
+
offset: int | None = None,
|
|
1021
|
+
limit: int | None = None,
|
|
1022
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
746
1023
|
) -> get_projects_data_t.Data:
|
|
747
1024
|
"""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
|
|
748
1025
|
|
|
@@ -759,6 +1036,7 @@ class ClientMethods(ABC):
|
|
|
759
1036
|
method=get_projects_data_t.ENDPOINT_METHOD,
|
|
760
1037
|
endpoint=get_projects_data_t.ENDPOINT_PATH,
|
|
761
1038
|
args=args,
|
|
1039
|
+
request_options=_request_options,
|
|
762
1040
|
)
|
|
763
1041
|
return self.do_request(api_request=api_request, return_type=get_projects_data_t.Data)
|
|
764
1042
|
|
|
@@ -766,7 +1044,8 @@ class ClientMethods(ABC):
|
|
|
766
1044
|
self,
|
|
767
1045
|
*,
|
|
768
1046
|
recipe_ids: list[base_t.ObjectId],
|
|
769
|
-
calculation_ids:
|
|
1047
|
+
calculation_ids: list[base_t.ObjectId] | None = None,
|
|
1048
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
770
1049
|
) -> get_recipe_calculations_t.Data:
|
|
771
1050
|
"""Gets the calculations for the passed recipes
|
|
772
1051
|
|
|
@@ -781,6 +1060,7 @@ class ClientMethods(ABC):
|
|
|
781
1060
|
method=get_recipe_calculations_t.ENDPOINT_METHOD,
|
|
782
1061
|
endpoint=get_recipe_calculations_t.ENDPOINT_PATH,
|
|
783
1062
|
args=args,
|
|
1063
|
+
request_options=_request_options,
|
|
784
1064
|
)
|
|
785
1065
|
return self.do_request(api_request=api_request, return_type=get_recipe_calculations_t.Data)
|
|
786
1066
|
|
|
@@ -789,7 +1069,8 @@ class ClientMethods(ABC):
|
|
|
789
1069
|
*,
|
|
790
1070
|
recipe_ids: list[base_t.ObjectId],
|
|
791
1071
|
depth: int = 1,
|
|
792
|
-
link_types:
|
|
1072
|
+
link_types: list[recipe_links_t.RecipeLinkType] | None,
|
|
1073
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
793
1074
|
) -> get_recipe_links_t.Data:
|
|
794
1075
|
"""Gets the links for the passed recipes
|
|
795
1076
|
|
|
@@ -806,6 +1087,7 @@ class ClientMethods(ABC):
|
|
|
806
1087
|
method=get_recipe_links_t.ENDPOINT_METHOD,
|
|
807
1088
|
endpoint=get_recipe_links_t.ENDPOINT_PATH,
|
|
808
1089
|
args=args,
|
|
1090
|
+
request_options=_request_options,
|
|
809
1091
|
)
|
|
810
1092
|
return self.do_request(api_request=api_request, return_type=get_recipe_links_t.Data)
|
|
811
1093
|
|
|
@@ -813,9 +1095,10 @@ class ClientMethods(ABC):
|
|
|
813
1095
|
self,
|
|
814
1096
|
*,
|
|
815
1097
|
material_family_id: base_t.ObjectId,
|
|
816
|
-
recipe_metadata_ids:
|
|
817
|
-
offset:
|
|
818
|
-
limit:
|
|
1098
|
+
recipe_metadata_ids: list[base_t.ObjectId] | None,
|
|
1099
|
+
offset: int | None = None,
|
|
1100
|
+
limit: int | None = None,
|
|
1101
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
819
1102
|
) -> get_recipe_metadata_data_t.Data:
|
|
820
1103
|
"""Gets the recipe metadata. Recipe metadata is data associated with experiments that is not an input, output or calculation, such as a sample ID.
|
|
821
1104
|
|
|
@@ -834,6 +1117,7 @@ class ClientMethods(ABC):
|
|
|
834
1117
|
method=get_recipe_metadata_data_t.ENDPOINT_METHOD,
|
|
835
1118
|
endpoint=get_recipe_metadata_data_t.ENDPOINT_PATH,
|
|
836
1119
|
args=args,
|
|
1120
|
+
request_options=_request_options,
|
|
837
1121
|
)
|
|
838
1122
|
return self.do_request(api_request=api_request, return_type=get_recipe_metadata_data_t.Data)
|
|
839
1123
|
|
|
@@ -841,6 +1125,7 @@ class ClientMethods(ABC):
|
|
|
841
1125
|
self,
|
|
842
1126
|
*,
|
|
843
1127
|
project_id: base_t.ObjectId,
|
|
1128
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
844
1129
|
) -> get_recipe_names_t.Data:
|
|
845
1130
|
"""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
|
|
846
1131
|
|
|
@@ -853,6 +1138,7 @@ class ClientMethods(ABC):
|
|
|
853
1138
|
method=get_recipe_names_t.ENDPOINT_METHOD,
|
|
854
1139
|
endpoint=get_recipe_names_t.ENDPOINT_PATH,
|
|
855
1140
|
args=args,
|
|
1141
|
+
request_options=_request_options,
|
|
856
1142
|
)
|
|
857
1143
|
return self.do_request(api_request=api_request, return_type=get_recipe_names_t.Data)
|
|
858
1144
|
|
|
@@ -860,6 +1146,7 @@ class ClientMethods(ABC):
|
|
|
860
1146
|
self,
|
|
861
1147
|
*,
|
|
862
1148
|
recipe_output_ids: list[base_t.ObjectId],
|
|
1149
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
863
1150
|
) -> get_recipe_output_metadata_t.Data:
|
|
864
1151
|
"""Gets the metadata values for the passed recipe outputs
|
|
865
1152
|
|
|
@@ -872,16 +1159,19 @@ class ClientMethods(ABC):
|
|
|
872
1159
|
method=get_recipe_output_metadata_t.ENDPOINT_METHOD,
|
|
873
1160
|
endpoint=get_recipe_output_metadata_t.ENDPOINT_PATH,
|
|
874
1161
|
args=args,
|
|
1162
|
+
request_options=_request_options,
|
|
875
1163
|
)
|
|
876
1164
|
return self.do_request(api_request=api_request, return_type=get_recipe_output_metadata_t.Data)
|
|
877
1165
|
|
|
878
1166
|
def get_recipes_data(
|
|
879
1167
|
self,
|
|
880
1168
|
*,
|
|
881
|
-
recipe_ids:
|
|
882
|
-
project_id:
|
|
883
|
-
offset:
|
|
884
|
-
limit:
|
|
1169
|
+
recipe_ids: list[base_t.ObjectId] | None = None,
|
|
1170
|
+
project_id: base_t.ObjectId | None = None,
|
|
1171
|
+
offset: int | None = None,
|
|
1172
|
+
limit: int | None = None,
|
|
1173
|
+
empty_output_behavior: get_recipes_data_t.RecipeOutputInclusion | None = None,
|
|
1174
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
885
1175
|
) -> get_recipes_data_t.Data:
|
|
886
1176
|
"""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
|
|
887
1177
|
|
|
@@ -889,17 +1179,20 @@ class ClientMethods(ABC):
|
|
|
889
1179
|
:param project_id: The projects to get the data from. Either these or recipe_ids must be filled in
|
|
890
1180
|
:param offset: Used for pagination. All pagination is done in order of Recipe ID. [Pagination More Info](#pagination)
|
|
891
1181
|
: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)
|
|
1182
|
+
: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.
|
|
892
1183
|
"""
|
|
893
1184
|
args = get_recipes_data_t.Arguments(
|
|
894
1185
|
recipe_ids=recipe_ids,
|
|
895
1186
|
project_id=project_id,
|
|
896
1187
|
offset=offset,
|
|
897
1188
|
limit=limit,
|
|
1189
|
+
empty_output_behavior=empty_output_behavior,
|
|
898
1190
|
)
|
|
899
1191
|
api_request = APIRequest(
|
|
900
1192
|
method=get_recipes_data_t.ENDPOINT_METHOD,
|
|
901
1193
|
endpoint=get_recipes_data_t.ENDPOINT_PATH,
|
|
902
1194
|
args=args,
|
|
1195
|
+
request_options=_request_options,
|
|
903
1196
|
)
|
|
904
1197
|
return self.do_request(api_request=api_request, return_type=get_recipes_data_t.Data)
|
|
905
1198
|
|
|
@@ -909,9 +1202,10 @@ class ClientMethods(ABC):
|
|
|
909
1202
|
entity_type: entity_t.LimitedEntityType,
|
|
910
1203
|
entity_key: identifier_t.IdentifierKey,
|
|
911
1204
|
permission_types: list[entity_t.GrantableEntityPermissionType],
|
|
912
|
-
user_keys:
|
|
913
|
-
user_group_keys:
|
|
914
|
-
all_users:
|
|
1205
|
+
user_keys: list[identifier_t.IdentifierKey] | None = None,
|
|
1206
|
+
user_group_keys: list[identifier_t.IdentifierKey] | None = None,
|
|
1207
|
+
all_users: bool | None = None,
|
|
1208
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
915
1209
|
) -> grant_entity_permissions_t.Data:
|
|
916
1210
|
"""Grant entity permissions to a list of users or user groups or to all users.
|
|
917
1211
|
|
|
@@ -928,6 +1222,7 @@ class ClientMethods(ABC):
|
|
|
928
1222
|
method=grant_entity_permissions_t.ENDPOINT_METHOD,
|
|
929
1223
|
endpoint=grant_entity_permissions_t.ENDPOINT_PATH,
|
|
930
1224
|
args=args,
|
|
1225
|
+
request_options=_request_options,
|
|
931
1226
|
)
|
|
932
1227
|
return self.do_request(api_request=api_request, return_type=grant_entity_permissions_t.Data)
|
|
933
1228
|
|
|
@@ -936,8 +1231,9 @@ class ClientMethods(ABC):
|
|
|
936
1231
|
*,
|
|
937
1232
|
uploader_key: identifier_t.IdentifierKey,
|
|
938
1233
|
destination: generic_upload_t.UploadDestination,
|
|
939
|
-
file_id:
|
|
940
|
-
file_ids:
|
|
1234
|
+
file_id: base_t.ObjectId | None = None,
|
|
1235
|
+
file_ids: list[base_t.ObjectId] | None = None,
|
|
1236
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
941
1237
|
) -> invoke_uploader_t.Data:
|
|
942
1238
|
"""Runs a file through an uploader.
|
|
943
1239
|
|
|
@@ -953,17 +1249,50 @@ class ClientMethods(ABC):
|
|
|
953
1249
|
method=invoke_uploader_t.ENDPOINT_METHOD,
|
|
954
1250
|
endpoint=invoke_uploader_t.ENDPOINT_PATH,
|
|
955
1251
|
args=args,
|
|
1252
|
+
request_options=_request_options,
|
|
956
1253
|
)
|
|
957
1254
|
return self.do_request(api_request=api_request, return_type=invoke_uploader_t.Data)
|
|
958
1255
|
|
|
1256
|
+
def list_aggregate(
|
|
1257
|
+
self,
|
|
1258
|
+
*,
|
|
1259
|
+
config_reference: str,
|
|
1260
|
+
attribute_values: list[list_aggregate_t.AttributeValue] | None = None,
|
|
1261
|
+
offset: int | None = None,
|
|
1262
|
+
limit: int | None = None,
|
|
1263
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1264
|
+
) -> list_aggregate_t.Data:
|
|
1265
|
+
"""Uses a structured loading configuration to list aggregated data from the platform
|
|
1266
|
+
|
|
1267
|
+
:param config_reference: The configuration reference name for the listing config
|
|
1268
|
+
:param attribute_values: Attributes to pass to the configuration for parameterizing filters
|
|
1269
|
+
:param offset: Used for pagination. Pagination is done based on the sorting of the config. [Pagination More Info](#pagination)
|
|
1270
|
+
: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)
|
|
1271
|
+
"""
|
|
1272
|
+
args = list_aggregate_t.Arguments(
|
|
1273
|
+
config_reference=config_reference,
|
|
1274
|
+
attribute_values=attribute_values,
|
|
1275
|
+
offset=offset,
|
|
1276
|
+
limit=limit,
|
|
1277
|
+
)
|
|
1278
|
+
api_request = APIRequest(
|
|
1279
|
+
method=list_aggregate_t.ENDPOINT_METHOD,
|
|
1280
|
+
endpoint=list_aggregate_t.ENDPOINT_PATH,
|
|
1281
|
+
args=args,
|
|
1282
|
+
request_options=_request_options,
|
|
1283
|
+
)
|
|
1284
|
+
return self.do_request(api_request=api_request, return_type=list_aggregate_t.Data)
|
|
1285
|
+
|
|
959
1286
|
def list_entities(
|
|
960
1287
|
self,
|
|
961
1288
|
*,
|
|
962
1289
|
config_reference: str,
|
|
963
|
-
entity_type:
|
|
964
|
-
attributes:
|
|
965
|
-
offset:
|
|
966
|
-
limit:
|
|
1290
|
+
entity_type: entity_t.EntityType | None = None,
|
|
1291
|
+
attributes: dict[OpaqueKey, base_t.JsonValue] | None = None,
|
|
1292
|
+
offset: int | None = None,
|
|
1293
|
+
limit: int | None = None,
|
|
1294
|
+
additional_filter_configs: list[list_entities_t.AdditionalFilterConfig] | None = None,
|
|
1295
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
967
1296
|
) -> list_entities_t.Data:
|
|
968
1297
|
"""Uses a structured loading configuration to list entities in the system
|
|
969
1298
|
|
|
@@ -972,6 +1301,7 @@ class ClientMethods(ABC):
|
|
|
972
1301
|
:param attributes: Attributes to pass to the configuration for parameterizing filters
|
|
973
1302
|
:param offset: Used for pagination. Pagination is done based on the sorting of the config. [Pagination More Info](#pagination)
|
|
974
1303
|
: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)
|
|
1304
|
+
:param additional_filter_configs: Advanced property: Additional filter configurations to apply to the listing. A maximum of 10 additional filter configs are supported.
|
|
975
1305
|
"""
|
|
976
1306
|
args = list_entities_t.Arguments(
|
|
977
1307
|
entity_type=entity_type,
|
|
@@ -979,11 +1309,13 @@ class ClientMethods(ABC):
|
|
|
979
1309
|
attributes=attributes,
|
|
980
1310
|
offset=offset,
|
|
981
1311
|
limit=limit,
|
|
1312
|
+
additional_filter_configs=additional_filter_configs,
|
|
982
1313
|
)
|
|
983
1314
|
api_request = APIRequest(
|
|
984
1315
|
method=list_entities_t.ENDPOINT_METHOD,
|
|
985
1316
|
endpoint=list_entities_t.ENDPOINT_PATH,
|
|
986
1317
|
args=args,
|
|
1318
|
+
request_options=_request_options,
|
|
987
1319
|
)
|
|
988
1320
|
return self.do_request(api_request=api_request, return_type=list_entities_t.Data)
|
|
989
1321
|
|
|
@@ -992,8 +1324,9 @@ class ClientMethods(ABC):
|
|
|
992
1324
|
*,
|
|
993
1325
|
spec: id_source_t.IdSourceSpec,
|
|
994
1326
|
search_label: str,
|
|
995
|
-
offset:
|
|
996
|
-
limit:
|
|
1327
|
+
offset: int | None = None,
|
|
1328
|
+
limit: int | None = None,
|
|
1329
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
997
1330
|
) -> list_id_source_t.Data:
|
|
998
1331
|
"""Lists id and label pairs
|
|
999
1332
|
|
|
@@ -1012,6 +1345,7 @@ class ClientMethods(ABC):
|
|
|
1012
1345
|
method=list_id_source_t.ENDPOINT_METHOD,
|
|
1013
1346
|
endpoint=list_id_source_t.ENDPOINT_PATH,
|
|
1014
1347
|
args=args,
|
|
1348
|
+
request_options=_request_options,
|
|
1015
1349
|
)
|
|
1016
1350
|
return self.do_request(api_request=api_request, return_type=list_id_source_t.Data)
|
|
1017
1351
|
|
|
@@ -1020,7 +1354,8 @@ class ClientMethods(ABC):
|
|
|
1020
1354
|
*,
|
|
1021
1355
|
entity_key: identifier_t.IdentifierKey,
|
|
1022
1356
|
entity_type: entity_t.EntityType,
|
|
1023
|
-
globally_removable:
|
|
1357
|
+
globally_removable: bool | None = None,
|
|
1358
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1024
1359
|
) -> lock_entity_t.Data:
|
|
1025
1360
|
"""Lock an entity
|
|
1026
1361
|
|
|
@@ -1036,6 +1371,7 @@ class ClientMethods(ABC):
|
|
|
1036
1371
|
method=lock_entity_t.ENDPOINT_METHOD,
|
|
1037
1372
|
endpoint=lock_entity_t.ENDPOINT_PATH,
|
|
1038
1373
|
args=args,
|
|
1374
|
+
request_options=_request_options,
|
|
1039
1375
|
)
|
|
1040
1376
|
return self.do_request(api_request=api_request, return_type=lock_entity_t.Data)
|
|
1041
1377
|
|
|
@@ -1045,8 +1381,9 @@ class ClientMethods(ABC):
|
|
|
1045
1381
|
type: lock_recipes_t.RecipeLockType = lock_recipes_t.RecipeLockType.ALL,
|
|
1046
1382
|
recipes: list[identifier_t.IdentifierKey],
|
|
1047
1383
|
globally_removable: bool,
|
|
1048
|
-
lock_samples:
|
|
1049
|
-
comments:
|
|
1384
|
+
lock_samples: bool | None = None,
|
|
1385
|
+
comments: str | None = None,
|
|
1386
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1050
1387
|
) -> lock_recipes_t.Data:
|
|
1051
1388
|
"""Lock experiments. Experiments will require unlocking to be editable. Edits to the experiments are blocked while they are locked.
|
|
1052
1389
|
|
|
@@ -1070,14 +1407,38 @@ class ClientMethods(ABC):
|
|
|
1070
1407
|
method=lock_recipes_t.ENDPOINT_METHOD,
|
|
1071
1408
|
endpoint=lock_recipes_t.ENDPOINT_PATH,
|
|
1072
1409
|
args=args,
|
|
1410
|
+
request_options=_request_options,
|
|
1073
1411
|
)
|
|
1074
1412
|
return self.do_request(api_request=api_request, return_type=lock_recipes_t.Data)
|
|
1075
1413
|
|
|
1414
|
+
def lookup_entity(
|
|
1415
|
+
self,
|
|
1416
|
+
*,
|
|
1417
|
+
entity_type: entity_t.EntityType,
|
|
1418
|
+
query: lookup_entity_t.LookupEntityQuery,
|
|
1419
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1420
|
+
) -> lookup_entity_t.Data:
|
|
1421
|
+
"""Look up an entity based on an identifier or field values
|
|
1422
|
+
|
|
1423
|
+
"""
|
|
1424
|
+
args = lookup_entity_t.Arguments(
|
|
1425
|
+
entity_type=entity_type,
|
|
1426
|
+
query=query,
|
|
1427
|
+
)
|
|
1428
|
+
api_request = APIRequest(
|
|
1429
|
+
method=lookup_entity_t.ENDPOINT_METHOD,
|
|
1430
|
+
endpoint=lookup_entity_t.ENDPOINT_PATH,
|
|
1431
|
+
args=args,
|
|
1432
|
+
request_options=_request_options,
|
|
1433
|
+
)
|
|
1434
|
+
return self.do_request(api_request=api_request, return_type=lookup_entity_t.Data)
|
|
1435
|
+
|
|
1076
1436
|
def match_id_source(
|
|
1077
1437
|
self,
|
|
1078
1438
|
*,
|
|
1079
1439
|
spec: id_source_t.IdSourceSpec,
|
|
1080
1440
|
names: list[str],
|
|
1441
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1081
1442
|
) -> match_id_source_t.Data:
|
|
1082
1443
|
"""Lists id and label pairs
|
|
1083
1444
|
|
|
@@ -1092,14 +1453,66 @@ class ClientMethods(ABC):
|
|
|
1092
1453
|
method=match_id_source_t.ENDPOINT_METHOD,
|
|
1093
1454
|
endpoint=match_id_source_t.ENDPOINT_PATH,
|
|
1094
1455
|
args=args,
|
|
1456
|
+
request_options=_request_options,
|
|
1095
1457
|
)
|
|
1096
1458
|
return self.do_request(api_request=api_request, return_type=match_id_source_t.Data)
|
|
1097
1459
|
|
|
1460
|
+
def push_notification(
|
|
1461
|
+
self,
|
|
1462
|
+
*,
|
|
1463
|
+
notification_targets: list[notifications_t.NotificationTarget],
|
|
1464
|
+
subject: str,
|
|
1465
|
+
message: str,
|
|
1466
|
+
display_notice: bool = False,
|
|
1467
|
+
entity: entity_t.EntityIdentifier | None = None,
|
|
1468
|
+
notice_configuration: notices_t.NotificationNoticeConfiguration | None = None,
|
|
1469
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1470
|
+
) -> push_notification_t.Data:
|
|
1471
|
+
"""Push a notification to a user or user group
|
|
1472
|
+
|
|
1473
|
+
"""
|
|
1474
|
+
args = push_notification_t.Arguments(
|
|
1475
|
+
notification_targets=notification_targets,
|
|
1476
|
+
subject=subject,
|
|
1477
|
+
message=message,
|
|
1478
|
+
entity=entity,
|
|
1479
|
+
display_notice=display_notice,
|
|
1480
|
+
notice_configuration=notice_configuration,
|
|
1481
|
+
)
|
|
1482
|
+
api_request = APIRequest(
|
|
1483
|
+
method=push_notification_t.ENDPOINT_METHOD,
|
|
1484
|
+
endpoint=push_notification_t.ENDPOINT_PATH,
|
|
1485
|
+
args=args,
|
|
1486
|
+
request_options=_request_options,
|
|
1487
|
+
)
|
|
1488
|
+
return self.do_request(api_request=api_request, return_type=push_notification_t.Data)
|
|
1489
|
+
|
|
1490
|
+
def register_sockets_token(
|
|
1491
|
+
self,
|
|
1492
|
+
*,
|
|
1493
|
+
socket_request: sockets_t.SocketTokenRequest,
|
|
1494
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1495
|
+
) -> register_sockets_token_t.Data:
|
|
1496
|
+
"""Request token for connecting to sockets server
|
|
1497
|
+
|
|
1498
|
+
"""
|
|
1499
|
+
args = register_sockets_token_t.Arguments(
|
|
1500
|
+
socket_request=socket_request,
|
|
1501
|
+
)
|
|
1502
|
+
api_request = APIRequest(
|
|
1503
|
+
method=register_sockets_token_t.ENDPOINT_METHOD,
|
|
1504
|
+
endpoint=register_sockets_token_t.ENDPOINT_PATH,
|
|
1505
|
+
args=args,
|
|
1506
|
+
request_options=_request_options,
|
|
1507
|
+
)
|
|
1508
|
+
return self.do_request(api_request=api_request, return_type=register_sockets_token_t.Data)
|
|
1509
|
+
|
|
1098
1510
|
def remove_recipe_from_project(
|
|
1099
1511
|
self,
|
|
1100
1512
|
*,
|
|
1101
1513
|
recipe_key: identifier_t.IdentifierKey,
|
|
1102
1514
|
project_key: identifier_t.IdentifierKey,
|
|
1515
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1103
1516
|
) -> remove_recipe_from_project_t.Data:
|
|
1104
1517
|
"""Removes a recipe from a project
|
|
1105
1518
|
|
|
@@ -1114,6 +1527,7 @@ class ClientMethods(ABC):
|
|
|
1114
1527
|
method=remove_recipe_from_project_t.ENDPOINT_METHOD,
|
|
1115
1528
|
endpoint=remove_recipe_from_project_t.ENDPOINT_PATH,
|
|
1116
1529
|
args=args,
|
|
1530
|
+
request_options=_request_options,
|
|
1117
1531
|
)
|
|
1118
1532
|
return self.do_request(api_request=api_request, return_type=remove_recipe_from_project_t.Data)
|
|
1119
1533
|
|
|
@@ -1122,7 +1536,8 @@ class ClientMethods(ABC):
|
|
|
1122
1536
|
*,
|
|
1123
1537
|
recipe_from_key: identifier_t.IdentifierKey,
|
|
1124
1538
|
recipe_to_key: identifier_t.IdentifierKey,
|
|
1125
|
-
link_type: typing.
|
|
1539
|
+
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],
|
|
1540
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1126
1541
|
) -> remove_recipe_link_t.Data:
|
|
1127
1542
|
"""Remove a link between two recipes. Skip if the link doesn't already exist
|
|
1128
1543
|
|
|
@@ -1139,14 +1554,16 @@ class ClientMethods(ABC):
|
|
|
1139
1554
|
method=remove_recipe_link_t.ENDPOINT_METHOD,
|
|
1140
1555
|
endpoint=remove_recipe_link_t.ENDPOINT_PATH,
|
|
1141
1556
|
args=args,
|
|
1557
|
+
request_options=_request_options,
|
|
1142
1558
|
)
|
|
1143
1559
|
return self.do_request(api_request=api_request, return_type=remove_recipe_link_t.Data)
|
|
1144
1560
|
|
|
1145
1561
|
def resolve_entity_ids(
|
|
1146
1562
|
self,
|
|
1147
1563
|
*,
|
|
1148
|
-
entity_ids: list[
|
|
1564
|
+
entity_ids: list[str | base_t.ObjectId],
|
|
1149
1565
|
entity_type: entity_t.EntityType,
|
|
1566
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1150
1567
|
) -> resolve_entity_ids_t.Data:
|
|
1151
1568
|
"""Gets the names for passed in ids
|
|
1152
1569
|
|
|
@@ -1161,6 +1578,7 @@ class ClientMethods(ABC):
|
|
|
1161
1578
|
method=resolve_entity_ids_t.ENDPOINT_METHOD,
|
|
1162
1579
|
endpoint=resolve_entity_ids_t.ENDPOINT_PATH,
|
|
1163
1580
|
args=args,
|
|
1581
|
+
request_options=_request_options,
|
|
1164
1582
|
)
|
|
1165
1583
|
return self.do_request(api_request=api_request, return_type=resolve_entity_ids_t.Data)
|
|
1166
1584
|
|
|
@@ -1168,6 +1586,7 @@ class ClientMethods(ABC):
|
|
|
1168
1586
|
self,
|
|
1169
1587
|
*,
|
|
1170
1588
|
requested_conditions: list[resolve_output_conditions_t.ConditionRequest],
|
|
1589
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1171
1590
|
) -> resolve_output_conditions_t.Data:
|
|
1172
1591
|
"""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.
|
|
1173
1592
|
|
|
@@ -1179,6 +1598,7 @@ class ClientMethods(ABC):
|
|
|
1179
1598
|
method=resolve_output_conditions_t.ENDPOINT_METHOD,
|
|
1180
1599
|
endpoint=resolve_output_conditions_t.ENDPOINT_PATH,
|
|
1181
1600
|
args=args,
|
|
1601
|
+
request_options=_request_options,
|
|
1182
1602
|
)
|
|
1183
1603
|
return self.do_request(api_request=api_request, return_type=resolve_output_conditions_t.Data)
|
|
1184
1604
|
|
|
@@ -1186,7 +1606,8 @@ class ClientMethods(ABC):
|
|
|
1186
1606
|
self,
|
|
1187
1607
|
*,
|
|
1188
1608
|
trigger_ref_name: str,
|
|
1189
|
-
entity:
|
|
1609
|
+
entity: entity_t.Entity | None = None,
|
|
1610
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1190
1611
|
) -> run_trigger_t.Data:
|
|
1191
1612
|
"""Runs a trigger. Requires admin access
|
|
1192
1613
|
|
|
@@ -1199,6 +1620,7 @@ class ClientMethods(ABC):
|
|
|
1199
1620
|
method=run_trigger_t.ENDPOINT_METHOD,
|
|
1200
1621
|
endpoint=run_trigger_t.ENDPOINT_PATH,
|
|
1201
1622
|
args=args,
|
|
1623
|
+
request_options=_request_options,
|
|
1202
1624
|
)
|
|
1203
1625
|
return self.do_request(api_request=api_request, return_type=run_trigger_t.Data)
|
|
1204
1626
|
|
|
@@ -1208,8 +1630,9 @@ class ClientMethods(ABC):
|
|
|
1208
1630
|
scope: set_core_permissions_t.PermissionsScope,
|
|
1209
1631
|
permissions_types: list[permissions_t.CorePermissionType],
|
|
1210
1632
|
update_type: post_base_t.UpdateType,
|
|
1211
|
-
user_group_ids:
|
|
1212
|
-
user_ids:
|
|
1633
|
+
user_group_ids: list[int] | None = None,
|
|
1634
|
+
user_ids: list[int] | None = None,
|
|
1635
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1213
1636
|
) -> set_core_permissions_t.Data:
|
|
1214
1637
|
"""Sets recipe related permissions
|
|
1215
1638
|
|
|
@@ -1229,13 +1652,39 @@ class ClientMethods(ABC):
|
|
|
1229
1652
|
method=set_core_permissions_t.ENDPOINT_METHOD,
|
|
1230
1653
|
endpoint=set_core_permissions_t.ENDPOINT_PATH,
|
|
1231
1654
|
args=args,
|
|
1655
|
+
request_options=_request_options,
|
|
1232
1656
|
)
|
|
1233
1657
|
return self.do_request(api_request=api_request, return_type=set_core_permissions_t.Data)
|
|
1234
1658
|
|
|
1659
|
+
def set_entity_field_values(
|
|
1660
|
+
self,
|
|
1661
|
+
*,
|
|
1662
|
+
entity_identifier: entity_t.EntityIdentifier,
|
|
1663
|
+
field_values: list[field_values_t.FieldArgumentValue],
|
|
1664
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1665
|
+
) -> set_entity_field_values_t.Data:
|
|
1666
|
+
"""Sets field values for an entity
|
|
1667
|
+
|
|
1668
|
+
:param entity_identifier: Entity to update
|
|
1669
|
+
:param field_values: Field values to set
|
|
1670
|
+
"""
|
|
1671
|
+
args = set_entity_field_values_t.Arguments(
|
|
1672
|
+
entity_identifier=entity_identifier,
|
|
1673
|
+
field_values=field_values,
|
|
1674
|
+
)
|
|
1675
|
+
api_request = APIRequest(
|
|
1676
|
+
method=set_entity_field_values_t.ENDPOINT_METHOD,
|
|
1677
|
+
endpoint=set_entity_field_values_t.ENDPOINT_PATH,
|
|
1678
|
+
args=args,
|
|
1679
|
+
request_options=_request_options,
|
|
1680
|
+
)
|
|
1681
|
+
return self.do_request(api_request=api_request, return_type=set_entity_field_values_t.Data)
|
|
1682
|
+
|
|
1235
1683
|
def set_input_attribute_values(
|
|
1236
1684
|
self,
|
|
1237
1685
|
*,
|
|
1238
1686
|
attribute_values: list[set_input_attribute_values_t.InputAttributeValue],
|
|
1687
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1239
1688
|
) -> set_input_attribute_values_t.Data:
|
|
1240
1689
|
"""Sets attribute values for an input
|
|
1241
1690
|
|
|
@@ -1248,6 +1697,7 @@ class ClientMethods(ABC):
|
|
|
1248
1697
|
method=set_input_attribute_values_t.ENDPOINT_METHOD,
|
|
1249
1698
|
endpoint=set_input_attribute_values_t.ENDPOINT_PATH,
|
|
1250
1699
|
args=args,
|
|
1700
|
+
request_options=_request_options,
|
|
1251
1701
|
)
|
|
1252
1702
|
return self.do_request(api_request=api_request, return_type=set_input_attribute_values_t.Data)
|
|
1253
1703
|
|
|
@@ -1255,8 +1705,9 @@ class ClientMethods(ABC):
|
|
|
1255
1705
|
self,
|
|
1256
1706
|
*,
|
|
1257
1707
|
input_key: identifier_t.IdentifierKey,
|
|
1258
|
-
category_id:
|
|
1259
|
-
material_family_ids:
|
|
1708
|
+
category_id: int | None,
|
|
1709
|
+
material_family_ids: list[int] | None = None,
|
|
1710
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1260
1711
|
) -> set_input_category_t.Data:
|
|
1261
1712
|
"""Sets subcategories for an input
|
|
1262
1713
|
|
|
@@ -1273,6 +1724,7 @@ class ClientMethods(ABC):
|
|
|
1273
1724
|
method=set_input_category_t.ENDPOINT_METHOD,
|
|
1274
1725
|
endpoint=set_input_category_t.ENDPOINT_PATH,
|
|
1275
1726
|
args=args,
|
|
1727
|
+
request_options=_request_options,
|
|
1276
1728
|
)
|
|
1277
1729
|
return self.do_request(api_request=api_request, return_type=set_input_category_t.Data)
|
|
1278
1730
|
|
|
@@ -1282,6 +1734,7 @@ class ClientMethods(ABC):
|
|
|
1282
1734
|
input_key: identifier_t.IdentifierKey,
|
|
1283
1735
|
subcategory_ids: list[int],
|
|
1284
1736
|
update_type: post_base_t.UpdateType,
|
|
1737
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1285
1738
|
) -> set_input_subcategories_t.Data:
|
|
1286
1739
|
"""Sets subcategories for an input
|
|
1287
1740
|
|
|
@@ -1298,6 +1751,7 @@ class ClientMethods(ABC):
|
|
|
1298
1751
|
method=set_input_subcategories_t.ENDPOINT_METHOD,
|
|
1299
1752
|
endpoint=set_input_subcategories_t.ENDPOINT_PATH,
|
|
1300
1753
|
args=args,
|
|
1754
|
+
request_options=_request_options,
|
|
1301
1755
|
)
|
|
1302
1756
|
return self.do_request(api_request=api_request, return_type=set_input_subcategories_t.Data)
|
|
1303
1757
|
|
|
@@ -1306,6 +1760,7 @@ class ClientMethods(ABC):
|
|
|
1306
1760
|
*,
|
|
1307
1761
|
input_key: identifier_t.IdentifierKey,
|
|
1308
1762
|
intermediate_type: set_intermediate_type_t.IntermediateType,
|
|
1763
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1309
1764
|
) -> set_intermediate_type_t.Data:
|
|
1310
1765
|
"""Sets the type of an intermediate ingredient.
|
|
1311
1766
|
|
|
@@ -1320,6 +1775,7 @@ class ClientMethods(ABC):
|
|
|
1320
1775
|
method=set_intermediate_type_t.ENDPOINT_METHOD,
|
|
1321
1776
|
endpoint=set_intermediate_type_t.ENDPOINT_PATH,
|
|
1322
1777
|
args=args,
|
|
1778
|
+
request_options=_request_options,
|
|
1323
1779
|
)
|
|
1324
1780
|
return self.do_request(api_request=api_request, return_type=set_intermediate_type_t.Data)
|
|
1325
1781
|
|
|
@@ -1327,6 +1783,7 @@ class ClientMethods(ABC):
|
|
|
1327
1783
|
self,
|
|
1328
1784
|
*,
|
|
1329
1785
|
input_data: list[set_recipe_inputs_t.RecipeInputValue],
|
|
1786
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1330
1787
|
) -> set_recipe_inputs_t.Data:
|
|
1331
1788
|
"""Sets inputs values for an experiment. Values set can be numeric, text or categorical types in the Uncountable system
|
|
1332
1789
|
|
|
@@ -1339,6 +1796,7 @@ class ClientMethods(ABC):
|
|
|
1339
1796
|
method=set_recipe_inputs_t.ENDPOINT_METHOD,
|
|
1340
1797
|
endpoint=set_recipe_inputs_t.ENDPOINT_PATH,
|
|
1341
1798
|
args=args,
|
|
1799
|
+
request_options=_request_options,
|
|
1342
1800
|
)
|
|
1343
1801
|
return self.do_request(api_request=api_request, return_type=set_recipe_inputs_t.Data)
|
|
1344
1802
|
|
|
@@ -1347,6 +1805,7 @@ class ClientMethods(ABC):
|
|
|
1347
1805
|
*,
|
|
1348
1806
|
recipe_key: identifier_t.IdentifierKey,
|
|
1349
1807
|
recipe_metadata: list[recipe_metadata_t.MetadataValue],
|
|
1808
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1350
1809
|
) -> set_recipe_metadata_t.Data:
|
|
1351
1810
|
"""Set metadata values on a recipe
|
|
1352
1811
|
|
|
@@ -1361,6 +1820,7 @@ class ClientMethods(ABC):
|
|
|
1361
1820
|
method=set_recipe_metadata_t.ENDPOINT_METHOD,
|
|
1362
1821
|
endpoint=set_recipe_metadata_t.ENDPOINT_PATH,
|
|
1363
1822
|
args=args,
|
|
1823
|
+
request_options=_request_options,
|
|
1364
1824
|
)
|
|
1365
1825
|
return self.do_request(api_request=api_request, return_type=set_recipe_metadata_t.Data)
|
|
1366
1826
|
|
|
@@ -1368,6 +1828,7 @@ class ClientMethods(ABC):
|
|
|
1368
1828
|
self,
|
|
1369
1829
|
*,
|
|
1370
1830
|
updates: list[set_recipe_output_annotations_t.RecipeOutputUpdateAnnotations],
|
|
1831
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1371
1832
|
) -> set_recipe_output_annotations_t.Data:
|
|
1372
1833
|
"""Update annotations for an experiments outputs
|
|
1373
1834
|
|
|
@@ -1380,6 +1841,7 @@ class ClientMethods(ABC):
|
|
|
1380
1841
|
method=set_recipe_output_annotations_t.ENDPOINT_METHOD,
|
|
1381
1842
|
endpoint=set_recipe_output_annotations_t.ENDPOINT_PATH,
|
|
1382
1843
|
args=args,
|
|
1844
|
+
request_options=_request_options,
|
|
1383
1845
|
)
|
|
1384
1846
|
return self.do_request(api_request=api_request, return_type=set_recipe_output_annotations_t.Data)
|
|
1385
1847
|
|
|
@@ -1387,6 +1849,7 @@ class ClientMethods(ABC):
|
|
|
1387
1849
|
self,
|
|
1388
1850
|
*,
|
|
1389
1851
|
output_file_data: set_recipe_output_file_t.RecipeOutputFileValue,
|
|
1852
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1390
1853
|
) -> set_recipe_output_file_t.Data:
|
|
1391
1854
|
"""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
|
|
1392
1855
|
|
|
@@ -1399,6 +1862,7 @@ class ClientMethods(ABC):
|
|
|
1399
1862
|
method=set_recipe_output_file_t.ENDPOINT_METHOD,
|
|
1400
1863
|
endpoint=set_recipe_output_file_t.ENDPOINT_PATH,
|
|
1401
1864
|
args=args,
|
|
1865
|
+
request_options=_request_options,
|
|
1402
1866
|
)
|
|
1403
1867
|
return self.do_request(api_request=api_request, return_type=set_recipe_output_file_t.Data)
|
|
1404
1868
|
|
|
@@ -1406,6 +1870,7 @@ class ClientMethods(ABC):
|
|
|
1406
1870
|
self,
|
|
1407
1871
|
*,
|
|
1408
1872
|
output_data: list[set_recipe_outputs_t.RecipeOutputValue],
|
|
1873
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1409
1874
|
) -> set_recipe_outputs_t.Data:
|
|
1410
1875
|
"""Sets output values for an experiment. Values set can be numeric, text or categorical types in the Uncountable system
|
|
1411
1876
|
|
|
@@ -1418,6 +1883,7 @@ class ClientMethods(ABC):
|
|
|
1418
1883
|
method=set_recipe_outputs_t.ENDPOINT_METHOD,
|
|
1419
1884
|
endpoint=set_recipe_outputs_t.ENDPOINT_PATH,
|
|
1420
1885
|
args=args,
|
|
1886
|
+
request_options=_request_options,
|
|
1421
1887
|
)
|
|
1422
1888
|
return self.do_request(api_request=api_request, return_type=set_recipe_outputs_t.Data)
|
|
1423
1889
|
|
|
@@ -1426,6 +1892,7 @@ class ClientMethods(ABC):
|
|
|
1426
1892
|
*,
|
|
1427
1893
|
recipe_key: identifier_t.IdentifierKey,
|
|
1428
1894
|
recipe_tag_update: set_recipe_tags_t.RecipeTagUpdate,
|
|
1895
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1429
1896
|
) -> set_recipe_tags_t.Data:
|
|
1430
1897
|
"""Modifies recipes tags for a recipe
|
|
1431
1898
|
|
|
@@ -1440,14 +1907,46 @@ class ClientMethods(ABC):
|
|
|
1440
1907
|
method=set_recipe_tags_t.ENDPOINT_METHOD,
|
|
1441
1908
|
endpoint=set_recipe_tags_t.ENDPOINT_PATH,
|
|
1442
1909
|
args=args,
|
|
1910
|
+
request_options=_request_options,
|
|
1443
1911
|
)
|
|
1444
1912
|
return self.do_request(api_request=api_request, return_type=set_recipe_tags_t.Data)
|
|
1445
1913
|
|
|
1914
|
+
def set_recipe_total(
|
|
1915
|
+
self,
|
|
1916
|
+
*,
|
|
1917
|
+
recipe_key: identifier_t.IdentifierKey,
|
|
1918
|
+
value: set_recipe_total_t.ValueNumeric,
|
|
1919
|
+
recipe_workflow_step_identifier: recipe_workflow_steps_t.RecipeWorkflowStepIdentifier | None = None,
|
|
1920
|
+
calculation_key: identifier_t.IdentifierKey | None = None,
|
|
1921
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1922
|
+
) -> set_recipe_total_t.Data:
|
|
1923
|
+
"""Updates the Set Total value for a recipe or one of its workflow steps
|
|
1924
|
+
|
|
1925
|
+
:param recipe_key: Identifier for the recipe
|
|
1926
|
+
:param recipe_workflow_step_identifier: Identifier for the recipe workflow step
|
|
1927
|
+
:param value: The quantity in mass, volume, or moles to set for the total
|
|
1928
|
+
:param calculation_key: The linked basis calculation to set
|
|
1929
|
+
"""
|
|
1930
|
+
args = set_recipe_total_t.Arguments(
|
|
1931
|
+
recipe_key=recipe_key,
|
|
1932
|
+
recipe_workflow_step_identifier=recipe_workflow_step_identifier,
|
|
1933
|
+
value=value,
|
|
1934
|
+
calculation_key=calculation_key,
|
|
1935
|
+
)
|
|
1936
|
+
api_request = APIRequest(
|
|
1937
|
+
method=set_recipe_total_t.ENDPOINT_METHOD,
|
|
1938
|
+
endpoint=set_recipe_total_t.ENDPOINT_PATH,
|
|
1939
|
+
args=args,
|
|
1940
|
+
request_options=_request_options,
|
|
1941
|
+
)
|
|
1942
|
+
return self.do_request(api_request=api_request, return_type=set_recipe_total_t.Data)
|
|
1943
|
+
|
|
1446
1944
|
def set_values(
|
|
1447
1945
|
self,
|
|
1448
1946
|
*,
|
|
1449
1947
|
entity: entity_t.Entity,
|
|
1450
1948
|
values: list[field_values_t.ArgumentValueRefName],
|
|
1949
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1451
1950
|
) -> set_values_t.Data:
|
|
1452
1951
|
"""Sets field values for an entity
|
|
1453
1952
|
|
|
@@ -1460,26 +1959,34 @@ class ClientMethods(ABC):
|
|
|
1460
1959
|
method=set_values_t.ENDPOINT_METHOD,
|
|
1461
1960
|
endpoint=set_values_t.ENDPOINT_PATH,
|
|
1462
1961
|
args=args,
|
|
1962
|
+
request_options=_request_options,
|
|
1463
1963
|
)
|
|
1464
1964
|
return self.do_request(api_request=api_request, return_type=set_values_t.Data)
|
|
1465
1965
|
|
|
1466
1966
|
def transition_entity_phase(
|
|
1467
1967
|
self,
|
|
1468
1968
|
*,
|
|
1469
|
-
entity: entity_t.Entity,
|
|
1470
1969
|
transition: transition_entity_phase_t.TransitionIdentifier,
|
|
1970
|
+
entity: entity_t.Entity | None = None,
|
|
1971
|
+
entity_identifier: entity_t.EntityIdentifier | None = None,
|
|
1972
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1471
1973
|
) -> transition_entity_phase_t.Data:
|
|
1472
1974
|
"""Transitions an entity from one phase to another
|
|
1473
1975
|
|
|
1976
|
+
:param entity: Entity to transition. If entity_identifier is provided, this should be omitted.
|
|
1977
|
+
:param entity_identifier: Identifier of the entity to transition. If entity is provided, this should be omitted.
|
|
1978
|
+
:param transition: Identifier of the transition to perform
|
|
1474
1979
|
"""
|
|
1475
1980
|
args = transition_entity_phase_t.Arguments(
|
|
1476
1981
|
entity=entity,
|
|
1982
|
+
entity_identifier=entity_identifier,
|
|
1477
1983
|
transition=transition,
|
|
1478
1984
|
)
|
|
1479
1985
|
api_request = APIRequest(
|
|
1480
1986
|
method=transition_entity_phase_t.ENDPOINT_METHOD,
|
|
1481
1987
|
endpoint=transition_entity_phase_t.ENDPOINT_PATH,
|
|
1482
1988
|
args=args,
|
|
1989
|
+
request_options=_request_options,
|
|
1483
1990
|
)
|
|
1484
1991
|
return self.do_request(api_request=api_request, return_type=transition_entity_phase_t.Data)
|
|
1485
1992
|
|
|
@@ -1487,6 +1994,7 @@ class ClientMethods(ABC):
|
|
|
1487
1994
|
self,
|
|
1488
1995
|
*,
|
|
1489
1996
|
recipes: list[identifier_t.IdentifierKey],
|
|
1997
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1490
1998
|
) -> unarchive_recipes_t.Data:
|
|
1491
1999
|
"""Unarchive/restore the provided recipes
|
|
1492
2000
|
|
|
@@ -1499,6 +2007,7 @@ class ClientMethods(ABC):
|
|
|
1499
2007
|
method=unarchive_recipes_t.ENDPOINT_METHOD,
|
|
1500
2008
|
endpoint=unarchive_recipes_t.ENDPOINT_PATH,
|
|
1501
2009
|
args=args,
|
|
2010
|
+
request_options=_request_options,
|
|
1502
2011
|
)
|
|
1503
2012
|
return self.do_request(api_request=api_request, return_type=unarchive_recipes_t.Data)
|
|
1504
2013
|
|
|
@@ -1507,6 +2016,7 @@ class ClientMethods(ABC):
|
|
|
1507
2016
|
*,
|
|
1508
2017
|
entity_key: identifier_t.IdentifierKey,
|
|
1509
2018
|
entity_type: entity_t.EntityType,
|
|
2019
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1510
2020
|
) -> unlock_entity_t.Data:
|
|
1511
2021
|
"""Unlock an entity
|
|
1512
2022
|
|
|
@@ -1520,6 +2030,7 @@ class ClientMethods(ABC):
|
|
|
1520
2030
|
method=unlock_entity_t.ENDPOINT_METHOD,
|
|
1521
2031
|
endpoint=unlock_entity_t.ENDPOINT_PATH,
|
|
1522
2032
|
args=args,
|
|
2033
|
+
request_options=_request_options,
|
|
1523
2034
|
)
|
|
1524
2035
|
return self.do_request(api_request=api_request, return_type=unlock_entity_t.Data)
|
|
1525
2036
|
|
|
@@ -1528,7 +2039,8 @@ class ClientMethods(ABC):
|
|
|
1528
2039
|
*,
|
|
1529
2040
|
type: unlock_recipes_t.RecipeUnlockType = unlock_recipes_t.RecipeUnlockType.STANDARD,
|
|
1530
2041
|
recipes: list[identifier_t.IdentifierKey],
|
|
1531
|
-
unlock_samples:
|
|
2042
|
+
unlock_samples: bool | None = None,
|
|
2043
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1532
2044
|
) -> unlock_recipes_t.Data:
|
|
1533
2045
|
"""Unlock experiments. Experiments will edtiable after unlocking if they are currently locked.
|
|
1534
2046
|
|
|
@@ -1545,6 +2057,7 @@ class ClientMethods(ABC):
|
|
|
1545
2057
|
method=unlock_recipes_t.ENDPOINT_METHOD,
|
|
1546
2058
|
endpoint=unlock_recipes_t.ENDPOINT_PATH,
|
|
1547
2059
|
args=args,
|
|
2060
|
+
request_options=_request_options,
|
|
1548
2061
|
)
|
|
1549
2062
|
return self.do_request(api_request=api_request, return_type=unlock_recipes_t.Data)
|
|
1550
2063
|
|
|
@@ -1552,9 +2065,10 @@ class ClientMethods(ABC):
|
|
|
1552
2065
|
self,
|
|
1553
2066
|
*,
|
|
1554
2067
|
entity_key: identifier_t.IdentifierKey,
|
|
1555
|
-
entity_type: typing.
|
|
2068
|
+
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],
|
|
1556
2069
|
material_family_ids: list[base_t.ObjectId],
|
|
1557
2070
|
update_type: post_base_t.UpdateType,
|
|
2071
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1558
2072
|
) -> update_entity_material_families_t.Data:
|
|
1559
2073
|
"""Updates the material families that the entity is available in
|
|
1560
2074
|
|
|
@@ -1573,14 +2087,44 @@ class ClientMethods(ABC):
|
|
|
1573
2087
|
method=update_entity_material_families_t.ENDPOINT_METHOD,
|
|
1574
2088
|
endpoint=update_entity_material_families_t.ENDPOINT_PATH,
|
|
1575
2089
|
args=args,
|
|
2090
|
+
request_options=_request_options,
|
|
1576
2091
|
)
|
|
1577
2092
|
return self.do_request(api_request=api_request, return_type=update_entity_material_families_t.Data)
|
|
1578
2093
|
|
|
2094
|
+
def upsert_condition_match(
|
|
2095
|
+
self,
|
|
2096
|
+
*,
|
|
2097
|
+
explicit_name: bool = False,
|
|
2098
|
+
name: str | None = None,
|
|
2099
|
+
condition_parameters: list[upsert_condition_match_t.ConditionParameter] | None = None,
|
|
2100
|
+
output_conditions: list[identifier_t.IdentifierKey] | None = None,
|
|
2101
|
+
existing_condition_match: identifier_t.IdentifierKey | None = None,
|
|
2102
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
2103
|
+
) -> upsert_condition_match_t.Data:
|
|
2104
|
+
"""Creates or updates condition match
|
|
2105
|
+
|
|
2106
|
+
"""
|
|
2107
|
+
args = upsert_condition_match_t.Arguments(
|
|
2108
|
+
name=name,
|
|
2109
|
+
condition_parameters=condition_parameters,
|
|
2110
|
+
output_conditions=output_conditions,
|
|
2111
|
+
explicit_name=explicit_name,
|
|
2112
|
+
existing_condition_match=existing_condition_match,
|
|
2113
|
+
)
|
|
2114
|
+
api_request = APIRequest(
|
|
2115
|
+
method=upsert_condition_match_t.ENDPOINT_METHOD,
|
|
2116
|
+
endpoint=upsert_condition_match_t.ENDPOINT_PATH,
|
|
2117
|
+
args=args,
|
|
2118
|
+
request_options=_request_options,
|
|
2119
|
+
)
|
|
2120
|
+
return self.do_request(api_request=api_request, return_type=upsert_condition_match_t.Data)
|
|
2121
|
+
|
|
1579
2122
|
def upsert_field_options(
|
|
1580
2123
|
self,
|
|
1581
2124
|
*,
|
|
1582
2125
|
option_set_key: identifier_t.IdentifierKey,
|
|
1583
2126
|
field_options: list[upsert_field_options_t.FieldOption],
|
|
2127
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1584
2128
|
) -> upsert_field_options_t.Data:
|
|
1585
2129
|
"""Creates or updates field options for an option set
|
|
1586
2130
|
|
|
@@ -1595,5 +2139,6 @@ class ClientMethods(ABC):
|
|
|
1595
2139
|
method=upsert_field_options_t.ENDPOINT_METHOD,
|
|
1596
2140
|
endpoint=upsert_field_options_t.ENDPOINT_PATH,
|
|
1597
2141
|
args=args,
|
|
2142
|
+
request_options=_request_options,
|
|
1598
2143
|
)
|
|
1599
2144
|
return self.do_request(api_request=api_request, return_type=upsert_field_options_t.Data)
|