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
uncountable/types/post_base.py
CHANGED
uncountable/types/post_base_t.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -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
|
from pkgs.serialization import serial_string_enum
|
|
12
11
|
|
|
13
12
|
__all__: list[str] = [
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# ruff: noqa: E402 Q003
|
|
2
|
+
# fmt: off
|
|
3
|
+
# isort: skip_file
|
|
4
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
5
|
+
# Kept only for SDK backwards compatibility
|
|
6
|
+
from .queued_job_t import InvocationContextType as InvocationContextType
|
|
7
|
+
from .queued_job_t import InvocationContextBase as InvocationContextBase
|
|
8
|
+
from .queued_job_t import InvocationContextCron as InvocationContextCron
|
|
9
|
+
from .queued_job_t import InvocationContextManual as InvocationContextManual
|
|
10
|
+
from .queued_job_t import InvocationContextWebhook as InvocationContextWebhook
|
|
11
|
+
from .queued_job_t import InvocationContext as InvocationContext
|
|
12
|
+
from .queued_job_t import QueuedJobPayload as QueuedJobPayload
|
|
13
|
+
from .queued_job_t import QueuedJobResult as QueuedJobResult
|
|
14
|
+
from .queued_job_t import QueuedJobMetadata as QueuedJobMetadata
|
|
15
|
+
from .queued_job_t import QueuedJob as QueuedJob
|
|
16
|
+
from .queued_job_t import JobStatus as JobStatus
|
|
17
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,140 @@
|
|
|
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 . import base_t
|
|
14
|
+
from . import job_definition_t
|
|
15
|
+
|
|
16
|
+
__all__: list[str] = [
|
|
17
|
+
"InvocationContext",
|
|
18
|
+
"InvocationContextBase",
|
|
19
|
+
"InvocationContextCron",
|
|
20
|
+
"InvocationContextManual",
|
|
21
|
+
"InvocationContextType",
|
|
22
|
+
"InvocationContextWebhook",
|
|
23
|
+
"JobStatus",
|
|
24
|
+
"QueuedJob",
|
|
25
|
+
"QueuedJobMetadata",
|
|
26
|
+
"QueuedJobPayload",
|
|
27
|
+
"QueuedJobResult",
|
|
28
|
+
]
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
32
|
+
class InvocationContextType(StrEnum):
|
|
33
|
+
CRON = "cron"
|
|
34
|
+
MANUAL = "manual"
|
|
35
|
+
WEBHOOK = "webhook"
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
39
|
+
@serial_class(
|
|
40
|
+
named_type_path="sdk.queued_job.InvocationContextBase",
|
|
41
|
+
)
|
|
42
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
43
|
+
class InvocationContextBase:
|
|
44
|
+
type: InvocationContextType
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
48
|
+
@serial_class(
|
|
49
|
+
named_type_path="sdk.queued_job.InvocationContextCron",
|
|
50
|
+
parse_require={"type"},
|
|
51
|
+
)
|
|
52
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
53
|
+
class InvocationContextCron(InvocationContextBase):
|
|
54
|
+
type: typing.Literal[InvocationContextType.CRON] = InvocationContextType.CRON
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
58
|
+
@serial_class(
|
|
59
|
+
named_type_path="sdk.queued_job.InvocationContextManual",
|
|
60
|
+
parse_require={"type"},
|
|
61
|
+
)
|
|
62
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
63
|
+
class InvocationContextManual(InvocationContextBase):
|
|
64
|
+
type: typing.Literal[InvocationContextType.MANUAL] = InvocationContextType.MANUAL
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
68
|
+
@serial_class(
|
|
69
|
+
named_type_path="sdk.queued_job.InvocationContextWebhook",
|
|
70
|
+
unconverted_values={"webhook_payload"},
|
|
71
|
+
parse_require={"type"},
|
|
72
|
+
)
|
|
73
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
74
|
+
class InvocationContextWebhook(InvocationContextBase):
|
|
75
|
+
type: typing.Literal[InvocationContextType.WEBHOOK] = InvocationContextType.WEBHOOK
|
|
76
|
+
webhook_payload: base_t.JsonValue
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
80
|
+
InvocationContext = typing.Annotated[
|
|
81
|
+
InvocationContextCron | InvocationContextManual | InvocationContextWebhook,
|
|
82
|
+
serial_union_annotation(
|
|
83
|
+
named_type_path="sdk.queued_job.InvocationContext",
|
|
84
|
+
discriminator="type",
|
|
85
|
+
discriminator_map={
|
|
86
|
+
"cron": InvocationContextCron,
|
|
87
|
+
"manual": InvocationContextManual,
|
|
88
|
+
"webhook": InvocationContextWebhook,
|
|
89
|
+
},
|
|
90
|
+
),
|
|
91
|
+
]
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
95
|
+
@serial_class(
|
|
96
|
+
named_type_path="sdk.queued_job.QueuedJobPayload",
|
|
97
|
+
)
|
|
98
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
99
|
+
class QueuedJobPayload:
|
|
100
|
+
invocation_context: InvocationContext
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
104
|
+
@serial_class(
|
|
105
|
+
named_type_path="sdk.queued_job.QueuedJobResult",
|
|
106
|
+
)
|
|
107
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
108
|
+
class QueuedJobResult:
|
|
109
|
+
queued_job_uuid: str
|
|
110
|
+
job_result: job_definition_t.JobResult
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
114
|
+
@serial_class(
|
|
115
|
+
named_type_path="sdk.queued_job.QueuedJobMetadata",
|
|
116
|
+
)
|
|
117
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
118
|
+
class QueuedJobMetadata:
|
|
119
|
+
queued_job_uuid: str
|
|
120
|
+
job_ref_name: str
|
|
121
|
+
num_attempts: int
|
|
122
|
+
submitted_at: datetime.datetime
|
|
123
|
+
status: JobStatus | None = None
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
127
|
+
@serial_class(
|
|
128
|
+
named_type_path="sdk.queued_job.QueuedJob",
|
|
129
|
+
)
|
|
130
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
131
|
+
class QueuedJob(QueuedJobMetadata):
|
|
132
|
+
payload: QueuedJobPayload
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
136
|
+
class JobStatus(StrEnum):
|
|
137
|
+
QUEUED = "queued"
|
|
138
|
+
FAILED = "failed"
|
|
139
|
+
SUCCESS = "success"
|
|
140
|
+
# 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
|
|
@@ -9,6 +8,7 @@ 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
12
|
from . import base_t
|
|
13
13
|
|
|
14
14
|
__all__: list[str] = [
|
|
@@ -22,9 +22,10 @@ __all__: list[str] = [
|
|
|
22
22
|
|
|
23
23
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
24
24
|
@serial_class(
|
|
25
|
+
named_type_path="sdk.recipe_identifiers.RecipeIdentifierEditableName",
|
|
25
26
|
parse_require={"type"},
|
|
26
27
|
)
|
|
27
|
-
@dataclasses.dataclass(kw_only=True)
|
|
28
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
28
29
|
class RecipeIdentifierEditableName:
|
|
29
30
|
type: typing.Literal["name"] = "name"
|
|
30
31
|
editable_name: str
|
|
@@ -32,31 +33,43 @@ class RecipeIdentifierEditableName:
|
|
|
32
33
|
|
|
33
34
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
34
35
|
@serial_class(
|
|
36
|
+
named_type_path="sdk.recipe_identifiers.RecipeIdentifierMetadata",
|
|
35
37
|
to_string_values={"quantity_dec"},
|
|
36
38
|
parse_require={"type"},
|
|
37
39
|
)
|
|
38
|
-
@dataclasses.dataclass(kw_only=True)
|
|
40
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
39
41
|
class RecipeIdentifierMetadata:
|
|
40
42
|
type: typing.Literal["metadata"] = "metadata"
|
|
41
43
|
recipe_metadata_id: base_t.ObjectId
|
|
42
|
-
quantity_dec:
|
|
43
|
-
quantity_json:
|
|
44
|
+
quantity_dec: Decimal | None = None
|
|
45
|
+
quantity_json: str | None = None
|
|
44
46
|
|
|
45
47
|
|
|
46
48
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
47
49
|
@serial_class(
|
|
50
|
+
named_type_path="sdk.recipe_identifiers.RecipeIdentifierMaterialFamily",
|
|
48
51
|
parse_require={"type"},
|
|
49
52
|
)
|
|
50
|
-
@dataclasses.dataclass(kw_only=True)
|
|
53
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
51
54
|
class RecipeIdentifierMaterialFamily:
|
|
52
55
|
type: typing.Literal["material_family_id"] = "material_family_id"
|
|
53
56
|
material_family_id: base_t.ObjectId
|
|
54
57
|
|
|
55
58
|
|
|
56
59
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
57
|
-
RecipeIdentifier = typing.
|
|
60
|
+
RecipeIdentifier = typing.Annotated[
|
|
61
|
+
RecipeIdentifierEditableName | RecipeIdentifierMetadata | RecipeIdentifierMaterialFamily,
|
|
62
|
+
serial_alias_annotation(
|
|
63
|
+
named_type_path="sdk.recipe_identifiers.RecipeIdentifier",
|
|
64
|
+
),
|
|
65
|
+
]
|
|
58
66
|
|
|
59
67
|
|
|
60
68
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
61
|
-
RecipeIdentifiers =
|
|
69
|
+
RecipeIdentifiers = typing.Annotated[
|
|
70
|
+
list[RecipeIdentifier],
|
|
71
|
+
serial_alias_annotation(
|
|
72
|
+
named_type_path="sdk.recipe_identifiers.RecipeIdentifiers",
|
|
73
|
+
),
|
|
74
|
+
]
|
|
62
75
|
# 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
|
|
|
12
11
|
__all__: list[str] = [
|
|
13
12
|
"InputValueType",
|
|
@@ -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,9 @@ 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
12
|
from pkgs.serialization import serial_string_enum
|
|
13
13
|
from . import base_t
|
|
14
14
|
|
|
@@ -41,10 +41,13 @@ class RecipeLinkType(StrEnum):
|
|
|
41
41
|
|
|
42
42
|
|
|
43
43
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
44
|
-
@
|
|
44
|
+
@serial_class(
|
|
45
|
+
named_type_path="sdk.recipe_links.RecipeLink",
|
|
46
|
+
)
|
|
47
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True, frozen=True, eq=True) # type: ignore[literal-required]
|
|
45
48
|
class RecipeLink:
|
|
46
49
|
recipe_id_from: base_t.ObjectId
|
|
47
50
|
recipe_id_to: base_t.ObjectId
|
|
48
51
|
link_type: str
|
|
49
|
-
name:
|
|
52
|
+
name: str | None
|
|
50
53
|
# 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
|
|
@@ -20,19 +19,24 @@ __all__: list[str] = [
|
|
|
20
19
|
|
|
21
20
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
22
21
|
@serial_class(
|
|
22
|
+
named_type_path="sdk.recipe_metadata.MetadataValue",
|
|
23
23
|
unconverted_values={"value_json"},
|
|
24
24
|
to_string_values={"value_numeric"},
|
|
25
25
|
)
|
|
26
|
-
@dataclasses.dataclass(kw_only=True)
|
|
26
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
27
27
|
class MetadataValue:
|
|
28
28
|
metadata_id: base_t.ObjectId
|
|
29
|
-
value_numeric:
|
|
30
|
-
value_str:
|
|
31
|
-
value_json:
|
|
29
|
+
value_numeric: Decimal | None = None
|
|
30
|
+
value_str: str | None = None
|
|
31
|
+
value_json: base_t.JsonValue | None = None
|
|
32
|
+
value_file_ids: list[base_t.ObjectId] | None = None
|
|
32
33
|
|
|
33
34
|
|
|
34
35
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
35
|
-
@
|
|
36
|
+
@serial_class(
|
|
37
|
+
named_type_path="sdk.recipe_metadata.SimpleRecipeMetadataField",
|
|
38
|
+
)
|
|
39
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
36
40
|
class SimpleRecipeMetadataField:
|
|
37
41
|
metadata_id: base_t.ObjectId
|
|
38
42
|
name: str
|
|
@@ -41,12 +45,13 @@ class SimpleRecipeMetadataField:
|
|
|
41
45
|
|
|
42
46
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
43
47
|
@serial_class(
|
|
48
|
+
named_type_path="sdk.recipe_metadata.RecipeMetadata",
|
|
44
49
|
unconverted_values={"quantity_json"},
|
|
45
50
|
to_string_values={"quantity_dec"},
|
|
46
51
|
)
|
|
47
|
-
@dataclasses.dataclass(kw_only=True)
|
|
52
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
48
53
|
class RecipeMetadata:
|
|
49
54
|
metadata_id: base_t.ObjectId
|
|
50
|
-
quantity_dec:
|
|
51
|
-
quantity_json:
|
|
55
|
+
quantity_dec: Decimal | None = None
|
|
56
|
+
quantity_json: base_t.JsonValue | None = None
|
|
52
57
|
# 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] = [
|
|
@@ -16,7 +16,10 @@ __all__: list[str] = [
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
19
|
-
@
|
|
19
|
+
@serial_class(
|
|
20
|
+
named_type_path="sdk.recipe_output_metadata.RecipeOutputMetadataField",
|
|
21
|
+
)
|
|
22
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
20
23
|
class RecipeOutputMetadataField:
|
|
21
24
|
id: base_t.ObjectId
|
|
22
25
|
name: str
|
uncountable/types/recipe_tags.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -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] = [
|
|
@@ -16,7 +16,10 @@ __all__: list[str] = [
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
19
|
-
@
|
|
19
|
+
@serial_class(
|
|
20
|
+
named_type_path="sdk.recipe_tags.SimpleRecipeTag",
|
|
21
|
+
)
|
|
22
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
20
23
|
class SimpleRecipeTag:
|
|
21
24
|
recipe_tag_id: base_t.ObjectId
|
|
22
25
|
name: str
|
|
@@ -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,10 +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
|
|
12
11
|
from pkgs.serialization import serial_class
|
|
13
12
|
from pkgs.serialization import serial_union_annotation
|
|
13
|
+
from . import base_t
|
|
14
14
|
from . import identifier_t
|
|
15
15
|
|
|
16
16
|
__all__: list[str] = [
|
|
@@ -32,16 +32,20 @@ class RecipeWorkflowStepIdentifierType(StrEnum):
|
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
35
|
-
@
|
|
35
|
+
@serial_class(
|
|
36
|
+
named_type_path="sdk.recipe_workflow_steps.RecipeWorkflowStepIdentifierBase",
|
|
37
|
+
)
|
|
38
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
36
39
|
class RecipeWorkflowStepIdentifierBase:
|
|
37
40
|
type: RecipeWorkflowStepIdentifierType
|
|
38
41
|
|
|
39
42
|
|
|
40
43
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
41
44
|
@serial_class(
|
|
45
|
+
named_type_path="sdk.recipe_workflow_steps.RecipeWorkflowStepIdentifierDefault",
|
|
42
46
|
parse_require={"type"},
|
|
43
47
|
)
|
|
44
|
-
@dataclasses.dataclass(kw_only=True)
|
|
48
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
45
49
|
class RecipeWorkflowStepIdentifierDefault(RecipeWorkflowStepIdentifierBase):
|
|
46
50
|
type: typing.Literal[RecipeWorkflowStepIdentifierType.DEFAULT] = RecipeWorkflowStepIdentifierType.DEFAULT
|
|
47
51
|
|
|
@@ -54,9 +58,10 @@ class RecipeWorkflowStepPosition(StrEnum):
|
|
|
54
58
|
|
|
55
59
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
56
60
|
@serial_class(
|
|
61
|
+
named_type_path="sdk.recipe_workflow_steps.RecipeWorkflowStepIdentifierWorkflowStep",
|
|
57
62
|
parse_require={"type"},
|
|
58
63
|
)
|
|
59
|
-
@dataclasses.dataclass(kw_only=True)
|
|
64
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
60
65
|
class RecipeWorkflowStepIdentifierWorkflowStep(RecipeWorkflowStepIdentifierBase):
|
|
61
66
|
type: typing.Literal[RecipeWorkflowStepIdentifierType.WORKFLOW_STEP] = RecipeWorkflowStepIdentifierType.WORKFLOW_STEP
|
|
62
67
|
workflow_step_key: identifier_t.IdentifierKey
|
|
@@ -65,9 +70,10 @@ class RecipeWorkflowStepIdentifierWorkflowStep(RecipeWorkflowStepIdentifierBase)
|
|
|
65
70
|
|
|
66
71
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
67
72
|
@serial_class(
|
|
73
|
+
named_type_path="sdk.recipe_workflow_steps.RecipeWorkflowStepIdentifierKey",
|
|
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 RecipeWorkflowStepIdentifierKey:
|
|
72
78
|
type: typing.Literal[RecipeWorkflowStepIdentifierType.IDENTIFIER_KEY] = RecipeWorkflowStepIdentifierType.IDENTIFIER_KEY
|
|
73
79
|
recipe_workflow_step_key: identifier_t.IdentifierKey
|
|
@@ -75,8 +81,9 @@ class RecipeWorkflowStepIdentifierKey:
|
|
|
75
81
|
|
|
76
82
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
77
83
|
RecipeWorkflowStepIdentifier = typing.Annotated[
|
|
78
|
-
|
|
84
|
+
RecipeWorkflowStepIdentifierDefault | RecipeWorkflowStepIdentifierWorkflowStep | RecipeWorkflowStepIdentifierKey,
|
|
79
85
|
serial_union_annotation(
|
|
86
|
+
named_type_path="sdk.recipe_workflow_steps.RecipeWorkflowStepIdentifier",
|
|
80
87
|
discriminator="type",
|
|
81
88
|
discriminator_map={
|
|
82
89
|
"default": RecipeWorkflowStepIdentifierDefault,
|
uncountable/types/recipes.py
CHANGED
uncountable/types/recipes_t.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -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
|
|
|
12
13
|
__all__: list[str] = [
|
|
13
14
|
"RecipeAttributeFormatting",
|
|
@@ -15,7 +16,10 @@ __all__: list[str] = [
|
|
|
15
16
|
|
|
16
17
|
|
|
17
18
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
18
|
-
@
|
|
19
|
+
@serial_class(
|
|
20
|
+
named_type_path="sdk.recipes.RecipeAttributeFormatting",
|
|
21
|
+
)
|
|
22
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
19
23
|
class RecipeAttributeFormatting:
|
|
20
24
|
background_color: str
|
|
21
25
|
# DO NOT MODIFY -- This file is generated by type_spec
|
uncountable/types/response.py
CHANGED
uncountable/types/response_t.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -9,6 +8,7 @@ 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 . import base_t
|
|
12
12
|
|
|
13
13
|
__all__: list[str] = [
|
|
14
14
|
"Response",
|
|
@@ -17,9 +17,10 @@ __all__: list[str] = [
|
|
|
17
17
|
|
|
18
18
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
19
19
|
@serial_class(
|
|
20
|
+
named_type_path="sdk.response.Response",
|
|
20
21
|
parse_require={"status"},
|
|
21
22
|
)
|
|
22
|
-
@dataclasses.dataclass(kw_only=True)
|
|
23
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
23
24
|
class Response:
|
|
24
25
|
status: typing.Literal["ok"] = "ok"
|
|
25
26
|
# 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,10 +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
|
|
12
11
|
from pkgs.serialization import serial_class
|
|
13
12
|
from pkgs.serialization import serial_union_annotation
|
|
13
|
+
from . import base_t
|
|
14
14
|
|
|
15
15
|
__all__: list[str] = [
|
|
16
16
|
"SecretRetrieval",
|
|
@@ -22,7 +22,10 @@ __all__: list[str] = [
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
25
|
-
@
|
|
25
|
+
@serial_class(
|
|
26
|
+
named_type_path="sdk.secret_retrieval.SecretRetrievalBase",
|
|
27
|
+
)
|
|
28
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True, frozen=True, eq=True) # type: ignore[literal-required]
|
|
26
29
|
class SecretRetrievalBase:
|
|
27
30
|
type: SecretRetrievalType
|
|
28
31
|
|
|
@@ -35,9 +38,10 @@ class SecretRetrievalType(StrEnum):
|
|
|
35
38
|
|
|
36
39
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
37
40
|
@serial_class(
|
|
41
|
+
named_type_path="sdk.secret_retrieval.SecretRetrievalEnv",
|
|
38
42
|
parse_require={"type"},
|
|
39
43
|
)
|
|
40
|
-
@dataclasses.dataclass(kw_only=True)
|
|
44
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True, frozen=True, eq=True) # type: ignore[literal-required]
|
|
41
45
|
class SecretRetrievalEnv(SecretRetrievalBase):
|
|
42
46
|
type: typing.Literal[SecretRetrievalType.ENV] = SecretRetrievalType.ENV
|
|
43
47
|
env_key: str
|
|
@@ -45,20 +49,22 @@ class SecretRetrievalEnv(SecretRetrievalBase):
|
|
|
45
49
|
|
|
46
50
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
47
51
|
@serial_class(
|
|
52
|
+
named_type_path="sdk.secret_retrieval.SecretRetrievalAWS",
|
|
48
53
|
parse_require={"type"},
|
|
49
54
|
)
|
|
50
|
-
@dataclasses.dataclass(kw_only=True)
|
|
55
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True, frozen=True, eq=True) # type: ignore[literal-required]
|
|
51
56
|
class SecretRetrievalAWS(SecretRetrievalBase):
|
|
52
57
|
type: typing.Literal[SecretRetrievalType.AWS] = SecretRetrievalType.AWS
|
|
53
58
|
secret_name: str
|
|
54
59
|
region: str
|
|
55
|
-
sub_key:
|
|
60
|
+
sub_key: str | None = None
|
|
56
61
|
|
|
57
62
|
|
|
58
63
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
59
64
|
SecretRetrieval = typing.Annotated[
|
|
60
|
-
|
|
65
|
+
SecretRetrievalEnv | SecretRetrievalAWS,
|
|
61
66
|
serial_union_annotation(
|
|
67
|
+
named_type_path="sdk.secret_retrieval.SecretRetrieval",
|
|
62
68
|
discriminator="type",
|
|
63
69
|
discriminator_map={
|
|
64
70
|
"env": SecretRetrievalEnv,
|