UncountablePythonSDK 0.0.8__py3-none-any.whl → 0.0.92__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.
- UncountablePythonSDK-0.0.92.dist-info/METADATA +61 -0
- UncountablePythonSDK-0.0.92.dist-info/RECORD +301 -0
- {UncountablePythonSDK-0.0.8.dist-info → UncountablePythonSDK-0.0.92.dist-info}/WHEEL +1 -1
- {UncountablePythonSDK-0.0.8.dist-info → UncountablePythonSDK-0.0.92.dist-info}/top_level.txt +1 -1
- docs/.gitignore +1 -0
- docs/conf.py +57 -0
- docs/index.md +13 -0
- docs/justfile +12 -0
- docs/quickstart.md +19 -0
- docs/requirements.txt +7 -0
- docs/static/favicons/android-chrome-192x192.png +0 -0
- docs/static/favicons/android-chrome-512x512.png +0 -0
- docs/static/favicons/apple-touch-icon.png +0 -0
- docs/static/favicons/browserconfig.xml +9 -0
- docs/static/favicons/favicon-16x16.png +0 -0
- docs/static/favicons/favicon-32x32.png +0 -0
- docs/static/favicons/manifest.json +18 -0
- docs/static/favicons/mstile-150x150.png +0 -0
- docs/static/favicons/safari-pinned-tab.svg +32 -0
- docs/static/logo_blue.png +0 -0
- examples/async_batch.py +35 -0
- examples/create_entity.py +22 -17
- examples/download_files.py +26 -0
- examples/edit_recipe_inputs.py +50 -0
- examples/integration-server/jobs/materials_auto/example_cron.py +18 -0
- examples/integration-server/jobs/materials_auto/example_wh.py +15 -0
- examples/integration-server/jobs/materials_auto/profile.yaml +43 -0
- examples/integration-server/pyproject.toml +224 -0
- examples/invoke_uploader.py +26 -0
- examples/set_recipe_metadata_file.py +40 -0
- examples/set_recipe_output_file_sdk.py +26 -0
- examples/upload_files.py +18 -0
- pkgs/argument_parser/__init__.py +5 -0
- pkgs/argument_parser/_is_enum.py +1 -6
- pkgs/argument_parser/argument_parser.py +232 -76
- pkgs/argument_parser/case_convert.py +4 -3
- pkgs/filesystem_utils/__init__.py +20 -0
- pkgs/filesystem_utils/_blob_session.py +137 -0
- pkgs/filesystem_utils/_gdrive_session.py +309 -0
- pkgs/filesystem_utils/_local_session.py +69 -0
- pkgs/filesystem_utils/_s3_session.py +117 -0
- pkgs/filesystem_utils/_sftp_session.py +147 -0
- pkgs/filesystem_utils/file_type_utils.py +91 -0
- pkgs/filesystem_utils/filesystem_session.py +39 -0
- pkgs/py.typed +0 -0
- pkgs/serialization/__init__.py +8 -1
- 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 +65 -50
- pkgs/serialization/serial_generic.py +16 -0
- pkgs/serialization/serial_union.py +84 -0
- pkgs/serialization/yaml.py +57 -0
- pkgs/serialization_util/__init__.py +7 -7
- pkgs/serialization_util/_get_type_for_serialization.py +1 -3
- pkgs/serialization_util/convert_to_snakecase.py +27 -0
- pkgs/serialization_util/dataclasses.py +14 -0
- pkgs/serialization_util/serialization_helpers.py +116 -74
- pkgs/strenum_compat/strenum_compat.py +1 -9
- pkgs/type_spec/actions_registry/__init__.py +0 -0
- pkgs/type_spec/actions_registry/__main__.py +126 -0
- pkgs/type_spec/actions_registry/emit_typescript.py +182 -0
- pkgs/type_spec/builder.py +475 -89
- pkgs/type_spec/config.py +24 -19
- pkgs/type_spec/emit_io_ts.py +5 -2
- pkgs/type_spec/emit_open_api.py +266 -32
- pkgs/type_spec/emit_open_api_util.py +32 -13
- pkgs/type_spec/emit_python.py +599 -151
- pkgs/type_spec/emit_typescript.py +74 -273
- pkgs/type_spec/emit_typescript_util.py +239 -5
- pkgs/type_spec/load_types.py +55 -10
- pkgs/type_spec/open_api_util.py +30 -41
- pkgs/type_spec/parts/base.py.prepart +4 -3
- pkgs/type_spec/type_info/emit_type_info.py +178 -16
- pkgs/type_spec/util.py +11 -11
- pkgs/type_spec/value_spec/__main__.py +3 -3
- pkgs/type_spec/value_spec/convert_type.py +8 -1
- pkgs/type_spec/value_spec/emit_python.py +13 -4
- uncountable/__init__.py +1 -2
- uncountable/core/__init__.py +12 -2
- uncountable/core/async_batch.py +37 -0
- uncountable/core/client.py +293 -43
- uncountable/core/environment.py +41 -0
- uncountable/core/file_upload.py +135 -0
- uncountable/core/types.py +17 -0
- uncountable/integration/__init__.py +0 -0
- uncountable/integration/cli.py +49 -0
- uncountable/integration/construct_client.py +51 -0
- uncountable/integration/cron.py +29 -0
- uncountable/integration/db/__init__.py +0 -0
- uncountable/integration/db/connect.py +18 -0
- uncountable/integration/db/session.py +25 -0
- uncountable/integration/entrypoint.py +13 -0
- uncountable/integration/executors/__init__.py +0 -0
- uncountable/integration/executors/executors.py +148 -0
- uncountable/integration/executors/generic_upload_executor.py +284 -0
- uncountable/integration/executors/script_executor.py +25 -0
- uncountable/integration/job.py +87 -0
- uncountable/integration/queue_runner/__init__.py +0 -0
- uncountable/integration/queue_runner/command_server/__init__.py +24 -0
- uncountable/integration/queue_runner/command_server/command_client.py +68 -0
- uncountable/integration/queue_runner/command_server/command_server.py +64 -0
- uncountable/integration/queue_runner/command_server/protocol/__init__.py +0 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server.proto +22 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +40 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +38 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +129 -0
- uncountable/integration/queue_runner/command_server/types.py +52 -0
- uncountable/integration/queue_runner/datastore/__init__.py +3 -0
- uncountable/integration/queue_runner/datastore/datastore_sqlite.py +93 -0
- uncountable/integration/queue_runner/datastore/interface.py +19 -0
- uncountable/integration/queue_runner/datastore/model.py +17 -0
- uncountable/integration/queue_runner/job_scheduler.py +163 -0
- uncountable/integration/queue_runner/queue_runner.py +26 -0
- uncountable/integration/queue_runner/types.py +7 -0
- uncountable/integration/queue_runner/worker.py +119 -0
- uncountable/integration/scan_profiles.py +67 -0
- uncountable/integration/scheduler.py +150 -0
- uncountable/integration/secret_retrieval/__init__.py +3 -0
- uncountable/integration/secret_retrieval/retrieve_secret.py +93 -0
- uncountable/integration/server.py +117 -0
- uncountable/integration/telemetry.py +209 -0
- uncountable/integration/webhook_server/entrypoint.py +170 -0
- uncountable/types/__init__.py +136 -20
- uncountable/types/api/batch/execute_batch.py +15 -7
- uncountable/types/api/batch/execute_batch_load_async.py +42 -0
- uncountable/types/api/chemical/__init__.py +1 -0
- uncountable/types/api/chemical/convert_chemical_formats.py +63 -0
- uncountable/types/api/entity/create_entities.py +23 -11
- uncountable/types/api/entity/create_entity.py +21 -12
- uncountable/types/api/entity/get_entities_data.py +18 -8
- uncountable/types/api/entity/grant_entity_permissions.py +48 -0
- uncountable/types/api/entity/list_entities.py +27 -12
- uncountable/types/api/entity/lock_entity.py +45 -0
- uncountable/types/api/entity/resolve_entity_ids.py +17 -7
- uncountable/types/api/entity/set_entity_field_values.py +44 -0
- uncountable/types/api/entity/set_values.py +14 -7
- uncountable/types/api/entity/transition_entity_phase.py +80 -0
- uncountable/types/api/entity/unlock_entity.py +44 -0
- uncountable/types/api/equipment/__init__.py +1 -0
- uncountable/types/api/equipment/associate_equipment_input.py +44 -0
- uncountable/types/api/field_options/__init__.py +1 -0
- uncountable/types/api/field_options/upsert_field_options.py +55 -0
- uncountable/types/api/files/__init__.py +1 -0
- uncountable/types/api/files/download_file.py +77 -0
- uncountable/types/api/id_source/__init__.py +1 -0
- uncountable/types/api/id_source/list_id_source.py +56 -0
- uncountable/types/api/id_source/match_id_source.py +54 -0
- uncountable/types/api/input_groups/get_input_group_names.py +16 -6
- uncountable/types/api/inputs/create_inputs.py +24 -11
- uncountable/types/api/inputs/get_input_data.py +32 -13
- uncountable/types/api/inputs/get_input_names.py +18 -8
- uncountable/types/api/inputs/get_inputs_data.py +29 -10
- uncountable/types/api/inputs/set_input_attribute_values.py +16 -9
- uncountable/types/api/inputs/set_input_category.py +44 -0
- uncountable/types/api/inputs/set_input_subcategories.py +45 -0
- uncountable/types/api/inputs/set_intermediate_type.py +50 -0
- uncountable/types/api/material_families/__init__.py +1 -0
- uncountable/types/api/material_families/update_entity_material_families.py +48 -0
- uncountable/types/api/outputs/get_output_data.py +32 -16
- uncountable/types/api/outputs/get_output_names.py +18 -8
- uncountable/types/api/outputs/resolve_output_conditions.py +23 -10
- uncountable/types/api/permissions/__init__.py +1 -0
- uncountable/types/api/permissions/set_core_permissions.py +105 -0
- uncountable/types/api/project/get_projects.py +17 -7
- uncountable/types/api/project/get_projects_data.py +21 -11
- uncountable/types/api/recipe_links/__init__.py +1 -0
- uncountable/types/api/recipe_links/create_recipe_link.py +46 -0
- uncountable/types/api/recipe_links/remove_recipe_link.py +45 -0
- uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +18 -8
- uncountable/types/api/recipes/add_recipe_to_project.py +42 -0
- uncountable/types/api/recipes/archive_recipes.py +42 -0
- uncountable/types/api/recipes/associate_recipe_as_input.py +44 -0
- uncountable/types/api/recipes/associate_recipe_as_lot.py +43 -0
- uncountable/types/api/recipes/clear_recipe_outputs.py +42 -0
- uncountable/types/api/recipes/create_recipe.py +51 -0
- uncountable/types/api/recipes/create_recipes.py +25 -12
- uncountable/types/api/recipes/disassociate_recipe_as_input.py +42 -0
- uncountable/types/api/recipes/edit_recipe_inputs.py +283 -0
- uncountable/types/api/recipes/get_column_calculation_values.py +58 -0
- uncountable/types/api/recipes/get_curve.py +15 -7
- uncountable/types/api/recipes/get_recipe_calculations.py +17 -10
- uncountable/types/api/recipes/get_recipe_links.py +13 -6
- uncountable/types/api/recipes/get_recipe_names.py +16 -6
- uncountable/types/api/recipes/get_recipe_output_metadata.py +14 -7
- uncountable/types/api/recipes/get_recipes_data.py +63 -38
- uncountable/types/api/recipes/lock_recipes.py +63 -0
- uncountable/types/api/recipes/remove_recipe_from_project.py +42 -0
- uncountable/types/api/recipes/set_recipe_inputs.py +19 -10
- uncountable/types/api/recipes/set_recipe_metadata.py +43 -0
- uncountable/types/api/recipes/set_recipe_output_annotations.py +115 -0
- uncountable/types/api/recipes/set_recipe_output_file.py +56 -0
- uncountable/types/api/recipes/set_recipe_outputs.py +26 -12
- uncountable/types/api/recipes/set_recipe_tags.py +109 -0
- uncountable/types/api/recipes/unarchive_recipes.py +41 -0
- uncountable/types/api/recipes/unlock_recipes.py +50 -0
- uncountable/types/api/triggers/__init__.py +1 -0
- uncountable/types/api/triggers/run_trigger.py +43 -0
- uncountable/types/api/uploader/__init__.py +1 -0
- uncountable/types/api/uploader/invoke_uploader.py +47 -0
- uncountable/types/async_batch.py +13 -0
- uncountable/types/async_batch_processor.py +384 -0
- uncountable/types/async_batch_t.py +97 -0
- uncountable/types/async_jobs.py +9 -0
- uncountable/types/async_jobs_t.py +53 -0
- uncountable/types/auth_retrieval.py +12 -0
- uncountable/types/auth_retrieval_t.py +75 -0
- uncountable/types/base.py +5 -78
- uncountable/types/base_t.py +85 -0
- uncountable/types/calculations.py +3 -18
- uncountable/types/calculations_t.py +27 -0
- uncountable/types/chemical_structure.py +8 -0
- uncountable/types/chemical_structure_t.py +28 -0
- uncountable/types/client_base.py +1093 -54
- uncountable/types/client_config.py +8 -0
- uncountable/types/client_config_t.py +26 -0
- uncountable/types/curves.py +5 -42
- uncountable/types/curves_t.py +51 -0
- uncountable/types/entity.py +8 -269
- uncountable/types/entity_t.py +393 -0
- uncountable/types/experiment_groups.py +3 -18
- uncountable/types/experiment_groups_t.py +27 -0
- uncountable/types/field_values.py +17 -60
- uncountable/types/field_values_t.py +204 -0
- uncountable/types/fields.py +3 -19
- uncountable/types/fields_t.py +28 -0
- uncountable/types/generic_upload.py +15 -0
- uncountable/types/generic_upload_t.py +119 -0
- uncountable/types/id_source.py +12 -0
- uncountable/types/id_source_t.py +68 -0
- uncountable/types/identifier.py +11 -0
- uncountable/types/identifier_t.py +63 -0
- uncountable/types/input_attributes.py +3 -24
- uncountable/types/input_attributes_t.py +30 -0
- uncountable/types/inputs.py +6 -56
- uncountable/types/inputs_t.py +83 -0
- uncountable/types/integration_server.py +9 -0
- uncountable/types/integration_server_t.py +42 -0
- uncountable/types/job_definition.py +27 -0
- uncountable/types/job_definition_t.py +260 -0
- uncountable/types/outputs.py +3 -21
- uncountable/types/outputs_t.py +30 -0
- uncountable/types/overrides.py +10 -0
- uncountable/types/overrides_t.py +49 -0
- uncountable/types/permissions.py +8 -0
- uncountable/types/permissions_t.py +46 -0
- uncountable/types/phases.py +3 -18
- uncountable/types/phases_t.py +27 -0
- uncountable/types/post_base.py +8 -0
- uncountable/types/post_base_t.py +30 -0
- uncountable/types/queued_job.py +16 -0
- uncountable/types/queued_job_t.py +123 -0
- uncountable/types/recipe_identifiers.py +12 -0
- uncountable/types/recipe_identifiers_t.py +76 -0
- uncountable/types/recipe_inputs.py +9 -0
- uncountable/types/recipe_inputs_t.py +30 -0
- uncountable/types/recipe_links.py +4 -45
- uncountable/types/recipe_links_t.py +54 -0
- uncountable/types/recipe_metadata.py +5 -45
- uncountable/types/recipe_metadata_t.py +58 -0
- uncountable/types/recipe_output_metadata.py +3 -19
- uncountable/types/recipe_output_metadata_t.py +28 -0
- uncountable/types/recipe_tags.py +3 -18
- uncountable/types/recipe_tags_t.py +27 -0
- uncountable/types/recipe_workflow_steps.py +14 -0
- uncountable/types/recipe_workflow_steps_t.py +95 -0
- uncountable/types/recipes.py +8 -0
- uncountable/types/recipes_t.py +25 -0
- uncountable/types/response.py +3 -20
- uncountable/types/response_t.py +26 -0
- uncountable/types/secret_retrieval.py +12 -0
- uncountable/types/secret_retrieval_t.py +75 -0
- uncountable/types/units.py +3 -18
- uncountable/types/units_t.py +27 -0
- uncountable/types/users.py +3 -19
- uncountable/types/users_t.py +28 -0
- uncountable/types/webhook_job.py +9 -0
- uncountable/types/webhook_job_t.py +37 -0
- uncountable/types/workflows.py +4 -27
- uncountable/types/workflows_t.py +39 -0
- UncountablePythonSDK-0.0.8.dist-info/METADATA +0 -27
- UncountablePythonSDK-0.0.8.dist-info/RECORD +0 -134
- examples/recipe-import/importer.py +0 -39
- type_spec/external/api/batch/execute_batch.yaml +0 -56
- type_spec/external/api/entity/create_entities.yaml +0 -33
- type_spec/external/api/entity/create_entity.yaml +0 -39
- type_spec/external/api/entity/get_entities_data.yaml +0 -29
- type_spec/external/api/entity/list_entities.yaml +0 -52
- type_spec/external/api/entity/resolve_entity_ids.yaml +0 -29
- type_spec/external/api/entity/set_values.yaml +0 -18
- type_spec/external/api/input_groups/get_input_group_names.yaml +0 -29
- type_spec/external/api/inputs/create_inputs.yaml +0 -48
- type_spec/external/api/inputs/get_input_data.yaml +0 -95
- type_spec/external/api/inputs/get_input_names.yaml +0 -38
- type_spec/external/api/inputs/get_inputs_data.yaml +0 -82
- type_spec/external/api/inputs/set_input_attribute_values.yaml +0 -33
- type_spec/external/api/outputs/get_output_data.yaml +0 -92
- type_spec/external/api/outputs/get_output_names.yaml +0 -35
- type_spec/external/api/outputs/resolve_output_conditions.yaml +0 -50
- type_spec/external/api/project/get_projects.yaml +0 -42
- type_spec/external/api/project/get_projects_data.yaml +0 -50
- type_spec/external/api/recipe_metadata/get_recipe_metadata_data.yaml +0 -41
- type_spec/external/api/recipes/create_recipes.yaml +0 -47
- type_spec/external/api/recipes/get_curve.yaml +0 -18
- type_spec/external/api/recipes/get_recipe_calculations.yaml +0 -39
- type_spec/external/api/recipes/get_recipe_links.yaml +0 -26
- type_spec/external/api/recipes/get_recipe_names.yaml +0 -29
- type_spec/external/api/recipes/get_recipe_output_metadata.yaml +0 -36
- type_spec/external/api/recipes/get_recipes_data.yaml +0 -238
- type_spec/external/api/recipes/set_recipe_inputs.yaml +0 -36
- type_spec/external/api/recipes/set_recipe_outputs.yaml +0 -52
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# flake8: noqa: F821
|
|
3
|
+
# ruff: noqa: E402 Q003
|
|
4
|
+
# fmt: off
|
|
5
|
+
# isort: skip_file
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
import typing # noqa: F401
|
|
8
|
+
import datetime # noqa: F401
|
|
9
|
+
from decimal import Decimal # noqa: F401
|
|
10
|
+
from pkgs.strenum_compat import StrEnum
|
|
11
|
+
import dataclasses
|
|
12
|
+
from pkgs.serialization import serial_class
|
|
13
|
+
from pkgs.serialization import serial_union_annotation
|
|
14
|
+
from . import base_t
|
|
15
|
+
from . import entity_t
|
|
16
|
+
from . import identifier_t
|
|
17
|
+
|
|
18
|
+
__all__: list[str] = [
|
|
19
|
+
"ArgumentValueId",
|
|
20
|
+
"ArgumentValueRefName",
|
|
21
|
+
"FieldArgumentValue",
|
|
22
|
+
"FieldRefIdNameValue",
|
|
23
|
+
"FieldRefNameValue",
|
|
24
|
+
"FieldValue",
|
|
25
|
+
"FieldValueBase",
|
|
26
|
+
"FieldValueBatchReference",
|
|
27
|
+
"FieldValueBoolean",
|
|
28
|
+
"FieldValueFiles",
|
|
29
|
+
"FieldValueId",
|
|
30
|
+
"FieldValueIds",
|
|
31
|
+
"FieldValueNumeric",
|
|
32
|
+
"FieldValueText",
|
|
33
|
+
"FieldValueType",
|
|
34
|
+
]
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
38
|
+
@serial_class(
|
|
39
|
+
named_type_path="sdk.field_values.FieldRefNameValue",
|
|
40
|
+
unconverted_values={"value"},
|
|
41
|
+
)
|
|
42
|
+
@dataclasses.dataclass(kw_only=True)
|
|
43
|
+
class FieldRefNameValue:
|
|
44
|
+
field_ref_name: str
|
|
45
|
+
value: base_t.JsonValue
|
|
46
|
+
row_index: typing.Optional[int] | None = None
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
50
|
+
@serial_class(
|
|
51
|
+
named_type_path="sdk.field_values.FieldRefIdNameValue",
|
|
52
|
+
unconverted_values={"value"},
|
|
53
|
+
)
|
|
54
|
+
@dataclasses.dataclass(kw_only=True)
|
|
55
|
+
class FieldRefIdNameValue:
|
|
56
|
+
field_id: base_t.ObjectId
|
|
57
|
+
field_ref_name: str
|
|
58
|
+
value: base_t.JsonValue
|
|
59
|
+
row_index: typing.Optional[int] | None = None
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
63
|
+
@serial_class(
|
|
64
|
+
named_type_path="sdk.field_values.ArgumentValueRefName",
|
|
65
|
+
unconverted_values={"value"},
|
|
66
|
+
)
|
|
67
|
+
@dataclasses.dataclass(kw_only=True)
|
|
68
|
+
class ArgumentValueRefName:
|
|
69
|
+
field_ref_name: str
|
|
70
|
+
value: base_t.JsonValue
|
|
71
|
+
row_index: typing.Optional[int] | None = None
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
75
|
+
@serial_class(
|
|
76
|
+
named_type_path="sdk.field_values.ArgumentValueId",
|
|
77
|
+
unconverted_values={"value"},
|
|
78
|
+
)
|
|
79
|
+
@dataclasses.dataclass(kw_only=True)
|
|
80
|
+
class ArgumentValueId:
|
|
81
|
+
field_id: base_t.ObjectId
|
|
82
|
+
value: base_t.JsonValue
|
|
83
|
+
row_index: typing.Optional[int] | None = None
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
87
|
+
class FieldValueType(StrEnum):
|
|
88
|
+
FILES = "files"
|
|
89
|
+
TEXT = "text"
|
|
90
|
+
ID = "id"
|
|
91
|
+
IDS = "ids"
|
|
92
|
+
BOOLEAN = "boolean"
|
|
93
|
+
NUMERIC = "numeric"
|
|
94
|
+
BATCH_REFERENCE = "batch_reference"
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
98
|
+
@serial_class(
|
|
99
|
+
named_type_path="sdk.field_values.FieldValueBase",
|
|
100
|
+
)
|
|
101
|
+
@dataclasses.dataclass(kw_only=True)
|
|
102
|
+
class FieldValueBase:
|
|
103
|
+
type: FieldValueType
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
107
|
+
@serial_class(
|
|
108
|
+
named_type_path="sdk.field_values.FieldValueFiles",
|
|
109
|
+
parse_require={"type"},
|
|
110
|
+
)
|
|
111
|
+
@dataclasses.dataclass(kw_only=True)
|
|
112
|
+
class FieldValueFiles(FieldValueBase):
|
|
113
|
+
type: typing.Literal[FieldValueType.FILES] = FieldValueType.FILES
|
|
114
|
+
file_ids: list[base_t.ObjectId]
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
118
|
+
@serial_class(
|
|
119
|
+
named_type_path="sdk.field_values.FieldValueId",
|
|
120
|
+
parse_require={"type"},
|
|
121
|
+
)
|
|
122
|
+
@dataclasses.dataclass(kw_only=True)
|
|
123
|
+
class FieldValueId(FieldValueBase):
|
|
124
|
+
type: typing.Literal[FieldValueType.ID] = FieldValueType.ID
|
|
125
|
+
entity_type: entity_t.EntityType
|
|
126
|
+
identifier_key: identifier_t.IdentifierKey
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
130
|
+
@serial_class(
|
|
131
|
+
named_type_path="sdk.field_values.FieldValueIds",
|
|
132
|
+
parse_require={"type"},
|
|
133
|
+
)
|
|
134
|
+
@dataclasses.dataclass(kw_only=True)
|
|
135
|
+
class FieldValueIds(FieldValueBase):
|
|
136
|
+
type: typing.Literal[FieldValueType.IDS] = FieldValueType.IDS
|
|
137
|
+
entity_type: entity_t.EntityType
|
|
138
|
+
identifier_keys: list[identifier_t.IdentifierKey]
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
142
|
+
@serial_class(
|
|
143
|
+
named_type_path="sdk.field_values.FieldValueText",
|
|
144
|
+
parse_require={"type"},
|
|
145
|
+
)
|
|
146
|
+
@dataclasses.dataclass(kw_only=True)
|
|
147
|
+
class FieldValueText(FieldValueBase):
|
|
148
|
+
type: typing.Literal[FieldValueType.TEXT] = FieldValueType.TEXT
|
|
149
|
+
value: str
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
153
|
+
@serial_class(
|
|
154
|
+
named_type_path="sdk.field_values.FieldValueBoolean",
|
|
155
|
+
parse_require={"type"},
|
|
156
|
+
)
|
|
157
|
+
@dataclasses.dataclass(kw_only=True)
|
|
158
|
+
class FieldValueBoolean(FieldValueBase):
|
|
159
|
+
type: typing.Literal[FieldValueType.BOOLEAN] = FieldValueType.BOOLEAN
|
|
160
|
+
value: bool
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
164
|
+
@serial_class(
|
|
165
|
+
named_type_path="sdk.field_values.FieldValueNumeric",
|
|
166
|
+
to_string_values={"value"},
|
|
167
|
+
parse_require={"type"},
|
|
168
|
+
)
|
|
169
|
+
@dataclasses.dataclass(kw_only=True)
|
|
170
|
+
class FieldValueNumeric(FieldValueBase):
|
|
171
|
+
type: typing.Literal[FieldValueType.NUMERIC] = FieldValueType.NUMERIC
|
|
172
|
+
value: Decimal
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
176
|
+
@serial_class(
|
|
177
|
+
named_type_path="sdk.field_values.FieldValueBatchReference",
|
|
178
|
+
parse_require={"type"},
|
|
179
|
+
)
|
|
180
|
+
@dataclasses.dataclass(kw_only=True)
|
|
181
|
+
class FieldValueBatchReference(FieldValueBase):
|
|
182
|
+
type: typing.Literal[FieldValueType.BATCH_REFERENCE] = FieldValueType.BATCH_REFERENCE
|
|
183
|
+
reference_key: identifier_t.IdentifierKeyBatchReference
|
|
184
|
+
data_key: str
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
188
|
+
FieldValue = typing.Annotated[
|
|
189
|
+
typing.Union[FieldValueFiles, FieldValueId, FieldValueIds, FieldValueText, FieldValueBoolean, FieldValueNumeric, FieldValueBatchReference],
|
|
190
|
+
serial_union_annotation(
|
|
191
|
+
named_type_path="sdk.field_values.FieldValue",
|
|
192
|
+
),
|
|
193
|
+
]
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
197
|
+
@serial_class(
|
|
198
|
+
named_type_path="sdk.field_values.FieldArgumentValue",
|
|
199
|
+
)
|
|
200
|
+
@dataclasses.dataclass(kw_only=True)
|
|
201
|
+
class FieldArgumentValue:
|
|
202
|
+
field_key: identifier_t.IdentifierKey
|
|
203
|
+
value: FieldValue
|
|
204
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
uncountable/types/fields.py
CHANGED
|
@@ -1,24 +1,8 @@
|
|
|
1
|
-
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
1
|
# flake8: noqa: F821
|
|
3
|
-
# ruff: noqa: E402
|
|
2
|
+
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
6
|
-
from __future__ import annotations
|
|
7
|
-
import typing # noqa: F401
|
|
8
|
-
import datetime # noqa: F401
|
|
9
|
-
from decimal import Decimal # noqa: F401
|
|
10
|
-
from dataclasses import dataclass
|
|
11
|
-
from . import base as base_t
|
|
12
|
-
|
|
13
|
-
__all__: list[str] = [
|
|
14
|
-
"Field",
|
|
15
|
-
]
|
|
16
|
-
|
|
17
|
-
|
|
18
5
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
id: base_t.ObjectId
|
|
22
|
-
name: str
|
|
23
|
-
value_type: str
|
|
6
|
+
# Kept only for SDK backwards compatibility
|
|
7
|
+
from .fields_t import Field as Field
|
|
24
8
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# flake8: noqa: F821
|
|
3
|
+
# ruff: noqa: E402 Q003
|
|
4
|
+
# fmt: off
|
|
5
|
+
# isort: skip_file
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
import typing # noqa: F401
|
|
8
|
+
import datetime # noqa: F401
|
|
9
|
+
from decimal import Decimal # noqa: F401
|
|
10
|
+
import dataclasses
|
|
11
|
+
from pkgs.serialization import serial_class
|
|
12
|
+
from . import base_t
|
|
13
|
+
|
|
14
|
+
__all__: list[str] = [
|
|
15
|
+
"Field",
|
|
16
|
+
]
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
20
|
+
@serial_class(
|
|
21
|
+
named_type_path="sdk.fields.Field",
|
|
22
|
+
)
|
|
23
|
+
@dataclasses.dataclass(kw_only=True)
|
|
24
|
+
class Field:
|
|
25
|
+
id: base_t.ObjectId
|
|
26
|
+
name: str
|
|
27
|
+
value_type: str
|
|
28
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# flake8: noqa: F821
|
|
2
|
+
# ruff: noqa: E402 Q003
|
|
3
|
+
# fmt: off
|
|
4
|
+
# isort: skip_file
|
|
5
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
6
|
+
# Kept only for SDK backwards compatibility
|
|
7
|
+
from .generic_upload_t import GenericRemoteDirectoryScope as GenericRemoteDirectoryScope
|
|
8
|
+
from .generic_upload_t import UploadDestinationType as UploadDestinationType
|
|
9
|
+
from .generic_upload_t import UploadDestinationBase as UploadDestinationBase
|
|
10
|
+
from .generic_upload_t import UploadDestinationProject as UploadDestinationProject
|
|
11
|
+
from .generic_upload_t import UploadDestinationMaterialFamily as UploadDestinationMaterialFamily
|
|
12
|
+
from .generic_upload_t import UploadDestinationRecipe as UploadDestinationRecipe
|
|
13
|
+
from .generic_upload_t import UploadDestination as UploadDestination
|
|
14
|
+
from .generic_upload_t import GenericUploadStrategy as GenericUploadStrategy
|
|
15
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# flake8: noqa: F821
|
|
3
|
+
# ruff: noqa: E402 Q003
|
|
4
|
+
# fmt: off
|
|
5
|
+
# isort: skip_file
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
import typing # noqa: F401
|
|
8
|
+
import datetime # noqa: F401
|
|
9
|
+
from decimal import Decimal # noqa: F401
|
|
10
|
+
from pkgs.strenum_compat import StrEnum
|
|
11
|
+
import dataclasses
|
|
12
|
+
from pkgs.serialization import serial_class
|
|
13
|
+
from pkgs.serialization import serial_union_annotation
|
|
14
|
+
from . import identifier_t
|
|
15
|
+
|
|
16
|
+
__all__: list[str] = [
|
|
17
|
+
"GenericRemoteDirectoryScope",
|
|
18
|
+
"GenericUploadStrategy",
|
|
19
|
+
"UploadDestination",
|
|
20
|
+
"UploadDestinationBase",
|
|
21
|
+
"UploadDestinationMaterialFamily",
|
|
22
|
+
"UploadDestinationProject",
|
|
23
|
+
"UploadDestinationRecipe",
|
|
24
|
+
"UploadDestinationType",
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
29
|
+
@serial_class(
|
|
30
|
+
named_type_path="sdk.generic_upload.GenericRemoteDirectoryScope",
|
|
31
|
+
)
|
|
32
|
+
@dataclasses.dataclass(kw_only=True)
|
|
33
|
+
class GenericRemoteDirectoryScope:
|
|
34
|
+
src_path: str
|
|
35
|
+
success_archive_path: str
|
|
36
|
+
failure_archive_path: str
|
|
37
|
+
recursive: bool
|
|
38
|
+
prepend_date_on_archive: bool
|
|
39
|
+
valid_file_extensions: list[str] | None = None
|
|
40
|
+
filename_regex: str | None = None
|
|
41
|
+
max_files: int | None = None
|
|
42
|
+
detection_keyword: str | None = None
|
|
43
|
+
delimiter: str | None = None
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
47
|
+
class UploadDestinationType(StrEnum):
|
|
48
|
+
PROJECT = "project"
|
|
49
|
+
MATERIAL_FAMILY = "material_family"
|
|
50
|
+
RECIPE = "recipe"
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
54
|
+
@serial_class(
|
|
55
|
+
named_type_path="sdk.generic_upload.UploadDestinationBase",
|
|
56
|
+
)
|
|
57
|
+
@dataclasses.dataclass(kw_only=True)
|
|
58
|
+
class UploadDestinationBase:
|
|
59
|
+
type: UploadDestinationType
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
63
|
+
@serial_class(
|
|
64
|
+
named_type_path="sdk.generic_upload.UploadDestinationProject",
|
|
65
|
+
parse_require={"type"},
|
|
66
|
+
)
|
|
67
|
+
@dataclasses.dataclass(kw_only=True)
|
|
68
|
+
class UploadDestinationProject(UploadDestinationBase):
|
|
69
|
+
type: typing.Literal[UploadDestinationType.PROJECT] = UploadDestinationType.PROJECT
|
|
70
|
+
project_key: identifier_t.IdentifierKey
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
74
|
+
@serial_class(
|
|
75
|
+
named_type_path="sdk.generic_upload.UploadDestinationMaterialFamily",
|
|
76
|
+
parse_require={"type"},
|
|
77
|
+
)
|
|
78
|
+
@dataclasses.dataclass(kw_only=True)
|
|
79
|
+
class UploadDestinationMaterialFamily(UploadDestinationBase):
|
|
80
|
+
type: typing.Literal[UploadDestinationType.MATERIAL_FAMILY] = UploadDestinationType.MATERIAL_FAMILY
|
|
81
|
+
material_family_key: identifier_t.IdentifierKey
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
85
|
+
@serial_class(
|
|
86
|
+
named_type_path="sdk.generic_upload.UploadDestinationRecipe",
|
|
87
|
+
parse_require={"type"},
|
|
88
|
+
)
|
|
89
|
+
@dataclasses.dataclass(kw_only=True)
|
|
90
|
+
class UploadDestinationRecipe(UploadDestinationBase):
|
|
91
|
+
type: typing.Literal[UploadDestinationType.RECIPE] = UploadDestinationType.RECIPE
|
|
92
|
+
recipe_key: identifier_t.IdentifierKey
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
96
|
+
UploadDestination = typing.Annotated[
|
|
97
|
+
typing.Union[UploadDestinationProject, UploadDestinationMaterialFamily, UploadDestinationRecipe],
|
|
98
|
+
serial_union_annotation(
|
|
99
|
+
named_type_path="sdk.generic_upload.UploadDestination",
|
|
100
|
+
discriminator="type",
|
|
101
|
+
discriminator_map={
|
|
102
|
+
"project": UploadDestinationProject,
|
|
103
|
+
"material_family": UploadDestinationMaterialFamily,
|
|
104
|
+
"recipe": UploadDestinationRecipe,
|
|
105
|
+
},
|
|
106
|
+
),
|
|
107
|
+
]
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
111
|
+
@serial_class(
|
|
112
|
+
named_type_path="sdk.generic_upload.GenericUploadStrategy",
|
|
113
|
+
)
|
|
114
|
+
@dataclasses.dataclass(kw_only=True)
|
|
115
|
+
class GenericUploadStrategy:
|
|
116
|
+
uploader_key: identifier_t.IdentifierKey
|
|
117
|
+
destinations: list[UploadDestination]
|
|
118
|
+
skip_moving_files: bool = False
|
|
119
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# flake8: noqa: F821
|
|
2
|
+
# ruff: noqa: E402 Q003
|
|
3
|
+
# fmt: off
|
|
4
|
+
# isort: skip_file
|
|
5
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
6
|
+
# Kept only for SDK backwards compatibility
|
|
7
|
+
from .id_source_t import IdSourceSpecBase as IdSourceSpecBase
|
|
8
|
+
from .id_source_t import IdSourceSpecEntity as IdSourceSpecEntity
|
|
9
|
+
from .id_source_t import IdSourceSpecCustomEntity as IdSourceSpecCustomEntity
|
|
10
|
+
from .id_source_t import IdSourceSpecFieldOptions as IdSourceSpecFieldOptions
|
|
11
|
+
from .id_source_t import IdSourceSpec as IdSourceSpec
|
|
12
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# flake8: noqa: F821
|
|
3
|
+
# ruff: noqa: E402 Q003
|
|
4
|
+
# fmt: off
|
|
5
|
+
# isort: skip_file
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
import typing # noqa: F401
|
|
8
|
+
import datetime # noqa: F401
|
|
9
|
+
from decimal import Decimal # noqa: F401
|
|
10
|
+
import dataclasses
|
|
11
|
+
from pkgs.serialization import serial_class
|
|
12
|
+
from pkgs.serialization import serial_alias_annotation
|
|
13
|
+
from . import entity_t
|
|
14
|
+
|
|
15
|
+
__all__: list[str] = [
|
|
16
|
+
"IdSourceSpec",
|
|
17
|
+
"IdSourceSpecBase",
|
|
18
|
+
"IdSourceSpecCustomEntity",
|
|
19
|
+
"IdSourceSpecEntity",
|
|
20
|
+
"IdSourceSpecFieldOptions",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
25
|
+
@serial_class(
|
|
26
|
+
named_type_path="sdk.id_source.IdSourceSpecBase",
|
|
27
|
+
)
|
|
28
|
+
@dataclasses.dataclass(kw_only=True)
|
|
29
|
+
class IdSourceSpecBase:
|
|
30
|
+
pass
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
34
|
+
@serial_class(
|
|
35
|
+
named_type_path="sdk.id_source.IdSourceSpecEntity",
|
|
36
|
+
)
|
|
37
|
+
@dataclasses.dataclass(kw_only=True)
|
|
38
|
+
class IdSourceSpecEntity(IdSourceSpecBase):
|
|
39
|
+
entity_type: entity_t.EntityType
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
43
|
+
@serial_class(
|
|
44
|
+
named_type_path="sdk.id_source.IdSourceSpecCustomEntity",
|
|
45
|
+
)
|
|
46
|
+
@dataclasses.dataclass(kw_only=True)
|
|
47
|
+
class IdSourceSpecCustomEntity(IdSourceSpecBase):
|
|
48
|
+
definition_ref_name: str
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
52
|
+
@serial_class(
|
|
53
|
+
named_type_path="sdk.id_source.IdSourceSpecFieldOptions",
|
|
54
|
+
)
|
|
55
|
+
@dataclasses.dataclass(kw_only=True)
|
|
56
|
+
class IdSourceSpecFieldOptions(IdSourceSpecBase):
|
|
57
|
+
set_ref_name: str
|
|
58
|
+
subset_ref_name: str | None = None
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
62
|
+
IdSourceSpec = typing.Annotated[
|
|
63
|
+
typing.Union[IdSourceSpecEntity, IdSourceSpecCustomEntity, IdSourceSpecFieldOptions],
|
|
64
|
+
serial_alias_annotation(
|
|
65
|
+
named_type_path="sdk.id_source.IdSourceSpec",
|
|
66
|
+
),
|
|
67
|
+
]
|
|
68
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# flake8: noqa: F821
|
|
2
|
+
# ruff: noqa: E402 Q003
|
|
3
|
+
# fmt: off
|
|
4
|
+
# isort: skip_file
|
|
5
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
6
|
+
# Kept only for SDK backwards compatibility
|
|
7
|
+
from .identifier_t import IdentifierKeyId as IdentifierKeyId
|
|
8
|
+
from .identifier_t import IdentifierKeyRefName as IdentifierKeyRefName
|
|
9
|
+
from .identifier_t import IdentifierKeyBatchReference as IdentifierKeyBatchReference
|
|
10
|
+
from .identifier_t import IdentifierKey as IdentifierKey
|
|
11
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# flake8: noqa: F821
|
|
3
|
+
# ruff: noqa: E402 Q003
|
|
4
|
+
# fmt: off
|
|
5
|
+
# isort: skip_file
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
import typing # noqa: F401
|
|
8
|
+
import datetime # noqa: F401
|
|
9
|
+
from decimal import Decimal # noqa: F401
|
|
10
|
+
import dataclasses
|
|
11
|
+
from pkgs.serialization import serial_class
|
|
12
|
+
from pkgs.serialization import serial_alias_annotation
|
|
13
|
+
from . import base_t
|
|
14
|
+
|
|
15
|
+
__all__: list[str] = [
|
|
16
|
+
"IdentifierKey",
|
|
17
|
+
"IdentifierKeyBatchReference",
|
|
18
|
+
"IdentifierKeyId",
|
|
19
|
+
"IdentifierKeyRefName",
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
24
|
+
@serial_class(
|
|
25
|
+
named_type_path="sdk.identifier.IdentifierKeyId",
|
|
26
|
+
parse_require={"type"},
|
|
27
|
+
)
|
|
28
|
+
@dataclasses.dataclass(kw_only=True, frozen=True, eq=True)
|
|
29
|
+
class IdentifierKeyId:
|
|
30
|
+
type: typing.Literal["id"] = "id"
|
|
31
|
+
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.identifier.IdentifierKeyRefName",
|
|
37
|
+
parse_require={"type"},
|
|
38
|
+
)
|
|
39
|
+
@dataclasses.dataclass(kw_only=True, frozen=True, eq=True)
|
|
40
|
+
class IdentifierKeyRefName:
|
|
41
|
+
type: typing.Literal["ref_name"] = "ref_name"
|
|
42
|
+
ref_name: str
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
46
|
+
@serial_class(
|
|
47
|
+
named_type_path="sdk.identifier.IdentifierKeyBatchReference",
|
|
48
|
+
parse_require={"type"},
|
|
49
|
+
)
|
|
50
|
+
@dataclasses.dataclass(kw_only=True, frozen=True, eq=True)
|
|
51
|
+
class IdentifierKeyBatchReference:
|
|
52
|
+
type: typing.Literal["batch_reference"] = "batch_reference"
|
|
53
|
+
reference: str
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
57
|
+
IdentifierKey = typing.Annotated[
|
|
58
|
+
typing.Union[IdentifierKeyId, IdentifierKeyBatchReference, IdentifierKeyRefName],
|
|
59
|
+
serial_alias_annotation(
|
|
60
|
+
named_type_path="sdk.identifier.IdentifierKey",
|
|
61
|
+
),
|
|
62
|
+
]
|
|
63
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -1,29 +1,8 @@
|
|
|
1
|
-
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
1
|
# flake8: noqa: F821
|
|
3
|
-
# ruff: noqa: E402
|
|
2
|
+
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
6
|
-
from __future__ import annotations
|
|
7
|
-
import typing # noqa: F401
|
|
8
|
-
import datetime # noqa: F401
|
|
9
|
-
from decimal import Decimal # noqa: F401
|
|
10
|
-
from dataclasses import dataclass
|
|
11
|
-
from pkgs.serialization import serial_class
|
|
12
|
-
from . import base as base_t
|
|
13
|
-
|
|
14
|
-
__all__: list[str] = [
|
|
15
|
-
"InputAttributeValue",
|
|
16
|
-
]
|
|
17
|
-
|
|
18
|
-
|
|
19
5
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
to_string_values={"quantity_dec"},
|
|
23
|
-
)
|
|
24
|
-
@dataclass(kw_only=True)
|
|
25
|
-
class InputAttributeValue:
|
|
26
|
-
attribute_id: base_t.ObjectId
|
|
27
|
-
quantity_dec: typing.Optional[Decimal] = None
|
|
28
|
-
quantity_json: typing.Optional[base_t.JsonValue] = None
|
|
6
|
+
# Kept only for SDK backwards compatibility
|
|
7
|
+
from .input_attributes_t import InputAttributeValue as InputAttributeValue
|
|
29
8
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# flake8: noqa: F821
|
|
3
|
+
# ruff: noqa: E402 Q003
|
|
4
|
+
# fmt: off
|
|
5
|
+
# isort: skip_file
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
import typing # noqa: F401
|
|
8
|
+
import datetime # noqa: F401
|
|
9
|
+
from decimal import Decimal # noqa: F401
|
|
10
|
+
import dataclasses
|
|
11
|
+
from pkgs.serialization import serial_class
|
|
12
|
+
from . import base_t
|
|
13
|
+
|
|
14
|
+
__all__: list[str] = [
|
|
15
|
+
"InputAttributeValue",
|
|
16
|
+
]
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
20
|
+
@serial_class(
|
|
21
|
+
named_type_path="sdk.input_attributes.InputAttributeValue",
|
|
22
|
+
unconverted_values={"quantity_json"},
|
|
23
|
+
to_string_values={"quantity_dec"},
|
|
24
|
+
)
|
|
25
|
+
@dataclasses.dataclass(kw_only=True)
|
|
26
|
+
class InputAttributeValue:
|
|
27
|
+
attribute_id: base_t.ObjectId
|
|
28
|
+
quantity_dec: Decimal | None = None
|
|
29
|
+
quantity_json: base_t.JsonValue | None = None
|
|
30
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
uncountable/types/inputs.py
CHANGED
|
@@ -1,61 +1,11 @@
|
|
|
1
|
-
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
1
|
# flake8: noqa: F821
|
|
3
|
-
# ruff: noqa: E402
|
|
2
|
+
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
6
|
-
from __future__ import annotations
|
|
7
|
-
import typing # noqa: F401
|
|
8
|
-
import datetime # noqa: F401
|
|
9
|
-
from decimal import Decimal # noqa: F401
|
|
10
|
-
from pkgs.strenum_compat import StrEnum
|
|
11
|
-
from dataclasses import dataclass
|
|
12
|
-
from pkgs.serialization import serial_string_enum
|
|
13
|
-
from . import base as base_t
|
|
14
|
-
|
|
15
|
-
__all__: list[str] = [
|
|
16
|
-
"IngredientQuantityType",
|
|
17
|
-
"IngredientType",
|
|
18
|
-
"SimpleInput",
|
|
19
|
-
]
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
# DO NOT MODIFY -- This file is generated by type_spec
|
|
23
|
-
@serial_string_enum(
|
|
24
|
-
labels={
|
|
25
|
-
"numeric": "Numeric",
|
|
26
|
-
"recipe": "Experiment Component",
|
|
27
|
-
"date": "Date",
|
|
28
|
-
"categorical": "Categorical",
|
|
29
|
-
"timestamp": "Timestamp",
|
|
30
|
-
"text": "Text",
|
|
31
|
-
"curve": "Curve",
|
|
32
|
-
"files": "Attachments",
|
|
33
|
-
},
|
|
34
|
-
)
|
|
35
|
-
class IngredientQuantityType(StrEnum):
|
|
36
|
-
NUMERIC = "numeric"
|
|
37
|
-
RECIPE = "recipe"
|
|
38
|
-
DATE = "date"
|
|
39
|
-
CATEGORICAL = "categorical"
|
|
40
|
-
TIMESTAMP = "timestamp"
|
|
41
|
-
TEXT = "text"
|
|
42
|
-
CURVE = "curve"
|
|
43
|
-
FILES = "files"
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
# DO NOT MODIFY -- This file is generated by type_spec
|
|
47
|
-
class IngredientType(StrEnum):
|
|
48
|
-
INGREDIENT = "ingredient"
|
|
49
|
-
PROCESS_PARAMETER = "process_parameter"
|
|
50
|
-
EQUIPMENT = "equipment"
|
|
51
|
-
|
|
52
|
-
|
|
53
5
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
is_parameter: bool
|
|
60
|
-
intermediate_recipe_id: typing.Optional[base_t.ObjectId]
|
|
6
|
+
# Kept only for SDK backwards compatibility
|
|
7
|
+
from .inputs_t import IngredientQuantityType as IngredientQuantityType
|
|
8
|
+
from .inputs_t import IngredientType as IngredientType
|
|
9
|
+
from .inputs_t import IngredientBehavior as IngredientBehavior
|
|
10
|
+
from .inputs_t import SimpleInput as SimpleInput
|
|
61
11
|
# DO NOT MODIFY -- This file is generated by type_spec
|