UncountablePythonSDK 0.0.52__py3-none-any.whl → 0.0.131__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/async_batch.py +3 -3
- examples/basic_auth.py +7 -0
- examples/create_entity.py +3 -1
- examples/create_ingredient_sdk.py +34 -0
- examples/download_files.py +26 -0
- examples/edit_recipe_inputs.py +4 -2
- examples/integration-server/jobs/materials_auto/concurrent_cron.py +11 -0
- examples/integration-server/jobs/materials_auto/example_cron.py +21 -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 +23 -0
- examples/integration-server/jobs/materials_auto/profile.yaml +104 -0
- examples/integration-server/pyproject.toml +224 -0
- examples/invoke_uploader.py +4 -1
- examples/oauth.py +7 -0
- examples/set_recipe_metadata_file.py +40 -0
- examples/set_recipe_output_file_sdk.py +26 -0
- examples/upload_files.py +1 -2
- pkgs/argument_parser/__init__.py +9 -0
- pkgs/argument_parser/_is_namedtuple.py +3 -0
- pkgs/argument_parser/argument_parser.py +217 -70
- pkgs/filesystem_utils/__init__.py +1 -0
- pkgs/filesystem_utils/_blob_session.py +144 -0
- pkgs/filesystem_utils/_gdrive_session.py +10 -7
- pkgs/filesystem_utils/_s3_session.py +15 -13
- pkgs/filesystem_utils/_sftp_session.py +11 -7
- pkgs/filesystem_utils/file_type_utils.py +30 -10
- pkgs/py.typed +0 -0
- 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 +47 -26
- pkgs/serialization/serial_generic.py +16 -0
- pkgs/serialization/serial_union.py +17 -14
- pkgs/serialization/yaml.py +4 -1
- 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 +5 -5
- pkgs/type_spec/builder.py +354 -119
- pkgs/type_spec/builder_types.py +9 -0
- pkgs/type_spec/config.py +51 -11
- pkgs/type_spec/cross_output_links.py +99 -0
- pkgs/type_spec/emit_io_ts.py +1 -1
- pkgs/type_spec/emit_open_api.py +127 -36
- pkgs/type_spec/emit_open_api_util.py +5 -6
- pkgs/type_spec/emit_python.py +329 -121
- pkgs/type_spec/emit_typescript.py +117 -256
- pkgs/type_spec/emit_typescript_util.py +291 -2
- pkgs/type_spec/load_types.py +18 -4
- 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 +13 -10
- 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 +124 -29
- 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 +4 -4
- pkgs/type_spec/value_spec/__main__.py +26 -9
- pkgs/type_spec/value_spec/convert_type.py +21 -1
- pkgs/type_spec/value_spec/emit_python.py +25 -7
- pkgs/type_spec/value_spec/types.py +1 -1
- uncountable/core/async_batch.py +1 -1
- uncountable/core/client.py +142 -39
- uncountable/core/environment.py +41 -0
- uncountable/core/file_upload.py +52 -18
- uncountable/integration/cli.py +142 -0
- uncountable/integration/construct_client.py +8 -8
- uncountable/integration/cron.py +11 -37
- uncountable/integration/db/connect.py +12 -2
- uncountable/integration/db/session.py +25 -0
- uncountable/integration/entrypoint.py +8 -37
- uncountable/integration/executors/executors.py +125 -2
- uncountable/integration/executors/generic_upload_executor.py +87 -29
- uncountable/integration/executors/script_executor.py +3 -3
- uncountable/integration/http_server/__init__.py +5 -0
- uncountable/integration/http_server/types.py +69 -0
- uncountable/integration/job.py +242 -12
- uncountable/integration/queue_runner/__init__.py +0 -0
- uncountable/integration/queue_runner/command_server/__init__.py +28 -0
- uncountable/integration/queue_runner/command_server/command_client.py +133 -0
- uncountable/integration/queue_runner/command_server/command_server.py +142 -0
- uncountable/integration/queue_runner/command_server/constants.py +4 -0
- uncountable/integration/queue_runner/command_server/protocol/__init__.py +0 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server.proto +58 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +57 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +114 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +264 -0
- uncountable/integration/queue_runner/command_server/types.py +75 -0
- uncountable/integration/queue_runner/datastore/__init__.py +3 -0
- uncountable/integration/queue_runner/datastore/datastore_sqlite.py +250 -0
- uncountable/integration/queue_runner/datastore/interface.py +29 -0
- uncountable/integration/queue_runner/datastore/model.py +24 -0
- uncountable/integration/queue_runner/job_scheduler.py +200 -0
- uncountable/integration/queue_runner/queue_runner.py +34 -0
- uncountable/integration/queue_runner/types.py +7 -0
- uncountable/integration/queue_runner/worker.py +116 -0
- uncountable/integration/scan_profiles.py +67 -0
- uncountable/integration/scheduler.py +199 -0
- uncountable/integration/secret_retrieval/retrieve_secret.py +26 -4
- uncountable/integration/server.py +94 -69
- uncountable/integration/telemetry.py +150 -34
- uncountable/integration/webhook_server/entrypoint.py +97 -0
- uncountable/types/__init__.py +78 -1
- uncountable/types/api/batch/execute_batch.py +13 -6
- uncountable/types/api/batch/execute_batch_load_async.py +9 -3
- uncountable/types/api/chemical/convert_chemical_formats.py +17 -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 +19 -7
- uncountable/types/api/entity/create_entity.py +17 -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 +13 -4
- uncountable/types/api/entity/grant_entity_permissions.py +48 -0
- uncountable/types/api/entity/list_aggregate.py +79 -0
- uncountable/types/api/entity/list_entities.py +42 -10
- uncountable/types/api/entity/lock_entity.py +11 -4
- uncountable/types/api/entity/lookup_entity.py +116 -0
- uncountable/types/api/entity/resolve_entity_ids.py +15 -6
- uncountable/types/api/entity/set_entity_field_values.py +44 -0
- uncountable/types/api/entity/set_values.py +10 -3
- uncountable/types/api/entity/transition_entity_phase.py +22 -7
- uncountable/types/api/entity/unlock_entity.py +10 -3
- uncountable/types/api/equipment/associate_equipment_input.py +9 -3
- uncountable/types/api/field_options/upsert_field_options.py +17 -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 +16 -7
- uncountable/types/api/id_source/match_id_source.py +14 -5
- uncountable/types/api/input_groups/get_input_group_names.py +13 -4
- uncountable/types/api/inputs/create_inputs.py +23 -9
- uncountable/types/api/inputs/get_input_data.py +30 -12
- uncountable/types/api/inputs/get_input_names.py +16 -7
- uncountable/types/api/inputs/get_inputs_data.py +25 -7
- uncountable/types/api/inputs/set_input_attribute_values.py +12 -6
- uncountable/types/api/inputs/set_input_category.py +12 -5
- uncountable/types/api/inputs/set_input_subcategories.py +10 -3
- uncountable/types/api/inputs/set_intermediate_type.py +11 -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 +10 -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 +28 -13
- uncountable/types/api/outputs/get_output_names.py +15 -6
- uncountable/types/api/outputs/get_output_organization.py +173 -0
- uncountable/types/api/outputs/resolve_output_conditions.py +20 -8
- uncountable/types/api/permissions/set_core_permissions.py +26 -10
- uncountable/types/api/project/get_projects.py +16 -7
- uncountable/types/api/project/get_projects_data.py +17 -8
- uncountable/types/api/recipe_links/create_recipe_link.py +12 -5
- uncountable/types/api/recipe_links/remove_recipe_link.py +11 -4
- uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +16 -7
- uncountable/types/api/recipes/add_recipe_to_project.py +10 -3
- uncountable/types/api/recipes/add_time_series_data.py +64 -0
- uncountable/types/api/recipes/archive_recipes.py +11 -4
- uncountable/types/api/recipes/associate_recipe_as_input.py +12 -5
- uncountable/types/api/recipes/associate_recipe_as_lot.py +10 -3
- uncountable/types/api/recipes/clear_recipe_outputs.py +42 -0
- uncountable/types/api/recipes/create_mix_order.py +44 -0
- uncountable/types/api/recipes/create_recipe.py +15 -9
- uncountable/types/api/recipes/create_recipes.py +21 -9
- uncountable/types/api/recipes/disassociate_recipe_as_input.py +10 -3
- uncountable/types/api/recipes/edit_recipe_inputs.py +134 -22
- uncountable/types/api/recipes/get_column_calculation_values.py +57 -0
- uncountable/types/api/recipes/get_curve.py +11 -5
- uncountable/types/api/recipes/get_recipe_calculations.py +13 -7
- uncountable/types/api/recipes/get_recipe_links.py +10 -4
- uncountable/types/api/recipes/get_recipe_names.py +13 -4
- uncountable/types/api/recipes/get_recipe_output_metadata.py +12 -6
- uncountable/types/api/recipes/get_recipes_data.py +87 -33
- uncountable/types/api/recipes/lock_recipes.py +19 -8
- uncountable/types/api/recipes/remove_recipe_from_project.py +10 -3
- uncountable/types/api/recipes/set_recipe_inputs.py +16 -10
- uncountable/types/api/recipes/set_recipe_metadata.py +10 -3
- uncountable/types/api/recipes/set_recipe_output_annotations.py +24 -12
- uncountable/types/api/recipes/set_recipe_output_file.py +55 -0
- uncountable/types/api/recipes/set_recipe_outputs.py +35 -12
- uncountable/types/api/recipes/set_recipe_tags.py +26 -9
- uncountable/types/api/recipes/set_recipe_total.py +59 -0
- uncountable/types/api/recipes/unarchive_recipes.py +10 -3
- uncountable/types/api/recipes/unlock_recipes.py +14 -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 +11 -4
- uncountable/types/api/uploader/complete_async_parse.py +46 -0
- uncountable/types/api/uploader/invoke_uploader.py +13 -6
- uncountable/types/api/user/__init__.py +1 -0
- uncountable/types/api/user/get_current_user_info.py +40 -0
- uncountable/types/async_batch.py +2 -1
- uncountable/types/async_batch_processor.py +618 -18
- uncountable/types/async_batch_t.py +54 -7
- uncountable/types/async_jobs.py +8 -0
- uncountable/types/async_jobs_t.py +52 -0
- uncountable/types/auth_retrieval.py +11 -0
- uncountable/types/auth_retrieval_t.py +75 -0
- uncountable/types/base.py +0 -1
- uncountable/types/base_t.py +13 -11
- uncountable/types/calculations.py +0 -1
- uncountable/types/calculations_t.py +5 -2
- uncountable/types/chemical_structure.py +0 -1
- uncountable/types/chemical_structure_t.py +6 -5
- uncountable/types/client_base.py +751 -70
- uncountable/types/client_config.py +1 -1
- uncountable/types/client_config_t.py +17 -3
- uncountable/types/curves.py +0 -1
- uncountable/types/curves_t.py +10 -7
- uncountable/types/data.py +12 -0
- uncountable/types/data_t.py +103 -0
- uncountable/types/entity.py +4 -1
- uncountable/types/entity_t.py +125 -7
- uncountable/types/experiment_groups.py +0 -1
- uncountable/types/experiment_groups_t.py +5 -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 +246 -9
- uncountable/types/fields.py +0 -1
- uncountable/types/fields_t.py +5 -2
- uncountable/types/generic_upload.py +6 -1
- uncountable/types/generic_upload_t.py +88 -9
- uncountable/types/id_source.py +0 -1
- uncountable/types/id_source_t.py +26 -7
- uncountable/types/identifier.py +0 -1
- uncountable/types/identifier_t.py +13 -5
- uncountable/types/input_attributes.py +0 -1
- uncountable/types/input_attributes_t.py +4 -4
- uncountable/types/inputs.py +1 -1
- uncountable/types/inputs_t.py +24 -4
- uncountable/types/integration_server.py +8 -0
- uncountable/types/integration_server_t.py +46 -0
- uncountable/types/integration_session.py +10 -0
- uncountable/types/integration_session_t.py +60 -0
- uncountable/types/integrations.py +10 -0
- uncountable/types/integrations_t.py +62 -0
- uncountable/types/job_definition.py +4 -6
- uncountable/types/job_definition_t.py +96 -65
- 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 +6 -3
- uncountable/types/overrides.py +9 -0
- uncountable/types/overrides_t.py +49 -0
- uncountable/types/permissions.py +0 -1
- uncountable/types/permissions_t.py +1 -2
- uncountable/types/phases.py +0 -1
- uncountable/types/phases_t.py +5 -2
- uncountable/types/post_base.py +0 -1
- uncountable/types/post_base_t.py +1 -2
- uncountable/types/queued_job.py +17 -0
- uncountable/types/queued_job_t.py +140 -0
- uncountable/types/recipe_identifiers.py +0 -1
- uncountable/types/recipe_identifiers_t.py +21 -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 +7 -4
- uncountable/types/recipe_metadata.py +0 -1
- uncountable/types/recipe_metadata_t.py +14 -9
- uncountable/types/recipe_output_metadata.py +0 -1
- uncountable/types/recipe_output_metadata_t.py +5 -2
- uncountable/types/recipe_tags.py +0 -1
- uncountable/types/recipe_tags_t.py +5 -2
- uncountable/types/recipe_workflow_steps.py +0 -1
- uncountable/types/recipe_workflow_steps_t.py +14 -7
- uncountable/types/recipes.py +0 -1
- uncountable/types/recipes_t.py +6 -2
- uncountable/types/response.py +0 -1
- uncountable/types/response_t.py +3 -2
- uncountable/types/secret_retrieval.py +0 -1
- uncountable/types/secret_retrieval_t.py +13 -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 +5 -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 +5 -2
- uncountable/types/webhook_job.py +9 -0
- uncountable/types/webhook_job_t.py +48 -0
- uncountable/types/workflows.py +0 -1
- uncountable/types/workflows_t.py +10 -4
- uncountablepythonsdk-0.0.131.dist-info/METADATA +64 -0
- uncountablepythonsdk-0.0.131.dist-info/RECORD +363 -0
- {UncountablePythonSDK-0.0.52.dist-info → uncountablepythonsdk-0.0.131.dist-info}/WHEEL +1 -1
- UncountablePythonSDK-0.0.52.dist-info/METADATA +0 -56
- UncountablePythonSDK-0.0.52.dist-info/RECORD +0 -246
- docs/quickstart.md +0 -19
- uncountable/core/version.py +0 -11
- {UncountablePythonSDK-0.0.52.dist-info → uncountablepythonsdk-0.0.131.dist-info}/top_level.txt +0 -0
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -8,6 +7,8 @@ import typing # noqa: F401
|
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
9
|
import dataclasses
|
|
10
|
+
from pkgs.serialization import serial_class
|
|
11
|
+
from ... import base_t
|
|
11
12
|
from ... import identifier_t
|
|
12
13
|
from ... import recipe_metadata_t
|
|
13
14
|
|
|
@@ -23,14 +24,20 @@ ENDPOINT_PATH = "api/external/recipes/set_recipe_metadata"
|
|
|
23
24
|
|
|
24
25
|
|
|
25
26
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
26
|
-
@
|
|
27
|
+
@serial_class(
|
|
28
|
+
named_type_path="sdk.api.recipes.set_recipe_metadata.Arguments",
|
|
29
|
+
)
|
|
30
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
27
31
|
class Arguments:
|
|
28
32
|
recipe_key: identifier_t.IdentifierKey
|
|
29
33
|
recipe_metadata: list[recipe_metadata_t.MetadataValue]
|
|
30
34
|
|
|
31
35
|
|
|
32
36
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
33
|
-
@
|
|
37
|
+
@serial_class(
|
|
38
|
+
named_type_path="sdk.api.recipes.set_recipe_metadata.Data",
|
|
39
|
+
)
|
|
40
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
34
41
|
class Data:
|
|
35
42
|
pass
|
|
36
43
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -7,7 +6,7 @@ from __future__ import annotations
|
|
|
7
6
|
import typing # noqa: F401
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
|
-
from
|
|
9
|
+
from enum import StrEnum
|
|
11
10
|
import dataclasses
|
|
12
11
|
from pkgs.serialization import serial_class
|
|
13
12
|
from pkgs.serialization import serial_union_annotation
|
|
@@ -33,13 +32,14 @@ ENDPOINT_PATH = "api/external/recipes/set_recipe_output_annotations"
|
|
|
33
32
|
|
|
34
33
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
35
34
|
@serial_class(
|
|
35
|
+
named_type_path="sdk.api.recipes.set_recipe_output_annotations.AnnotationEdit",
|
|
36
36
|
to_string_values={"lower_value", "upper_value"},
|
|
37
37
|
)
|
|
38
|
-
@dataclasses.dataclass(kw_only=True)
|
|
38
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
39
39
|
class AnnotationEdit:
|
|
40
40
|
annotation_type_key: identifier_t.IdentifierKey
|
|
41
|
-
lower_value:
|
|
42
|
-
upper_value:
|
|
41
|
+
lower_value: Decimal | None = None
|
|
42
|
+
upper_value: Decimal | None = None
|
|
43
43
|
|
|
44
44
|
|
|
45
45
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -49,37 +49,43 @@ class AnnotationUpdateType(StrEnum):
|
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
52
|
-
@
|
|
52
|
+
@serial_class(
|
|
53
|
+
named_type_path="sdk.api.recipes.set_recipe_output_annotations.RecipeOutputEditBase",
|
|
54
|
+
)
|
|
55
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
53
56
|
class RecipeOutputEditBase:
|
|
54
57
|
recipe_id: base_t.ObjectId
|
|
55
58
|
output_id: base_t.ObjectId
|
|
56
59
|
experiment_num: int
|
|
57
60
|
annotations: list[AnnotationEdit]
|
|
58
|
-
condition_id:
|
|
61
|
+
condition_id: base_t.ObjectId | None = None
|
|
59
62
|
|
|
60
63
|
|
|
61
64
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
62
65
|
@serial_class(
|
|
66
|
+
named_type_path="sdk.api.recipes.set_recipe_output_annotations.RecipeOutputMergeAnnotations",
|
|
63
67
|
parse_require={"type"},
|
|
64
68
|
)
|
|
65
|
-
@dataclasses.dataclass(kw_only=True)
|
|
69
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
66
70
|
class RecipeOutputMergeAnnotations(RecipeOutputEditBase):
|
|
67
71
|
type: typing.Literal[AnnotationUpdateType.MERGE] = AnnotationUpdateType.MERGE
|
|
68
72
|
|
|
69
73
|
|
|
70
74
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
71
75
|
@serial_class(
|
|
76
|
+
named_type_path="sdk.api.recipes.set_recipe_output_annotations.RecipeOutputReplaceAnnotations",
|
|
72
77
|
parse_require={"type"},
|
|
73
78
|
)
|
|
74
|
-
@dataclasses.dataclass(kw_only=True)
|
|
79
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
75
80
|
class RecipeOutputReplaceAnnotations(RecipeOutputEditBase):
|
|
76
81
|
type: typing.Literal[AnnotationUpdateType.REPLACE] = AnnotationUpdateType.REPLACE
|
|
77
82
|
|
|
78
83
|
|
|
79
84
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
80
85
|
RecipeOutputUpdateAnnotations = typing.Annotated[
|
|
81
|
-
|
|
86
|
+
RecipeOutputMergeAnnotations | RecipeOutputReplaceAnnotations,
|
|
82
87
|
serial_union_annotation(
|
|
88
|
+
named_type_path="sdk.api.recipes.set_recipe_output_annotations.RecipeOutputUpdateAnnotations",
|
|
83
89
|
discriminator="type",
|
|
84
90
|
discriminator_map={
|
|
85
91
|
"merge": RecipeOutputMergeAnnotations,
|
|
@@ -90,13 +96,19 @@ RecipeOutputUpdateAnnotations = typing.Annotated[
|
|
|
90
96
|
|
|
91
97
|
|
|
92
98
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
93
|
-
@
|
|
99
|
+
@serial_class(
|
|
100
|
+
named_type_path="sdk.api.recipes.set_recipe_output_annotations.Arguments",
|
|
101
|
+
)
|
|
102
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
94
103
|
class Arguments:
|
|
95
104
|
updates: list[RecipeOutputUpdateAnnotations]
|
|
96
105
|
|
|
97
106
|
|
|
98
107
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
99
|
-
@
|
|
108
|
+
@serial_class(
|
|
109
|
+
named_type_path="sdk.api.recipes.set_recipe_output_annotations.Data",
|
|
110
|
+
)
|
|
111
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
100
112
|
class Data:
|
|
101
113
|
pass
|
|
102
114
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# ruff: noqa: E402 Q003
|
|
3
|
+
# fmt: off
|
|
4
|
+
# isort: skip_file
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
import typing # noqa: F401
|
|
7
|
+
import datetime # noqa: F401
|
|
8
|
+
from decimal import Decimal # noqa: F401
|
|
9
|
+
import dataclasses
|
|
10
|
+
from pkgs.serialization import serial_class
|
|
11
|
+
from ... import base_t
|
|
12
|
+
from ... import response_t
|
|
13
|
+
|
|
14
|
+
__all__: list[str] = [
|
|
15
|
+
"Arguments",
|
|
16
|
+
"Data",
|
|
17
|
+
"ENDPOINT_METHOD",
|
|
18
|
+
"ENDPOINT_PATH",
|
|
19
|
+
"RecipeOutputFileValue",
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
ENDPOINT_METHOD = "POST"
|
|
23
|
+
ENDPOINT_PATH = "api/external/recipes/external_set_recipe_output_file"
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
27
|
+
@serial_class(
|
|
28
|
+
named_type_path="sdk.api.recipes.set_recipe_output_file.RecipeOutputFileValue",
|
|
29
|
+
)
|
|
30
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
31
|
+
class RecipeOutputFileValue:
|
|
32
|
+
recipe_id: base_t.ObjectId
|
|
33
|
+
output_id: base_t.ObjectId
|
|
34
|
+
experiment_num: int
|
|
35
|
+
condition_id: base_t.ObjectId | None = None
|
|
36
|
+
file_id: base_t.ObjectId | None = None
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
40
|
+
@serial_class(
|
|
41
|
+
named_type_path="sdk.api.recipes.set_recipe_output_file.Arguments",
|
|
42
|
+
)
|
|
43
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
44
|
+
class Arguments:
|
|
45
|
+
output_file_data: RecipeOutputFileValue
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
49
|
+
@serial_class(
|
|
50
|
+
named_type_path="sdk.api.recipes.set_recipe_output_file.Data",
|
|
51
|
+
)
|
|
52
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
53
|
+
class Data(response_t.Response):
|
|
54
|
+
pass
|
|
55
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -7,9 +6,12 @@ from __future__ import annotations
|
|
|
7
6
|
import typing # noqa: F401
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
9
|
+
from enum import StrEnum
|
|
10
10
|
import dataclasses
|
|
11
11
|
from pkgs.serialization import serial_class
|
|
12
12
|
from ... import base_t
|
|
13
|
+
from ... import data_t
|
|
14
|
+
from ... import field_values_t
|
|
13
15
|
from ... import recipes_t
|
|
14
16
|
from ... import response_t
|
|
15
17
|
|
|
@@ -19,6 +21,7 @@ __all__: list[str] = [
|
|
|
19
21
|
"Data",
|
|
20
22
|
"ENDPOINT_METHOD",
|
|
21
23
|
"ENDPOINT_PATH",
|
|
24
|
+
"NullBehavior",
|
|
22
25
|
"RecipeOutputValue",
|
|
23
26
|
]
|
|
24
27
|
|
|
@@ -27,36 +30,56 @@ ENDPOINT_PATH = "api/external/recipes/external_set_recipe_outputs"
|
|
|
27
30
|
|
|
28
31
|
|
|
29
32
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
30
|
-
@
|
|
33
|
+
@serial_class(
|
|
34
|
+
named_type_path="sdk.api.recipes.set_recipe_outputs.CurveValues",
|
|
35
|
+
)
|
|
36
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
31
37
|
class CurveValues:
|
|
32
|
-
x_values: list[
|
|
33
|
-
y_values: list[
|
|
38
|
+
x_values: list[Decimal | None]
|
|
39
|
+
y_values: list[Decimal | None]
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
43
|
+
class NullBehavior(StrEnum):
|
|
44
|
+
DO_NOTHING = "do_nothing"
|
|
45
|
+
ENSURE_EXISTS = "ensure_exists"
|
|
34
46
|
|
|
35
47
|
|
|
36
48
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
37
49
|
@serial_class(
|
|
50
|
+
named_type_path="sdk.api.recipes.set_recipe_outputs.RecipeOutputValue",
|
|
38
51
|
to_string_values={"value_numeric"},
|
|
39
52
|
)
|
|
40
|
-
@dataclasses.dataclass(kw_only=True)
|
|
53
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
41
54
|
class RecipeOutputValue:
|
|
42
55
|
recipe_id: base_t.ObjectId
|
|
43
56
|
output_id: base_t.ObjectId
|
|
44
57
|
experiment_num: int
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
58
|
+
null_behavior: NullBehavior | None = NullBehavior.DO_NOTHING
|
|
59
|
+
condition_id: base_t.ObjectId | None = None
|
|
60
|
+
value_numeric: Decimal | None = None
|
|
61
|
+
value_str: str | None = None
|
|
62
|
+
value_curve: CurveValues | None = None
|
|
63
|
+
value_color: data_t.SupportedColorFormatColor | None = None
|
|
64
|
+
value_ingredient_id: base_t.ObjectId | None = None
|
|
65
|
+
formatting: recipes_t.RecipeAttributeFormatting | None = None
|
|
66
|
+
field_values: list[field_values_t.ArgumentValueRefName | field_values_t.ArgumentValueId] | None = None
|
|
50
67
|
|
|
51
68
|
|
|
52
69
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
53
|
-
@
|
|
70
|
+
@serial_class(
|
|
71
|
+
named_type_path="sdk.api.recipes.set_recipe_outputs.Arguments",
|
|
72
|
+
)
|
|
73
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
54
74
|
class Arguments:
|
|
55
75
|
output_data: list[RecipeOutputValue]
|
|
56
76
|
|
|
57
77
|
|
|
58
78
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
59
|
-
@
|
|
79
|
+
@serial_class(
|
|
80
|
+
named_type_path="sdk.api.recipes.set_recipe_outputs.Data",
|
|
81
|
+
)
|
|
82
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
60
83
|
class Data(response_t.Response):
|
|
61
84
|
pass
|
|
62
85
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -7,9 +6,10 @@ from __future__ import annotations
|
|
|
7
6
|
import typing # noqa: F401
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
|
-
from
|
|
9
|
+
from enum import StrEnum
|
|
11
10
|
import dataclasses
|
|
12
11
|
from pkgs.serialization import serial_class
|
|
12
|
+
from pkgs.serialization import serial_alias_annotation
|
|
13
13
|
from ... import base_t
|
|
14
14
|
from ... import identifier_t
|
|
15
15
|
|
|
@@ -38,16 +38,20 @@ class RecipeTagUpdateType(StrEnum):
|
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
41
|
-
@
|
|
41
|
+
@serial_class(
|
|
42
|
+
named_type_path="sdk.api.recipes.set_recipe_tags.RecipeTagUpdateBase",
|
|
43
|
+
)
|
|
44
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
42
45
|
class RecipeTagUpdateBase:
|
|
43
46
|
type: RecipeTagUpdateType
|
|
44
47
|
|
|
45
48
|
|
|
46
49
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
47
50
|
@serial_class(
|
|
51
|
+
named_type_path="sdk.api.recipes.set_recipe_tags.RecipeTagAppend",
|
|
48
52
|
parse_require={"type"},
|
|
49
53
|
)
|
|
50
|
-
@dataclasses.dataclass(kw_only=True)
|
|
54
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
51
55
|
class RecipeTagAppend(RecipeTagUpdateBase):
|
|
52
56
|
type: typing.Literal[RecipeTagUpdateType.APPEND] = RecipeTagUpdateType.APPEND
|
|
53
57
|
recipe_tag_ids: list[base_t.ObjectId]
|
|
@@ -55,9 +59,10 @@ class RecipeTagAppend(RecipeTagUpdateBase):
|
|
|
55
59
|
|
|
56
60
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
57
61
|
@serial_class(
|
|
62
|
+
named_type_path="sdk.api.recipes.set_recipe_tags.RecipeTagRemove",
|
|
58
63
|
parse_require={"type"},
|
|
59
64
|
)
|
|
60
|
-
@dataclasses.dataclass(kw_only=True)
|
|
65
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
61
66
|
class RecipeTagRemove(RecipeTagUpdateBase):
|
|
62
67
|
type: typing.Literal[RecipeTagUpdateType.REMOVE] = RecipeTagUpdateType.REMOVE
|
|
63
68
|
recipe_tag_ids: list[base_t.ObjectId]
|
|
@@ -65,27 +70,39 @@ class RecipeTagRemove(RecipeTagUpdateBase):
|
|
|
65
70
|
|
|
66
71
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
67
72
|
@serial_class(
|
|
73
|
+
named_type_path="sdk.api.recipes.set_recipe_tags.RecipeTagOverride",
|
|
68
74
|
parse_require={"type"},
|
|
69
75
|
)
|
|
70
|
-
@dataclasses.dataclass(kw_only=True)
|
|
76
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
71
77
|
class RecipeTagOverride(RecipeTagUpdateBase):
|
|
72
78
|
type: typing.Literal[RecipeTagUpdateType.OVERRIDE] = RecipeTagUpdateType.OVERRIDE
|
|
73
79
|
recipe_tag_ids: list[base_t.ObjectId]
|
|
74
80
|
|
|
75
81
|
|
|
76
82
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
77
|
-
RecipeTagUpdate = typing.
|
|
83
|
+
RecipeTagUpdate = typing.Annotated[
|
|
84
|
+
RecipeTagAppend | RecipeTagRemove | RecipeTagOverride,
|
|
85
|
+
serial_alias_annotation(
|
|
86
|
+
named_type_path="sdk.api.recipes.set_recipe_tags.RecipeTagUpdate",
|
|
87
|
+
),
|
|
88
|
+
]
|
|
78
89
|
|
|
79
90
|
|
|
80
91
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
81
|
-
@
|
|
92
|
+
@serial_class(
|
|
93
|
+
named_type_path="sdk.api.recipes.set_recipe_tags.Arguments",
|
|
94
|
+
)
|
|
95
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
82
96
|
class Arguments:
|
|
83
97
|
recipe_key: identifier_t.IdentifierKey
|
|
84
98
|
recipe_tag_update: RecipeTagUpdate
|
|
85
99
|
|
|
86
100
|
|
|
87
101
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
88
|
-
@
|
|
102
|
+
@serial_class(
|
|
103
|
+
named_type_path="sdk.api.recipes.set_recipe_tags.Data",
|
|
104
|
+
)
|
|
105
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
89
106
|
class Data:
|
|
90
107
|
pass
|
|
91
108
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# ruff: noqa: E402 Q003
|
|
3
|
+
# fmt: off
|
|
4
|
+
# isort: skip_file
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
import typing # noqa: F401
|
|
7
|
+
import datetime # noqa: F401
|
|
8
|
+
from decimal import Decimal # noqa: F401
|
|
9
|
+
import dataclasses
|
|
10
|
+
from pkgs.serialization import serial_class
|
|
11
|
+
from ... import async_batch_t
|
|
12
|
+
from ... import base_t
|
|
13
|
+
from ... import identifier_t
|
|
14
|
+
from ... import recipe_inputs_t
|
|
15
|
+
from ... import recipe_workflow_steps_t
|
|
16
|
+
|
|
17
|
+
__all__: list[str] = [
|
|
18
|
+
"Arguments",
|
|
19
|
+
"Data",
|
|
20
|
+
"ENDPOINT_METHOD",
|
|
21
|
+
"ENDPOINT_PATH",
|
|
22
|
+
"ValueNumeric",
|
|
23
|
+
]
|
|
24
|
+
|
|
25
|
+
ENDPOINT_METHOD = "POST"
|
|
26
|
+
ENDPOINT_PATH = "api/external/recipes/set_recipe_total"
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
30
|
+
@serial_class(
|
|
31
|
+
named_type_path="sdk.api.recipes.set_recipe_total.ValueNumeric",
|
|
32
|
+
to_string_values={"value"},
|
|
33
|
+
)
|
|
34
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
35
|
+
class ValueNumeric:
|
|
36
|
+
value: Decimal
|
|
37
|
+
quantity_basis: recipe_inputs_t.QuantityBasis
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
41
|
+
@serial_class(
|
|
42
|
+
named_type_path="sdk.api.recipes.set_recipe_total.Arguments",
|
|
43
|
+
)
|
|
44
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
45
|
+
class Arguments:
|
|
46
|
+
recipe_key: identifier_t.IdentifierKey
|
|
47
|
+
value: ValueNumeric
|
|
48
|
+
recipe_workflow_step_identifier: recipe_workflow_steps_t.RecipeWorkflowStepIdentifier | None = None
|
|
49
|
+
calculation_key: identifier_t.IdentifierKey | None = None
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
53
|
+
@serial_class(
|
|
54
|
+
named_type_path="sdk.api.recipes.set_recipe_total.Data",
|
|
55
|
+
)
|
|
56
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
57
|
+
class Data(async_batch_t.AsyncBatchActionReturn):
|
|
58
|
+
pass
|
|
59
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -8,6 +7,8 @@ import typing # noqa: F401
|
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
9
|
import dataclasses
|
|
10
|
+
from pkgs.serialization import serial_class
|
|
11
|
+
from ... import base_t
|
|
11
12
|
from ... import identifier_t
|
|
12
13
|
|
|
13
14
|
__all__: list[str] = [
|
|
@@ -22,13 +23,19 @@ ENDPOINT_PATH = "api/external/recipes/unarchive"
|
|
|
22
23
|
|
|
23
24
|
|
|
24
25
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
25
|
-
@
|
|
26
|
+
@serial_class(
|
|
27
|
+
named_type_path="sdk.api.recipes.unarchive_recipes.Arguments",
|
|
28
|
+
)
|
|
29
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
26
30
|
class Arguments:
|
|
27
31
|
recipes: list[identifier_t.IdentifierKey]
|
|
28
32
|
|
|
29
33
|
|
|
30
34
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
31
|
-
@
|
|
35
|
+
@serial_class(
|
|
36
|
+
named_type_path="sdk.api.recipes.unarchive_recipes.Data",
|
|
37
|
+
)
|
|
38
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
32
39
|
class Data:
|
|
33
40
|
pass
|
|
34
41
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -7,8 +6,11 @@ from __future__ import annotations
|
|
|
7
6
|
import typing # noqa: F401
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
|
-
from
|
|
9
|
+
from enum import StrEnum
|
|
11
10
|
import dataclasses
|
|
11
|
+
from pkgs.serialization import serial_class
|
|
12
|
+
from ... import async_batch_t
|
|
13
|
+
from ... import base_t
|
|
12
14
|
from ... import identifier_t
|
|
13
15
|
|
|
14
16
|
__all__: list[str] = [
|
|
@@ -29,15 +31,21 @@ class RecipeUnlockType(StrEnum):
|
|
|
29
31
|
|
|
30
32
|
|
|
31
33
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
32
|
-
@
|
|
34
|
+
@serial_class(
|
|
35
|
+
named_type_path="sdk.api.recipes.unlock_recipes.Arguments",
|
|
36
|
+
)
|
|
37
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
33
38
|
class Arguments:
|
|
34
39
|
type: RecipeUnlockType = RecipeUnlockType.STANDARD
|
|
35
40
|
recipes: list[identifier_t.IdentifierKey]
|
|
36
|
-
unlock_samples:
|
|
41
|
+
unlock_samples: bool | None = None
|
|
37
42
|
|
|
38
43
|
|
|
39
44
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
40
|
-
@
|
|
41
|
-
|
|
45
|
+
@serial_class(
|
|
46
|
+
named_type_path="sdk.api.recipes.unlock_recipes.Data",
|
|
47
|
+
)
|
|
48
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
49
|
+
class Data(async_batch_t.AsyncBatchActionReturn):
|
|
42
50
|
pass
|
|
43
51
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# ruff: noqa: E402 Q003
|
|
3
|
+
# fmt: off
|
|
4
|
+
# isort: skip_file
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
import typing # noqa: F401
|
|
7
|
+
import datetime # noqa: F401
|
|
8
|
+
from decimal import Decimal # noqa: F401
|
|
9
|
+
import dataclasses
|
|
10
|
+
from pkgs.serialization import serial_class
|
|
11
|
+
from ... import base_t
|
|
12
|
+
|
|
13
|
+
__all__: list[str] = [
|
|
14
|
+
"Arguments",
|
|
15
|
+
"Data",
|
|
16
|
+
"ENDPOINT_METHOD",
|
|
17
|
+
"ENDPOINT_PATH",
|
|
18
|
+
]
|
|
19
|
+
|
|
20
|
+
ENDPOINT_METHOD = "POST"
|
|
21
|
+
ENDPOINT_PATH = "api/external/runsheet/complete_async_upload"
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
25
|
+
@serial_class(
|
|
26
|
+
named_type_path="sdk.api.runsheet.complete_async_upload.Arguments",
|
|
27
|
+
)
|
|
28
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
29
|
+
class Arguments:
|
|
30
|
+
async_job_id: base_t.ObjectId
|
|
31
|
+
file_id: base_t.ObjectId
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
35
|
+
@serial_class(
|
|
36
|
+
named_type_path="sdk.api.runsheet.complete_async_upload.Data",
|
|
37
|
+
)
|
|
38
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
39
|
+
class Data:
|
|
40
|
+
pass
|
|
41
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -8,6 +7,8 @@ import typing # noqa: F401
|
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
9
|
import dataclasses
|
|
10
|
+
from pkgs.serialization import serial_class
|
|
11
|
+
from ... import base_t
|
|
11
12
|
from ... import entity_t
|
|
12
13
|
from ... import response_t
|
|
13
14
|
|
|
@@ -23,14 +24,20 @@ ENDPOINT_PATH = "api/external/triggers/run_trigger"
|
|
|
23
24
|
|
|
24
25
|
|
|
25
26
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
26
|
-
@
|
|
27
|
+
@serial_class(
|
|
28
|
+
named_type_path="sdk.api.triggers.run_trigger.Arguments",
|
|
29
|
+
)
|
|
30
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
27
31
|
class Arguments:
|
|
28
32
|
trigger_ref_name: str
|
|
29
|
-
entity:
|
|
33
|
+
entity: entity_t.Entity | None = None
|
|
30
34
|
|
|
31
35
|
|
|
32
36
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
33
|
-
@
|
|
37
|
+
@serial_class(
|
|
38
|
+
named_type_path="sdk.api.triggers.run_trigger.Data",
|
|
39
|
+
)
|
|
40
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
34
41
|
class Data(response_t.Response):
|
|
35
42
|
pass
|
|
36
43
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# ruff: noqa: E402 Q003
|
|
3
|
+
# fmt: off
|
|
4
|
+
# isort: skip_file
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
import typing # noqa: F401
|
|
7
|
+
import datetime # noqa: F401
|
|
8
|
+
from decimal import Decimal # noqa: F401
|
|
9
|
+
import dataclasses
|
|
10
|
+
from pkgs.serialization import serial_class
|
|
11
|
+
from ... import async_batch_t
|
|
12
|
+
from ... import base_t
|
|
13
|
+
from ... import generic_upload_t
|
|
14
|
+
from ... import identifier_t
|
|
15
|
+
from ... import uploader_t
|
|
16
|
+
|
|
17
|
+
__all__: list[str] = [
|
|
18
|
+
"Arguments",
|
|
19
|
+
"Data",
|
|
20
|
+
"ENDPOINT_METHOD",
|
|
21
|
+
"ENDPOINT_PATH",
|
|
22
|
+
]
|
|
23
|
+
|
|
24
|
+
ENDPOINT_METHOD = "POST"
|
|
25
|
+
ENDPOINT_PATH = "api/external/uploader/complete_async_parse"
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
29
|
+
@serial_class(
|
|
30
|
+
named_type_path="sdk.api.uploader.complete_async_parse.Arguments",
|
|
31
|
+
)
|
|
32
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
33
|
+
class Arguments:
|
|
34
|
+
parsed_file_data: list[uploader_t.ParsedFileData]
|
|
35
|
+
async_job_key: identifier_t.IdentifierKey
|
|
36
|
+
upload_destination: generic_upload_t.UploadDestinationRecipe
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
40
|
+
@serial_class(
|
|
41
|
+
named_type_path="sdk.api.uploader.complete_async_parse.Data",
|
|
42
|
+
)
|
|
43
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
44
|
+
class Data(async_batch_t.AsyncBatchActionReturn):
|
|
45
|
+
pass
|
|
46
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|