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
|
@@ -0,0 +1,173 @@
|
|
|
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
|
+
from enum import StrEnum
|
|
10
|
+
import dataclasses
|
|
11
|
+
from pkgs.serialization import serial_class
|
|
12
|
+
from pkgs.serialization import serial_union_annotation
|
|
13
|
+
from pkgs.serialization import serial_alias_annotation
|
|
14
|
+
from ... import base_t
|
|
15
|
+
|
|
16
|
+
__all__: list[str] = [
|
|
17
|
+
"Arguments",
|
|
18
|
+
"Data",
|
|
19
|
+
"ENDPOINT_METHOD",
|
|
20
|
+
"ENDPOINT_PATH",
|
|
21
|
+
"OrganizationParameter",
|
|
22
|
+
"OrganizationParameterBase",
|
|
23
|
+
"OrganizationParameterCategory",
|
|
24
|
+
"OrganizationParameterConditionParameter",
|
|
25
|
+
"OrganizationParameterRecipeInput",
|
|
26
|
+
"OrganizationParameterType",
|
|
27
|
+
"OutputOrganizationRequest",
|
|
28
|
+
"OutputOrganizationRequestMaterialFamily",
|
|
29
|
+
"OutputOrganizationRequestProject",
|
|
30
|
+
"OutputOrganizationRequestScope",
|
|
31
|
+
"OutputOrganizationRequestUser",
|
|
32
|
+
]
|
|
33
|
+
|
|
34
|
+
ENDPOINT_METHOD = "GET"
|
|
35
|
+
ENDPOINT_PATH = "api/external/outputs/get_output_organization"
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
39
|
+
class OutputOrganizationRequestScope(StrEnum):
|
|
40
|
+
MATERIAL_FAMILY = "material_family"
|
|
41
|
+
PROJECT = "project"
|
|
42
|
+
USER = "user"
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
46
|
+
@serial_class(
|
|
47
|
+
named_type_path="sdk.api.outputs.get_output_organization.OutputOrganizationRequestMaterialFamily",
|
|
48
|
+
parse_require={"scope"},
|
|
49
|
+
)
|
|
50
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
51
|
+
class OutputOrganizationRequestMaterialFamily:
|
|
52
|
+
scope: typing.Literal[OutputOrganizationRequestScope.MATERIAL_FAMILY] = OutputOrganizationRequestScope.MATERIAL_FAMILY
|
|
53
|
+
material_family_id: base_t.ObjectId
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
57
|
+
@serial_class(
|
|
58
|
+
named_type_path="sdk.api.outputs.get_output_organization.OutputOrganizationRequestProject",
|
|
59
|
+
parse_require={"scope"},
|
|
60
|
+
)
|
|
61
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
62
|
+
class OutputOrganizationRequestProject:
|
|
63
|
+
scope: typing.Literal[OutputOrganizationRequestScope.PROJECT] = OutputOrganizationRequestScope.PROJECT
|
|
64
|
+
project_id: base_t.ObjectId
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
68
|
+
@serial_class(
|
|
69
|
+
named_type_path="sdk.api.outputs.get_output_organization.OutputOrganizationRequestUser",
|
|
70
|
+
parse_require={"scope"},
|
|
71
|
+
)
|
|
72
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
73
|
+
class OutputOrganizationRequestUser:
|
|
74
|
+
scope: typing.Literal[OutputOrganizationRequestScope.USER] = OutputOrganizationRequestScope.USER
|
|
75
|
+
material_family_id: base_t.ObjectId
|
|
76
|
+
user_id: base_t.ObjectId
|
|
77
|
+
project_id: base_t.ObjectId | None = None
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
81
|
+
OutputOrganizationRequest = typing.Annotated[
|
|
82
|
+
OutputOrganizationRequestMaterialFamily | OutputOrganizationRequestProject | OutputOrganizationRequestUser,
|
|
83
|
+
serial_alias_annotation(
|
|
84
|
+
named_type_path="sdk.api.outputs.get_output_organization.OutputOrganizationRequest",
|
|
85
|
+
),
|
|
86
|
+
]
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
90
|
+
@serial_class(
|
|
91
|
+
named_type_path="sdk.api.outputs.get_output_organization.Arguments",
|
|
92
|
+
)
|
|
93
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
94
|
+
class Arguments:
|
|
95
|
+
request: OutputOrganizationRequest
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
99
|
+
class OrganizationParameterType(StrEnum):
|
|
100
|
+
CATEGORY = "category"
|
|
101
|
+
RECIPE_INPUT = "recipe_input"
|
|
102
|
+
CONDITION_PARAMETER = "condition_parameter"
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
106
|
+
@serial_class(
|
|
107
|
+
named_type_path="sdk.api.outputs.get_output_organization.OrganizationParameterBase",
|
|
108
|
+
)
|
|
109
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
110
|
+
class OrganizationParameterBase:
|
|
111
|
+
output_organization_parameter_id: base_t.ObjectId
|
|
112
|
+
null_on_top: bool
|
|
113
|
+
sort_asc: bool
|
|
114
|
+
type: OrganizationParameterType
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
118
|
+
@serial_class(
|
|
119
|
+
named_type_path="sdk.api.outputs.get_output_organization.OrganizationParameterCategory",
|
|
120
|
+
parse_require={"type"},
|
|
121
|
+
)
|
|
122
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
123
|
+
class OrganizationParameterCategory(OrganizationParameterBase):
|
|
124
|
+
type: typing.Literal[OrganizationParameterType.CATEGORY] = OrganizationParameterType.CATEGORY
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
128
|
+
@serial_class(
|
|
129
|
+
named_type_path="sdk.api.outputs.get_output_organization.OrganizationParameterRecipeInput",
|
|
130
|
+
parse_require={"type"},
|
|
131
|
+
)
|
|
132
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
133
|
+
class OrganizationParameterRecipeInput(OrganizationParameterBase):
|
|
134
|
+
input_id: base_t.ObjectId
|
|
135
|
+
type: typing.Literal[OrganizationParameterType.RECIPE_INPUT] = OrganizationParameterType.RECIPE_INPUT
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
139
|
+
@serial_class(
|
|
140
|
+
named_type_path="sdk.api.outputs.get_output_organization.OrganizationParameterConditionParameter",
|
|
141
|
+
parse_require={"type"},
|
|
142
|
+
)
|
|
143
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
144
|
+
class OrganizationParameterConditionParameter(OrganizationParameterBase):
|
|
145
|
+
condition_parameter_id: base_t.ObjectId
|
|
146
|
+
type: typing.Literal[OrganizationParameterType.CONDITION_PARAMETER] = OrganizationParameterType.CONDITION_PARAMETER
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
150
|
+
OrganizationParameter = typing.Annotated[
|
|
151
|
+
OrganizationParameterCategory | OrganizationParameterRecipeInput | OrganizationParameterConditionParameter,
|
|
152
|
+
serial_union_annotation(
|
|
153
|
+
named_type_path="sdk.api.outputs.get_output_organization.OrganizationParameter",
|
|
154
|
+
discriminator="type",
|
|
155
|
+
discriminator_map={
|
|
156
|
+
"category": OrganizationParameterCategory,
|
|
157
|
+
"recipe_input": OrganizationParameterRecipeInput,
|
|
158
|
+
"condition_parameter": OrganizationParameterConditionParameter,
|
|
159
|
+
},
|
|
160
|
+
),
|
|
161
|
+
]
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
165
|
+
@serial_class(
|
|
166
|
+
named_type_path="sdk.api.outputs.get_output_organization.Data",
|
|
167
|
+
)
|
|
168
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
169
|
+
class Data:
|
|
170
|
+
organization_id: base_t.ObjectId | None
|
|
171
|
+
column_definitions: list[OrganizationParameter]
|
|
172
|
+
table_definitions: list[OrganizationParameter]
|
|
173
|
+
# 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
|
|
@@ -28,36 +27,49 @@ ENDPOINT_PATH = "api/external/outputs/external_resolve_output_conditions"
|
|
|
28
27
|
|
|
29
28
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
30
29
|
@serial_class(
|
|
30
|
+
named_type_path="sdk.api.outputs.resolve_output_conditions.ConditionParameterValueRecord",
|
|
31
31
|
to_string_values={"value_numeric"},
|
|
32
32
|
)
|
|
33
|
-
@dataclasses.dataclass(kw_only=True)
|
|
33
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
34
34
|
class ConditionParameterValueRecord:
|
|
35
35
|
condition_parameter_id: base_t.ObjectId
|
|
36
|
-
value_numeric:
|
|
37
|
-
value_string:
|
|
36
|
+
value_numeric: Decimal | None = None
|
|
37
|
+
value_string: str | None = None
|
|
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.outputs.resolve_output_conditions.ConditionRequest",
|
|
43
|
+
)
|
|
44
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
42
45
|
class ConditionRequest:
|
|
43
46
|
conditions: list[ConditionParameterValueRecord]
|
|
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.outputs.resolve_output_conditions.Arguments",
|
|
52
|
+
)
|
|
53
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
48
54
|
class Arguments:
|
|
49
55
|
requested_conditions: list[ConditionRequest]
|
|
50
56
|
|
|
51
57
|
|
|
52
58
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
53
|
-
@
|
|
59
|
+
@serial_class(
|
|
60
|
+
named_type_path="sdk.api.outputs.resolve_output_conditions.ConditionResponse",
|
|
61
|
+
)
|
|
62
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
54
63
|
class ConditionResponse:
|
|
55
64
|
conditions: list[ConditionParameterValueRecord]
|
|
56
65
|
output_condition_id: base_t.ObjectId
|
|
57
66
|
|
|
58
67
|
|
|
59
68
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
60
|
-
@
|
|
69
|
+
@serial_class(
|
|
70
|
+
named_type_path="sdk.api.outputs.resolve_output_conditions.Data",
|
|
71
|
+
)
|
|
72
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
61
73
|
class Data:
|
|
62
74
|
resolved_conditions: list[ConditionResponse]
|
|
63
75
|
|
|
@@ -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,6 +8,8 @@ import datetime # noqa: F401
|
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
9
|
import dataclasses
|
|
11
10
|
from pkgs.serialization import serial_class
|
|
11
|
+
from pkgs.serialization import serial_alias_annotation
|
|
12
|
+
from ... import base_t
|
|
12
13
|
from ... import identifier_t
|
|
13
14
|
from ... import permissions_t
|
|
14
15
|
from ... import post_base_t
|
|
@@ -31,9 +32,10 @@ ENDPOINT_PATH = "api/external/permissions/external_set_core_permissions"
|
|
|
31
32
|
|
|
32
33
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
33
34
|
@serial_class(
|
|
35
|
+
named_type_path="sdk.api.permissions.set_core_permissions.PermissionsScopeProject",
|
|
34
36
|
parse_require={"type"},
|
|
35
37
|
)
|
|
36
|
-
@dataclasses.dataclass(kw_only=True)
|
|
38
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
37
39
|
class PermissionsScopeProject:
|
|
38
40
|
type: typing.Literal["project"] = "project"
|
|
39
41
|
project_key: identifier_t.IdentifierKey
|
|
@@ -41,9 +43,10 @@ class PermissionsScopeProject:
|
|
|
41
43
|
|
|
42
44
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
43
45
|
@serial_class(
|
|
46
|
+
named_type_path="sdk.api.permissions.set_core_permissions.PermissionsScopeRecipe",
|
|
44
47
|
parse_require={"type"},
|
|
45
48
|
)
|
|
46
|
-
@dataclasses.dataclass(kw_only=True)
|
|
49
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
47
50
|
class PermissionsScopeRecipe:
|
|
48
51
|
type: typing.Literal["recipe"] = "recipe"
|
|
49
52
|
recipe_key: identifier_t.IdentifierKey
|
|
@@ -51,9 +54,10 @@ class PermissionsScopeRecipe:
|
|
|
51
54
|
|
|
52
55
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
53
56
|
@serial_class(
|
|
57
|
+
named_type_path="sdk.api.permissions.set_core_permissions.PermissionsScopeMaterialFamily",
|
|
54
58
|
parse_require={"type"},
|
|
55
59
|
)
|
|
56
|
-
@dataclasses.dataclass(kw_only=True)
|
|
60
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
57
61
|
class PermissionsScopeMaterialFamily:
|
|
58
62
|
type: typing.Literal["material_family"] = "material_family"
|
|
59
63
|
material_family_key: identifier_t.IdentifierKey
|
|
@@ -61,29 +65,41 @@ class PermissionsScopeMaterialFamily:
|
|
|
61
65
|
|
|
62
66
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
63
67
|
@serial_class(
|
|
68
|
+
named_type_path="sdk.api.permissions.set_core_permissions.PermissionsScopeAllMaterialFamilies",
|
|
64
69
|
parse_require={"type"},
|
|
65
70
|
)
|
|
66
|
-
@dataclasses.dataclass(kw_only=True)
|
|
71
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
67
72
|
class PermissionsScopeAllMaterialFamilies:
|
|
68
73
|
type: typing.Literal["all_material_families"] = "all_material_families"
|
|
69
74
|
|
|
70
75
|
|
|
71
76
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
72
|
-
PermissionsScope = typing.
|
|
77
|
+
PermissionsScope = typing.Annotated[
|
|
78
|
+
PermissionsScopeProject | PermissionsScopeRecipe | PermissionsScopeMaterialFamily | PermissionsScopeAllMaterialFamilies,
|
|
79
|
+
serial_alias_annotation(
|
|
80
|
+
named_type_path="sdk.api.permissions.set_core_permissions.PermissionsScope",
|
|
81
|
+
),
|
|
82
|
+
]
|
|
73
83
|
|
|
74
84
|
|
|
75
85
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
76
|
-
@
|
|
86
|
+
@serial_class(
|
|
87
|
+
named_type_path="sdk.api.permissions.set_core_permissions.Arguments",
|
|
88
|
+
)
|
|
89
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
77
90
|
class Arguments:
|
|
78
91
|
scope: PermissionsScope
|
|
79
92
|
permissions_types: list[permissions_t.CorePermissionType]
|
|
80
93
|
update_type: post_base_t.UpdateType
|
|
81
|
-
user_group_ids:
|
|
82
|
-
user_ids:
|
|
94
|
+
user_group_ids: list[int] | None = None
|
|
95
|
+
user_ids: list[int] | None = None
|
|
83
96
|
|
|
84
97
|
|
|
85
98
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
86
|
-
@
|
|
99
|
+
@serial_class(
|
|
100
|
+
named_type_path="sdk.api.permissions.set_core_permissions.Data",
|
|
101
|
+
)
|
|
102
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
87
103
|
class Data:
|
|
88
104
|
pass
|
|
89
105
|
# 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,7 @@ 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
11
|
from ... import base_t
|
|
12
12
|
from ... import phases_t
|
|
13
13
|
|
|
@@ -24,24 +24,33 @@ ENDPOINT_PATH = "api/external/project/external_get_projects"
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
27
|
-
@
|
|
27
|
+
@serial_class(
|
|
28
|
+
named_type_path="sdk.api.project.get_projects.Arguments",
|
|
29
|
+
)
|
|
30
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
28
31
|
class Arguments:
|
|
29
32
|
all_material_families: bool
|
|
30
|
-
material_family_id:
|
|
33
|
+
material_family_id: base_t.ObjectId | None
|
|
31
34
|
|
|
32
35
|
|
|
33
36
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
34
|
-
@
|
|
37
|
+
@serial_class(
|
|
38
|
+
named_type_path="sdk.api.project.get_projects.Project",
|
|
39
|
+
)
|
|
40
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
35
41
|
class Project:
|
|
36
42
|
id: base_t.ObjectId
|
|
37
43
|
name: str
|
|
38
44
|
material_family_id: base_t.ObjectId
|
|
39
|
-
project_owner_id:
|
|
40
|
-
phase_id:
|
|
45
|
+
project_owner_id: base_t.ObjectId | None
|
|
46
|
+
phase_id: base_t.ObjectId | None
|
|
41
47
|
|
|
42
48
|
|
|
43
49
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
44
|
-
@
|
|
50
|
+
@serial_class(
|
|
51
|
+
named_type_path="sdk.api.project.get_projects.Data",
|
|
52
|
+
)
|
|
53
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
45
54
|
class Data:
|
|
46
55
|
projects: list[Project]
|
|
47
56
|
phases: list[phases_t.Phase]
|
|
@@ -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,7 @@ 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
11
|
from ... import base_t
|
|
12
12
|
from ... import field_values_t
|
|
13
13
|
from ... import fields_t
|
|
@@ -26,26 +26,35 @@ ENDPOINT_PATH = "api/external/project/external_get_projects_data"
|
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
29
|
-
@
|
|
29
|
+
@serial_class(
|
|
30
|
+
named_type_path="sdk.api.project.get_projects_data.Arguments",
|
|
31
|
+
)
|
|
32
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
30
33
|
class Arguments:
|
|
31
34
|
project_ids: list[base_t.ObjectId]
|
|
32
|
-
offset:
|
|
33
|
-
limit:
|
|
35
|
+
offset: int | None = None
|
|
36
|
+
limit: int | None = None
|
|
34
37
|
|
|
35
38
|
|
|
36
39
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
37
|
-
@
|
|
40
|
+
@serial_class(
|
|
41
|
+
named_type_path="sdk.api.project.get_projects_data.ProjectDetailed",
|
|
42
|
+
)
|
|
43
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
38
44
|
class ProjectDetailed:
|
|
39
45
|
id: base_t.ObjectId
|
|
40
46
|
name: str
|
|
41
47
|
material_family_id: base_t.ObjectId
|
|
42
|
-
project_owner_id:
|
|
43
|
-
phase_id:
|
|
48
|
+
project_owner_id: base_t.ObjectId | None
|
|
49
|
+
phase_id: base_t.ObjectId | None
|
|
44
50
|
values: list[field_values_t.ArgumentValueId]
|
|
45
51
|
|
|
46
52
|
|
|
47
53
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
48
|
-
@
|
|
54
|
+
@serial_class(
|
|
55
|
+
named_type_path="sdk.api.project.get_projects_data.Data",
|
|
56
|
+
)
|
|
57
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
49
58
|
class Data:
|
|
50
59
|
projects: list[ProjectDetailed]
|
|
51
60
|
phases: list[phases_t.Phase]
|
|
@@ -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,7 +7,9 @@ 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
11
|
from ... import async_batch_t
|
|
12
|
+
from ... import base_t
|
|
12
13
|
from ... import identifier_t
|
|
13
14
|
from ... import recipe_links_t
|
|
14
15
|
|
|
@@ -24,16 +25,22 @@ ENDPOINT_PATH = "api/external/recipe_links/create_recipe_link"
|
|
|
24
25
|
|
|
25
26
|
|
|
26
27
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
27
|
-
@
|
|
28
|
+
@serial_class(
|
|
29
|
+
named_type_path="sdk.api.recipe_links.create_recipe_link.Arguments",
|
|
30
|
+
)
|
|
31
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
28
32
|
class Arguments:
|
|
29
33
|
recipe_from_key: identifier_t.IdentifierKey
|
|
30
34
|
recipe_to_key: identifier_t.IdentifierKey
|
|
31
|
-
link_type: typing.
|
|
32
|
-
name: str
|
|
35
|
+
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]
|
|
36
|
+
name: str | None = None
|
|
33
37
|
|
|
34
38
|
|
|
35
39
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
36
|
-
@
|
|
40
|
+
@serial_class(
|
|
41
|
+
named_type_path="sdk.api.recipe_links.create_recipe_link.Data",
|
|
42
|
+
)
|
|
43
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
37
44
|
class Data(async_batch_t.AsyncBatchActionReturn):
|
|
38
45
|
pass
|
|
39
46
|
# 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,7 +7,9 @@ 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
11
|
from ... import async_batch_t
|
|
12
|
+
from ... import base_t
|
|
12
13
|
from ... import identifier_t
|
|
13
14
|
from ... import recipe_links_t
|
|
14
15
|
|
|
@@ -24,15 +25,21 @@ ENDPOINT_PATH = "api/external/recipe_links/remove_recipe_link"
|
|
|
24
25
|
|
|
25
26
|
|
|
26
27
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
27
|
-
@
|
|
28
|
+
@serial_class(
|
|
29
|
+
named_type_path="sdk.api.recipe_links.remove_recipe_link.Arguments",
|
|
30
|
+
)
|
|
31
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
28
32
|
class Arguments:
|
|
29
33
|
recipe_from_key: identifier_t.IdentifierKey
|
|
30
34
|
recipe_to_key: identifier_t.IdentifierKey
|
|
31
|
-
link_type: typing.
|
|
35
|
+
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]
|
|
32
36
|
|
|
33
37
|
|
|
34
38
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
35
|
-
@
|
|
39
|
+
@serial_class(
|
|
40
|
+
named_type_path="sdk.api.recipe_links.remove_recipe_link.Data",
|
|
41
|
+
)
|
|
42
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
36
43
|
class Data(async_batch_t.AsyncBatchActionReturn):
|
|
37
44
|
pass
|
|
38
45
|
# 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,7 @@ 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
11
|
from ... import base_t
|
|
12
12
|
|
|
13
13
|
__all__: list[str] = [
|
|
@@ -23,16 +23,22 @@ ENDPOINT_PATH = "api/external/recipe_metadata/external_get_recipe_metadata_data"
|
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
26
|
-
@
|
|
26
|
+
@serial_class(
|
|
27
|
+
named_type_path="sdk.api.recipe_metadata.get_recipe_metadata_data.Arguments",
|
|
28
|
+
)
|
|
29
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
27
30
|
class Arguments:
|
|
28
31
|
material_family_id: base_t.ObjectId
|
|
29
|
-
recipe_metadata_ids:
|
|
30
|
-
offset:
|
|
31
|
-
limit:
|
|
32
|
+
recipe_metadata_ids: list[base_t.ObjectId] | None
|
|
33
|
+
offset: int | None = None
|
|
34
|
+
limit: int | None = None
|
|
32
35
|
|
|
33
36
|
|
|
34
37
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
35
|
-
@
|
|
38
|
+
@serial_class(
|
|
39
|
+
named_type_path="sdk.api.recipe_metadata.get_recipe_metadata_data.FullRecipeMetadataField",
|
|
40
|
+
)
|
|
41
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
36
42
|
class FullRecipeMetadataField:
|
|
37
43
|
recipe_metadata_id: base_t.ObjectId
|
|
38
44
|
name: str
|
|
@@ -40,7 +46,10 @@ class FullRecipeMetadataField:
|
|
|
40
46
|
|
|
41
47
|
|
|
42
48
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
43
|
-
@
|
|
49
|
+
@serial_class(
|
|
50
|
+
named_type_path="sdk.api.recipe_metadata.get_recipe_metadata_data.Data",
|
|
51
|
+
)
|
|
52
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
44
53
|
class Data:
|
|
45
54
|
recipe_metadata: list[FullRecipeMetadataField]
|
|
46
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
|
|
@@ -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,14 +23,20 @@ ENDPOINT_PATH = "api/external/recipes/add_recipe_to_project"
|
|
|
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.add_recipe_to_project.Arguments",
|
|
28
|
+
)
|
|
29
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
26
30
|
class Arguments:
|
|
27
31
|
recipe_key: identifier_t.IdentifierKey
|
|
28
32
|
project_key: identifier_t.IdentifierKey
|
|
29
33
|
|
|
30
34
|
|
|
31
35
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
32
|
-
@
|
|
36
|
+
@serial_class(
|
|
37
|
+
named_type_path="sdk.api.recipes.add_recipe_to_project.Data",
|
|
38
|
+
)
|
|
39
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
33
40
|
class Data:
|
|
34
41
|
pass
|
|
35
42
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,64 @@
|
|
|
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
|
+
from enum import StrEnum
|
|
10
|
+
import dataclasses
|
|
11
|
+
from pkgs.serialization import serial_class
|
|
12
|
+
from ... import async_batch_t
|
|
13
|
+
from ... import base_t
|
|
14
|
+
from ... import identifier_t
|
|
15
|
+
|
|
16
|
+
__all__: list[str] = [
|
|
17
|
+
"Arguments",
|
|
18
|
+
"Data",
|
|
19
|
+
"ENDPOINT_METHOD",
|
|
20
|
+
"ENDPOINT_PATH",
|
|
21
|
+
"OnTimepointConflict",
|
|
22
|
+
"TimeSeriesDatum",
|
|
23
|
+
]
|
|
24
|
+
|
|
25
|
+
ENDPOINT_METHOD = "POST"
|
|
26
|
+
ENDPOINT_PATH = "api/external/recipes/external_add_time_series_data"
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
30
|
+
class OnTimepointConflict(StrEnum):
|
|
31
|
+
OVERWRITE = "overwrite"
|
|
32
|
+
ERROR = "error"
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
36
|
+
@serial_class(
|
|
37
|
+
named_type_path="sdk.api.recipes.add_time_series_data.TimeSeriesDatum",
|
|
38
|
+
to_string_values={"value"},
|
|
39
|
+
)
|
|
40
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
41
|
+
class TimeSeriesDatum:
|
|
42
|
+
timestamp: datetime.datetime
|
|
43
|
+
value: Decimal | None = None
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
47
|
+
@serial_class(
|
|
48
|
+
named_type_path="sdk.api.recipes.add_time_series_data.Arguments",
|
|
49
|
+
)
|
|
50
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
51
|
+
class Arguments:
|
|
52
|
+
time_series_segment_key: identifier_t.IdentifierKey
|
|
53
|
+
time_series_data: list[TimeSeriesDatum]
|
|
54
|
+
on_conflict: OnTimepointConflict = OnTimepointConflict.ERROR
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
58
|
+
@serial_class(
|
|
59
|
+
named_type_path="sdk.api.recipes.add_time_series_data.Data",
|
|
60
|
+
)
|
|
61
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
62
|
+
class Data(async_batch_t.AsyncBatchActionReturn):
|
|
63
|
+
pass
|
|
64
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|