UncountablePythonSDK 0.0.82__py3-none-any.whl → 0.0.132__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of UncountablePythonSDK might be problematic. Click here for more details.
- docs/conf.py +54 -7
- docs/index.md +107 -4
- docs/integration_examples/create_ingredient.md +43 -0
- docs/integration_examples/create_output.md +56 -0
- docs/integration_examples/index.md +6 -0
- docs/justfile +2 -2
- docs/requirements.txt +6 -4
- examples/basic_auth.py +7 -0
- examples/create_ingredient_sdk.py +34 -0
- examples/download_files.py +26 -0
- examples/integration-server/jobs/materials_auto/concurrent_cron.py +11 -0
- examples/integration-server/jobs/materials_auto/example_cron.py +3 -0
- examples/integration-server/jobs/materials_auto/example_http.py +47 -0
- examples/integration-server/jobs/materials_auto/example_instrument.py +100 -0
- examples/integration-server/jobs/materials_auto/example_parse.py +140 -0
- examples/integration-server/jobs/materials_auto/example_predictions.py +61 -0
- examples/integration-server/jobs/materials_auto/example_runsheet_wh.py +39 -0
- examples/integration-server/jobs/materials_auto/example_wh.py +17 -9
- examples/integration-server/jobs/materials_auto/profile.yaml +61 -0
- examples/integration-server/pyproject.toml +10 -10
- examples/oauth.py +7 -0
- examples/set_recipe_metadata_file.py +1 -1
- examples/upload_files.py +1 -2
- pkgs/argument_parser/__init__.py +8 -0
- pkgs/argument_parser/_is_namedtuple.py +3 -0
- pkgs/argument_parser/argument_parser.py +196 -63
- pkgs/filesystem_utils/__init__.py +1 -0
- pkgs/filesystem_utils/_blob_session.py +144 -0
- pkgs/filesystem_utils/_gdrive_session.py +5 -5
- pkgs/filesystem_utils/_s3_session.py +2 -1
- pkgs/filesystem_utils/_sftp_session.py +6 -3
- pkgs/filesystem_utils/file_type_utils.py +30 -10
- pkgs/serialization/__init__.py +7 -2
- pkgs/serialization/annotation.py +64 -0
- pkgs/serialization/missing_sentry.py +1 -1
- pkgs/serialization/opaque_key.py +1 -1
- pkgs/serialization/serial_alias.py +47 -0
- pkgs/serialization/serial_class.py +40 -48
- pkgs/serialization/serial_generic.py +16 -0
- pkgs/serialization/serial_union.py +16 -16
- pkgs/serialization_util/__init__.py +6 -0
- pkgs/serialization_util/dataclasses.py +14 -0
- pkgs/serialization_util/serialization_helpers.py +15 -5
- pkgs/type_spec/actions_registry/__main__.py +0 -4
- pkgs/type_spec/actions_registry/emit_typescript.py +2 -4
- pkgs/type_spec/builder.py +248 -70
- pkgs/type_spec/builder_types.py +9 -0
- pkgs/type_spec/config.py +40 -7
- pkgs/type_spec/cross_output_links.py +99 -0
- pkgs/type_spec/emit_open_api.py +121 -34
- pkgs/type_spec/emit_open_api_util.py +5 -5
- pkgs/type_spec/emit_python.py +277 -86
- pkgs/type_spec/emit_typescript.py +102 -29
- pkgs/type_spec/emit_typescript_util.py +66 -10
- pkgs/type_spec/load_types.py +16 -3
- pkgs/type_spec/non_discriminated_union_exceptions.py +14 -0
- pkgs/type_spec/open_api_util.py +29 -4
- pkgs/type_spec/parts/base.py.prepart +11 -8
- pkgs/type_spec/parts/base.ts.prepart +4 -0
- pkgs/type_spec/type_info/__main__.py +3 -1
- pkgs/type_spec/type_info/emit_type_info.py +115 -22
- pkgs/type_spec/ui_entry_actions/__init__.py +4 -0
- pkgs/type_spec/ui_entry_actions/generate_ui_entry_actions.py +308 -0
- pkgs/type_spec/util.py +3 -3
- pkgs/type_spec/value_spec/__main__.py +26 -9
- pkgs/type_spec/value_spec/convert_type.py +18 -0
- pkgs/type_spec/value_spec/emit_python.py +13 -3
- pkgs/type_spec/value_spec/types.py +1 -1
- uncountable/core/async_batch.py +1 -1
- uncountable/core/client.py +133 -34
- uncountable/core/environment.py +3 -3
- uncountable/core/file_upload.py +39 -15
- uncountable/integration/cli.py +116 -23
- uncountable/integration/construct_client.py +3 -3
- uncountable/integration/executors/executors.py +12 -2
- uncountable/integration/executors/generic_upload_executor.py +66 -14
- uncountable/integration/http_server/__init__.py +5 -0
- uncountable/integration/http_server/types.py +69 -0
- uncountable/integration/job.py +192 -7
- uncountable/integration/queue_runner/command_server/__init__.py +4 -0
- uncountable/integration/queue_runner/command_server/command_client.py +65 -0
- uncountable/integration/queue_runner/command_server/command_server.py +83 -5
- uncountable/integration/queue_runner/command_server/constants.py +4 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server.proto +36 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +28 -11
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +77 -1
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +135 -0
- uncountable/integration/queue_runner/command_server/types.py +25 -2
- uncountable/integration/queue_runner/datastore/datastore_sqlite.py +168 -11
- uncountable/integration/queue_runner/datastore/interface.py +10 -0
- uncountable/integration/queue_runner/datastore/model.py +8 -1
- uncountable/integration/queue_runner/job_scheduler.py +63 -23
- uncountable/integration/queue_runner/queue_runner.py +10 -2
- uncountable/integration/queue_runner/worker.py +22 -17
- uncountable/integration/scan_profiles.py +1 -1
- uncountable/integration/scheduler.py +74 -25
- uncountable/integration/secret_retrieval/retrieve_secret.py +1 -1
- uncountable/integration/server.py +42 -12
- uncountable/integration/telemetry.py +63 -10
- uncountable/integration/webhook_server/entrypoint.py +39 -112
- uncountable/types/__init__.py +58 -1
- uncountable/types/api/batch/execute_batch.py +5 -6
- uncountable/types/api/batch/execute_batch_load_async.py +2 -3
- uncountable/types/api/chemical/convert_chemical_formats.py +10 -5
- uncountable/types/api/condition_parameters/__init__.py +1 -0
- uncountable/types/api/condition_parameters/upsert_condition_match.py +72 -0
- uncountable/types/api/entity/create_entities.py +7 -7
- uncountable/types/api/entity/create_entity.py +8 -8
- uncountable/types/api/entity/create_or_update_entity.py +48 -0
- uncountable/types/api/entity/export_entities.py +59 -0
- uncountable/types/api/entity/get_entities_data.py +3 -4
- uncountable/types/api/entity/grant_entity_permissions.py +6 -6
- uncountable/types/api/entity/list_aggregate.py +79 -0
- uncountable/types/api/entity/list_entities.py +34 -10
- uncountable/types/api/entity/lock_entity.py +4 -4
- uncountable/types/api/entity/lookup_entity.py +116 -0
- uncountable/types/api/entity/resolve_entity_ids.py +5 -6
- uncountable/types/api/entity/set_entity_field_values.py +44 -0
- uncountable/types/api/entity/set_values.py +3 -3
- uncountable/types/api/entity/transition_entity_phase.py +14 -7
- uncountable/types/api/entity/unlock_entity.py +3 -3
- uncountable/types/api/equipment/associate_equipment_input.py +2 -3
- uncountable/types/api/field_options/upsert_field_options.py +7 -7
- uncountable/types/api/files/__init__.py +1 -0
- uncountable/types/api/files/download_file.py +77 -0
- uncountable/types/api/id_source/list_id_source.py +6 -7
- uncountable/types/api/id_source/match_id_source.py +4 -5
- uncountable/types/api/input_groups/get_input_group_names.py +3 -4
- uncountable/types/api/inputs/create_inputs.py +10 -9
- uncountable/types/api/inputs/get_input_data.py +11 -12
- uncountable/types/api/inputs/get_input_names.py +6 -7
- uncountable/types/api/inputs/get_inputs_data.py +6 -7
- uncountable/types/api/inputs/set_input_attribute_values.py +5 -6
- uncountable/types/api/inputs/set_input_category.py +5 -5
- uncountable/types/api/inputs/set_input_subcategories.py +3 -3
- uncountable/types/api/inputs/set_intermediate_type.py +4 -4
- uncountable/types/api/integrations/__init__.py +1 -0
- uncountable/types/api/integrations/publish_realtime_data.py +41 -0
- uncountable/types/api/integrations/push_notification.py +49 -0
- uncountable/types/api/integrations/register_sockets_token.py +41 -0
- uncountable/types/api/listing/__init__.py +1 -0
- uncountable/types/api/listing/fetch_listing.py +58 -0
- uncountable/types/api/material_families/update_entity_material_families.py +3 -4
- uncountable/types/api/notebooks/__init__.py +1 -0
- uncountable/types/api/notebooks/add_notebook_content.py +119 -0
- uncountable/types/api/outputs/get_output_data.py +12 -13
- uncountable/types/api/outputs/get_output_names.py +5 -6
- uncountable/types/api/outputs/get_output_organization.py +173 -0
- uncountable/types/api/outputs/resolve_output_conditions.py +7 -8
- uncountable/types/api/permissions/set_core_permissions.py +16 -10
- uncountable/types/api/project/get_projects.py +6 -7
- uncountable/types/api/project/get_projects_data.py +7 -8
- uncountable/types/api/recipe_links/create_recipe_link.py +5 -5
- uncountable/types/api/recipe_links/remove_recipe_link.py +4 -4
- uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +6 -7
- uncountable/types/api/recipes/add_recipe_to_project.py +3 -3
- uncountable/types/api/recipes/add_time_series_data.py +64 -0
- uncountable/types/api/recipes/archive_recipes.py +4 -4
- uncountable/types/api/recipes/associate_recipe_as_input.py +5 -5
- uncountable/types/api/recipes/associate_recipe_as_lot.py +3 -3
- uncountable/types/api/recipes/clear_recipe_outputs.py +3 -3
- uncountable/types/api/recipes/create_mix_order.py +44 -0
- uncountable/types/api/recipes/create_recipe.py +8 -9
- uncountable/types/api/recipes/create_recipes.py +8 -9
- uncountable/types/api/recipes/disassociate_recipe_as_input.py +3 -3
- uncountable/types/api/recipes/edit_recipe_inputs.py +101 -24
- uncountable/types/api/recipes/get_column_calculation_values.py +4 -5
- uncountable/types/api/recipes/get_curve.py +4 -5
- uncountable/types/api/recipes/get_recipe_calculations.py +6 -7
- uncountable/types/api/recipes/get_recipe_links.py +3 -4
- uncountable/types/api/recipes/get_recipe_names.py +3 -4
- uncountable/types/api/recipes/get_recipe_output_metadata.py +5 -6
- uncountable/types/api/recipes/get_recipes_data.py +62 -34
- uncountable/types/api/recipes/lock_recipes.py +9 -8
- uncountable/types/api/recipes/remove_recipe_from_project.py +3 -3
- uncountable/types/api/recipes/set_recipe_inputs.py +9 -10
- uncountable/types/api/recipes/set_recipe_metadata.py +3 -3
- uncountable/types/api/recipes/set_recipe_output_annotations.py +11 -12
- uncountable/types/api/recipes/set_recipe_output_file.py +5 -6
- uncountable/types/api/recipes/set_recipe_outputs.py +24 -13
- uncountable/types/api/recipes/set_recipe_tags.py +14 -9
- uncountable/types/api/recipes/set_recipe_total.py +59 -0
- uncountable/types/api/recipes/unarchive_recipes.py +3 -3
- uncountable/types/api/recipes/unlock_recipes.py +7 -6
- uncountable/types/api/runsheet/__init__.py +1 -0
- uncountable/types/api/runsheet/complete_async_upload.py +41 -0
- uncountable/types/api/triggers/run_trigger.py +4 -4
- uncountable/types/api/uploader/complete_async_parse.py +46 -0
- uncountable/types/api/uploader/invoke_uploader.py +4 -5
- uncountable/types/api/user/__init__.py +1 -0
- uncountable/types/api/user/get_current_user_info.py +40 -0
- uncountable/types/async_batch.py +1 -1
- uncountable/types/async_batch_processor.py +506 -23
- uncountable/types/async_batch_t.py +35 -8
- uncountable/types/async_jobs.py +0 -1
- uncountable/types/async_jobs_t.py +1 -2
- uncountable/types/auth_retrieval.py +0 -1
- uncountable/types/auth_retrieval_t.py +6 -6
- uncountable/types/base.py +0 -1
- uncountable/types/base_t.py +11 -9
- uncountable/types/calculations.py +0 -1
- uncountable/types/calculations_t.py +1 -2
- uncountable/types/chemical_structure.py +0 -1
- uncountable/types/chemical_structure_t.py +5 -5
- uncountable/types/client_base.py +614 -69
- uncountable/types/client_config.py +1 -1
- uncountable/types/client_config_t.py +13 -3
- uncountable/types/curves.py +0 -1
- uncountable/types/curves_t.py +6 -7
- uncountable/types/data.py +12 -0
- uncountable/types/data_t.py +103 -0
- uncountable/types/entity.py +1 -1
- uncountable/types/entity_t.py +90 -10
- uncountable/types/experiment_groups.py +0 -1
- uncountable/types/experiment_groups_t.py +1 -2
- uncountable/types/exports.py +8 -0
- uncountable/types/exports_t.py +34 -0
- uncountable/types/field_values.py +19 -1
- uncountable/types/field_values_t.py +242 -9
- uncountable/types/fields.py +0 -1
- uncountable/types/fields_t.py +1 -2
- uncountable/types/generic_upload.py +0 -1
- uncountable/types/generic_upload_t.py +14 -14
- uncountable/types/id_source.py +0 -1
- uncountable/types/id_source_t.py +13 -7
- uncountable/types/identifier.py +0 -1
- uncountable/types/identifier_t.py +10 -5
- uncountable/types/input_attributes.py +0 -1
- uncountable/types/input_attributes_t.py +3 -4
- uncountable/types/inputs.py +0 -1
- uncountable/types/inputs_t.py +3 -4
- uncountable/types/integration_server.py +0 -1
- uncountable/types/integration_server_t.py +13 -4
- uncountable/types/integration_session.py +10 -0
- uncountable/types/integration_session_t.py +60 -0
- uncountable/types/integrations.py +10 -0
- uncountable/types/integrations_t.py +62 -0
- uncountable/types/job_definition.py +2 -1
- uncountable/types/job_definition_t.py +57 -32
- uncountable/types/listing.py +9 -0
- uncountable/types/listing_t.py +51 -0
- uncountable/types/notices.py +8 -0
- uncountable/types/notices_t.py +37 -0
- uncountable/types/notifications.py +11 -0
- uncountable/types/notifications_t.py +74 -0
- uncountable/types/outputs.py +0 -1
- uncountable/types/outputs_t.py +2 -3
- uncountable/types/overrides.py +0 -1
- uncountable/types/overrides_t.py +10 -4
- uncountable/types/permissions.py +0 -1
- uncountable/types/permissions_t.py +1 -2
- uncountable/types/phases.py +0 -1
- uncountable/types/phases_t.py +1 -2
- uncountable/types/post_base.py +0 -1
- uncountable/types/post_base_t.py +1 -2
- uncountable/types/queued_job.py +2 -1
- uncountable/types/queued_job_t.py +29 -12
- uncountable/types/recipe_identifiers.py +0 -1
- uncountable/types/recipe_identifiers_t.py +18 -8
- uncountable/types/recipe_inputs.py +0 -1
- uncountable/types/recipe_inputs_t.py +1 -2
- uncountable/types/recipe_links.py +0 -1
- uncountable/types/recipe_links_t.py +3 -4
- uncountable/types/recipe_metadata.py +0 -1
- uncountable/types/recipe_metadata_t.py +9 -10
- uncountable/types/recipe_output_metadata.py +0 -1
- uncountable/types/recipe_output_metadata_t.py +1 -2
- uncountable/types/recipe_tags.py +0 -1
- uncountable/types/recipe_tags_t.py +1 -2
- uncountable/types/recipe_workflow_steps.py +0 -1
- uncountable/types/recipe_workflow_steps_t.py +7 -7
- uncountable/types/recipes.py +0 -1
- uncountable/types/recipes_t.py +2 -2
- uncountable/types/response.py +0 -1
- uncountable/types/response_t.py +2 -2
- uncountable/types/secret_retrieval.py +0 -1
- uncountable/types/secret_retrieval_t.py +7 -7
- uncountable/types/sockets.py +20 -0
- uncountable/types/sockets_t.py +169 -0
- uncountable/types/structured_filters.py +25 -0
- uncountable/types/structured_filters_t.py +248 -0
- uncountable/types/units.py +0 -1
- uncountable/types/units_t.py +1 -2
- uncountable/types/uploader.py +24 -0
- uncountable/types/uploader_t.py +222 -0
- uncountable/types/users.py +0 -1
- uncountable/types/users_t.py +1 -2
- uncountable/types/webhook_job.py +1 -1
- uncountable/types/webhook_job_t.py +14 -3
- uncountable/types/workflows.py +0 -1
- uncountable/types/workflows_t.py +3 -4
- uncountablepythonsdk-0.0.132.dist-info/METADATA +64 -0
- uncountablepythonsdk-0.0.132.dist-info/RECORD +363 -0
- {UncountablePythonSDK-0.0.82.dist-info → uncountablepythonsdk-0.0.132.dist-info}/WHEEL +1 -1
- UncountablePythonSDK-0.0.82.dist-info/METADATA +0 -60
- UncountablePythonSDK-0.0.82.dist-info/RECORD +0 -292
- docs/quickstart.md +0 -19
- {UncountablePythonSDK-0.0.82.dist-info → uncountablepythonsdk-0.0.132.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,60 @@
|
|
|
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 identifier_t
|
|
15
|
+
|
|
16
|
+
__all__: list[str] = [
|
|
17
|
+
"IntegrationSession",
|
|
18
|
+
"IntegrationSessionBase",
|
|
19
|
+
"IntegrationSessionInstrument",
|
|
20
|
+
"IntegrationSessionType",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
25
|
+
class IntegrationSessionType(StrEnum):
|
|
26
|
+
INSTRUMENT = "instrument"
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
30
|
+
@serial_class(
|
|
31
|
+
named_type_path="sdk.integration_session.IntegrationSessionBase",
|
|
32
|
+
)
|
|
33
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
34
|
+
class IntegrationSessionBase:
|
|
35
|
+
type: IntegrationSessionType
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
39
|
+
@serial_class(
|
|
40
|
+
named_type_path="sdk.integration_session.IntegrationSessionInstrument",
|
|
41
|
+
parse_require={"type"},
|
|
42
|
+
)
|
|
43
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
44
|
+
class IntegrationSessionInstrument(IntegrationSessionBase):
|
|
45
|
+
type: typing.Literal[IntegrationSessionType.INSTRUMENT] = IntegrationSessionType.INSTRUMENT
|
|
46
|
+
equipment_key: identifier_t.IdentifierKey
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
50
|
+
IntegrationSession = typing.Annotated[
|
|
51
|
+
typing.Union[IntegrationSessionInstrument],
|
|
52
|
+
serial_union_annotation(
|
|
53
|
+
named_type_path="sdk.integration_session.IntegrationSession",
|
|
54
|
+
discriminator="type",
|
|
55
|
+
discriminator_map={
|
|
56
|
+
"instrument": IntegrationSessionInstrument,
|
|
57
|
+
},
|
|
58
|
+
),
|
|
59
|
+
]
|
|
60
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,10 @@
|
|
|
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 .integrations_t import DataPackageType as DataPackageType
|
|
7
|
+
from .integrations_t import DataPackageBase as DataPackageBase
|
|
8
|
+
from .integrations_t import DataPackageNumericReading as DataPackageNumericReading
|
|
9
|
+
from .integrations_t import DataPackage as DataPackage
|
|
10
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,62 @@
|
|
|
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 entity_t
|
|
15
|
+
|
|
16
|
+
__all__: list[str] = [
|
|
17
|
+
"DataPackage",
|
|
18
|
+
"DataPackageBase",
|
|
19
|
+
"DataPackageNumericReading",
|
|
20
|
+
"DataPackageType",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
25
|
+
class DataPackageType(StrEnum):
|
|
26
|
+
NUMERIC_READING = "numeric_reading"
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
30
|
+
@serial_class(
|
|
31
|
+
named_type_path="sdk.integrations.DataPackageBase",
|
|
32
|
+
)
|
|
33
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
34
|
+
class DataPackageBase:
|
|
35
|
+
type: DataPackageType
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
39
|
+
@serial_class(
|
|
40
|
+
named_type_path="sdk.integrations.DataPackageNumericReading",
|
|
41
|
+
to_string_values={"value"},
|
|
42
|
+
parse_require={"type"},
|
|
43
|
+
)
|
|
44
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
45
|
+
class DataPackageNumericReading(DataPackageBase):
|
|
46
|
+
type: typing.Literal[DataPackageType.NUMERIC_READING] = DataPackageType.NUMERIC_READING
|
|
47
|
+
value: Decimal
|
|
48
|
+
target_entity: entity_t.EntityIdentifier
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
52
|
+
DataPackage = typing.Annotated[
|
|
53
|
+
typing.Union[DataPackageNumericReading],
|
|
54
|
+
serial_union_annotation(
|
|
55
|
+
named_type_path="sdk.integrations.DataPackage",
|
|
56
|
+
discriminator="type",
|
|
57
|
+
discriminator_map={
|
|
58
|
+
"numeric_reading": DataPackageNumericReading,
|
|
59
|
+
},
|
|
60
|
+
),
|
|
61
|
+
]
|
|
62
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# flake8: noqa: F821
|
|
2
1
|
# ruff: noqa: E402 Q003
|
|
3
2
|
# fmt: off
|
|
4
3
|
# isort: skip_file
|
|
@@ -19,6 +18,8 @@ from .job_definition_t import JobExecutor as JobExecutor
|
|
|
19
18
|
from .job_definition_t import JobLoggingSettings as JobLoggingSettings
|
|
20
19
|
from .job_definition_t import JobDefinitionBase as JobDefinitionBase
|
|
21
20
|
from .job_definition_t import CronJobDefinition as CronJobDefinition
|
|
21
|
+
from .job_definition_t import HttpJobDefinitionBase as HttpJobDefinitionBase
|
|
22
|
+
from .job_definition_t import CustomHttpJobDefinition as CustomHttpJobDefinition
|
|
22
23
|
from .job_definition_t import WebhookJobDefinition as WebhookJobDefinition
|
|
23
24
|
from .job_definition_t import JobDefinition as JobDefinition
|
|
24
25
|
from .job_definition_t import ProfileDefinition as ProfileDefinition
|
|
@@ -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,11 +6,12 @@ from __future__ import annotations
|
|
|
7
6
|
import typing # noqa: F401
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
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
|
|
14
13
|
from . import auth_retrieval_t
|
|
14
|
+
from . import base_t
|
|
15
15
|
from . import client_config_t
|
|
16
16
|
from . import generic_upload_t
|
|
17
17
|
from . import identifier_t
|
|
@@ -20,11 +20,13 @@ from . import secret_retrieval_t
|
|
|
20
20
|
|
|
21
21
|
__all__: list[str] = [
|
|
22
22
|
"CronJobDefinition",
|
|
23
|
+
"CustomHttpJobDefinition",
|
|
23
24
|
"GenericUploadDataSource",
|
|
24
25
|
"GenericUploadDataSourceBase",
|
|
25
26
|
"GenericUploadDataSourceS3",
|
|
26
27
|
"GenericUploadDataSourceSFTP",
|
|
27
28
|
"GenericUploadDataSourceType",
|
|
29
|
+
"HttpJobDefinitionBase",
|
|
28
30
|
"JobDefinition",
|
|
29
31
|
"JobDefinitionBase",
|
|
30
32
|
"JobDefinitionType",
|
|
@@ -46,6 +48,7 @@ __all__: list[str] = [
|
|
|
46
48
|
class JobDefinitionType(StrEnum):
|
|
47
49
|
CRON = "cron"
|
|
48
50
|
WEBHOOK = "webhook"
|
|
51
|
+
CUSTOM_HTTP = "custom_http"
|
|
49
52
|
|
|
50
53
|
|
|
51
54
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -64,7 +67,7 @@ class GenericUploadDataSourceType(StrEnum):
|
|
|
64
67
|
@serial_class(
|
|
65
68
|
named_type_path="sdk.job_definition.JobExecutorBase",
|
|
66
69
|
)
|
|
67
|
-
@dataclasses.dataclass(kw_only=True)
|
|
70
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
68
71
|
class JobExecutorBase:
|
|
69
72
|
type: JobExecutorType
|
|
70
73
|
|
|
@@ -74,7 +77,7 @@ class JobExecutorBase:
|
|
|
74
77
|
named_type_path="sdk.job_definition.JobExecutorScript",
|
|
75
78
|
parse_require={"type"},
|
|
76
79
|
)
|
|
77
|
-
@dataclasses.dataclass(kw_only=True)
|
|
80
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
78
81
|
class JobExecutorScript(JobExecutorBase):
|
|
79
82
|
type: typing.Literal[JobExecutorType.SCRIPT] = JobExecutorType.SCRIPT
|
|
80
83
|
import_path: str
|
|
@@ -84,7 +87,7 @@ class JobExecutorScript(JobExecutorBase):
|
|
|
84
87
|
@serial_class(
|
|
85
88
|
named_type_path="sdk.job_definition.GenericUploadDataSourceBase",
|
|
86
89
|
)
|
|
87
|
-
@dataclasses.dataclass(kw_only=True)
|
|
90
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
88
91
|
class GenericUploadDataSourceBase:
|
|
89
92
|
type: GenericUploadDataSourceType
|
|
90
93
|
|
|
@@ -94,12 +97,13 @@ class GenericUploadDataSourceBase:
|
|
|
94
97
|
named_type_path="sdk.job_definition.GenericUploadDataSourceSFTP",
|
|
95
98
|
parse_require={"type"},
|
|
96
99
|
)
|
|
97
|
-
@dataclasses.dataclass(kw_only=True)
|
|
100
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
98
101
|
class GenericUploadDataSourceSFTP(GenericUploadDataSourceBase):
|
|
99
102
|
type: typing.Literal[GenericUploadDataSourceType.SFTP] = GenericUploadDataSourceType.SFTP
|
|
100
103
|
host: str
|
|
101
104
|
username: str
|
|
102
|
-
pem_secret: secret_retrieval_t.SecretRetrieval
|
|
105
|
+
pem_secret: secret_retrieval_t.SecretRetrieval | None = None
|
|
106
|
+
password_secret: secret_retrieval_t.SecretRetrieval | None = None
|
|
103
107
|
|
|
104
108
|
|
|
105
109
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -113,20 +117,20 @@ class S3CloudProvider(StrEnum):
|
|
|
113
117
|
named_type_path="sdk.job_definition.GenericUploadDataSourceS3",
|
|
114
118
|
parse_require={"type"},
|
|
115
119
|
)
|
|
116
|
-
@dataclasses.dataclass(kw_only=True)
|
|
120
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
117
121
|
class GenericUploadDataSourceS3(GenericUploadDataSourceBase):
|
|
118
122
|
type: typing.Literal[GenericUploadDataSourceType.S3] = GenericUploadDataSourceType.S3
|
|
119
123
|
bucket_name: str
|
|
120
|
-
cloud_provider:
|
|
121
|
-
endpoint_url:
|
|
122
|
-
region_name:
|
|
123
|
-
access_key_id:
|
|
124
|
-
access_key_secret:
|
|
124
|
+
cloud_provider: S3CloudProvider | None = None
|
|
125
|
+
endpoint_url: str | None = None
|
|
126
|
+
region_name: str | None = None
|
|
127
|
+
access_key_id: str | None = None
|
|
128
|
+
access_key_secret: secret_retrieval_t.SecretRetrieval | None = None
|
|
125
129
|
|
|
126
130
|
|
|
127
131
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
128
132
|
GenericUploadDataSource = typing.Annotated[
|
|
129
|
-
|
|
133
|
+
GenericUploadDataSourceSFTP | GenericUploadDataSourceS3,
|
|
130
134
|
serial_union_annotation(
|
|
131
135
|
named_type_path="sdk.job_definition.GenericUploadDataSource",
|
|
132
136
|
discriminator="type",
|
|
@@ -143,7 +147,7 @@ GenericUploadDataSource = typing.Annotated[
|
|
|
143
147
|
named_type_path="sdk.job_definition.JobExecutorGenericUpload",
|
|
144
148
|
parse_require={"type"},
|
|
145
149
|
)
|
|
146
|
-
@dataclasses.dataclass(kw_only=True)
|
|
150
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
147
151
|
class JobExecutorGenericUpload(JobExecutorBase):
|
|
148
152
|
type: typing.Literal[JobExecutorType.GENERIC_UPLOAD] = JobExecutorType.GENERIC_UPLOAD
|
|
149
153
|
data_source: GenericUploadDataSource
|
|
@@ -153,7 +157,7 @@ class JobExecutorGenericUpload(JobExecutorBase):
|
|
|
153
157
|
|
|
154
158
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
155
159
|
JobExecutor = typing.Annotated[
|
|
156
|
-
|
|
160
|
+
JobExecutorScript | JobExecutorGenericUpload,
|
|
157
161
|
serial_union_annotation(
|
|
158
162
|
named_type_path="sdk.job_definition.JobExecutor",
|
|
159
163
|
discriminator="type",
|
|
@@ -169,23 +173,24 @@ JobExecutor = typing.Annotated[
|
|
|
169
173
|
@serial_class(
|
|
170
174
|
named_type_path="sdk.job_definition.JobLoggingSettings",
|
|
171
175
|
)
|
|
172
|
-
@dataclasses.dataclass(kw_only=True)
|
|
176
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
173
177
|
class JobLoggingSettings:
|
|
174
178
|
enabled: bool = False
|
|
175
|
-
share_with_user_groups:
|
|
179
|
+
share_with_user_groups: list[identifier_t.IdentifierKey] | None = None
|
|
176
180
|
|
|
177
181
|
|
|
178
182
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
179
183
|
@serial_class(
|
|
180
184
|
named_type_path="sdk.job_definition.JobDefinitionBase",
|
|
181
185
|
)
|
|
182
|
-
@dataclasses.dataclass(kw_only=True)
|
|
186
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
183
187
|
class JobDefinitionBase:
|
|
184
188
|
id: str
|
|
185
189
|
name: str
|
|
186
190
|
executor: JobExecutor
|
|
187
191
|
enabled: bool = True
|
|
188
|
-
logging_settings:
|
|
192
|
+
logging_settings: JobLoggingSettings | None = None
|
|
193
|
+
subqueue_name: str | None = None
|
|
189
194
|
|
|
190
195
|
|
|
191
196
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -193,31 +198,51 @@ class JobDefinitionBase:
|
|
|
193
198
|
named_type_path="sdk.job_definition.CronJobDefinition",
|
|
194
199
|
parse_require={"type"},
|
|
195
200
|
)
|
|
196
|
-
@dataclasses.dataclass(kw_only=True)
|
|
201
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
197
202
|
class CronJobDefinition(JobDefinitionBase):
|
|
198
203
|
type: typing.Literal[JobDefinitionType.CRON] = JobDefinitionType.CRON
|
|
199
204
|
cron_spec: str
|
|
200
205
|
|
|
201
206
|
|
|
207
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
208
|
+
@serial_class(
|
|
209
|
+
named_type_path="sdk.job_definition.HttpJobDefinitionBase",
|
|
210
|
+
)
|
|
211
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
212
|
+
class HttpJobDefinitionBase(JobDefinitionBase):
|
|
213
|
+
pass
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
217
|
+
@serial_class(
|
|
218
|
+
named_type_path="sdk.job_definition.CustomHttpJobDefinition",
|
|
219
|
+
parse_require={"type"},
|
|
220
|
+
)
|
|
221
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
222
|
+
class CustomHttpJobDefinition(HttpJobDefinitionBase):
|
|
223
|
+
type: typing.Literal[JobDefinitionType.CUSTOM_HTTP] = JobDefinitionType.CUSTOM_HTTP
|
|
224
|
+
|
|
225
|
+
|
|
202
226
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
203
227
|
@serial_class(
|
|
204
228
|
named_type_path="sdk.job_definition.WebhookJobDefinition",
|
|
205
229
|
parse_require={"type"},
|
|
206
230
|
)
|
|
207
|
-
@dataclasses.dataclass(kw_only=True)
|
|
208
|
-
class WebhookJobDefinition(
|
|
231
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
232
|
+
class WebhookJobDefinition(HttpJobDefinitionBase):
|
|
209
233
|
type: typing.Literal[JobDefinitionType.WEBHOOK] = JobDefinitionType.WEBHOOK
|
|
210
234
|
signature_key_secret: secret_retrieval_t.SecretRetrieval
|
|
211
235
|
|
|
212
236
|
|
|
213
237
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
214
238
|
JobDefinition = typing.Annotated[
|
|
215
|
-
|
|
239
|
+
CronJobDefinition | CustomHttpJobDefinition | WebhookJobDefinition,
|
|
216
240
|
serial_union_annotation(
|
|
217
241
|
named_type_path="sdk.job_definition.JobDefinition",
|
|
218
242
|
discriminator="type",
|
|
219
243
|
discriminator_map={
|
|
220
244
|
"cron": CronJobDefinition,
|
|
245
|
+
"custom_http": CustomHttpJobDefinition,
|
|
221
246
|
"webhook": WebhookJobDefinition,
|
|
222
247
|
},
|
|
223
248
|
),
|
|
@@ -228,25 +253,25 @@ JobDefinition = typing.Annotated[
|
|
|
228
253
|
@serial_class(
|
|
229
254
|
named_type_path="sdk.job_definition.ProfileDefinition",
|
|
230
255
|
)
|
|
231
|
-
@dataclasses.dataclass(kw_only=True)
|
|
256
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
232
257
|
class ProfileDefinition:
|
|
233
258
|
jobs: list[JobDefinition]
|
|
234
|
-
auth_retrieval:
|
|
235
|
-
base_url:
|
|
236
|
-
client_options:
|
|
237
|
-
environments:
|
|
259
|
+
auth_retrieval: auth_retrieval_t.AuthRetrieval | None = None
|
|
260
|
+
base_url: str | None = None
|
|
261
|
+
client_options: client_config_t.ClientConfigOptions | None = None
|
|
262
|
+
environments: dict[integration_server_t.IntegrationEnvironment, integration_server_t.EnvironmentConfig] | None = None
|
|
238
263
|
|
|
239
264
|
|
|
240
265
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
241
266
|
@serial_class(
|
|
242
267
|
named_type_path="sdk.job_definition.ProfileMetadata",
|
|
243
268
|
)
|
|
244
|
-
@dataclasses.dataclass(kw_only=True)
|
|
269
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
245
270
|
class ProfileMetadata:
|
|
246
271
|
name: str
|
|
247
272
|
base_url: str
|
|
248
273
|
auth_retrieval: auth_retrieval_t.AuthRetrieval
|
|
249
|
-
client_options:
|
|
274
|
+
client_options: client_config_t.ClientConfigOptions | None
|
|
250
275
|
jobs: list[JobDefinition]
|
|
251
276
|
|
|
252
277
|
|
|
@@ -254,7 +279,7 @@ class ProfileMetadata:
|
|
|
254
279
|
@serial_class(
|
|
255
280
|
named_type_path="sdk.job_definition.JobResult",
|
|
256
281
|
)
|
|
257
|
-
@dataclasses.dataclass(kw_only=True)
|
|
282
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
258
283
|
class JobResult:
|
|
259
284
|
success: bool
|
|
260
285
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,9 @@
|
|
|
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 .listing_t import ColumnType as ColumnType
|
|
7
|
+
from .listing_t import ColumnIdentifierEntityRefName as ColumnIdentifierEntityRefName
|
|
8
|
+
from .listing_t import ColumnIdentifier as ColumnIdentifier
|
|
9
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,51 @@
|
|
|
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 entity_t
|
|
15
|
+
|
|
16
|
+
__all__: list[str] = [
|
|
17
|
+
"ColumnIdentifier",
|
|
18
|
+
"ColumnIdentifierEntityRefName",
|
|
19
|
+
"ColumnType",
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
24
|
+
class ColumnType(StrEnum):
|
|
25
|
+
REF_NAME = "ref_name"
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
29
|
+
@serial_class(
|
|
30
|
+
named_type_path="sdk.listing.ColumnIdentifierEntityRefName",
|
|
31
|
+
parse_require={"type"},
|
|
32
|
+
)
|
|
33
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True, frozen=True, eq=True) # type: ignore[literal-required]
|
|
34
|
+
class ColumnIdentifierEntityRefName:
|
|
35
|
+
type: typing.Literal[ColumnType.REF_NAME] = ColumnType.REF_NAME
|
|
36
|
+
entity_type: entity_t.EntityType
|
|
37
|
+
entity_ref_name: str
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
41
|
+
ColumnIdentifier = typing.Annotated[
|
|
42
|
+
typing.Union[ColumnIdentifierEntityRefName],
|
|
43
|
+
serial_union_annotation(
|
|
44
|
+
named_type_path="sdk.listing.ColumnIdentifier",
|
|
45
|
+
discriminator="type",
|
|
46
|
+
discriminator_map={
|
|
47
|
+
"ref_name": ColumnIdentifierEntityRefName,
|
|
48
|
+
},
|
|
49
|
+
),
|
|
50
|
+
]
|
|
51
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,8 @@
|
|
|
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 .notices_t import NoticeType as NoticeType
|
|
7
|
+
from .notices_t import NotificationNoticeConfiguration as NotificationNoticeConfiguration
|
|
8
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,37 @@
|
|
|
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 base_t
|
|
13
|
+
|
|
14
|
+
__all__: list[str] = [
|
|
15
|
+
"NoticeType",
|
|
16
|
+
"NotificationNoticeConfiguration",
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
21
|
+
class NoticeType(StrEnum):
|
|
22
|
+
ERROR = "error"
|
|
23
|
+
WARNING = "warning"
|
|
24
|
+
INFO = "info"
|
|
25
|
+
SUCCESS = "success"
|
|
26
|
+
DEBUG = "debug"
|
|
27
|
+
PLAIN = "plain"
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
31
|
+
@serial_class(
|
|
32
|
+
named_type_path="sdk.notices.NotificationNoticeConfiguration",
|
|
33
|
+
)
|
|
34
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
35
|
+
class NotificationNoticeConfiguration:
|
|
36
|
+
notice_type: NoticeType | None = None
|
|
37
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,11 @@
|
|
|
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 .notifications_t import NotificationTargetType as NotificationTargetType
|
|
7
|
+
from .notifications_t import NotificationTargetBase as NotificationTargetBase
|
|
8
|
+
from .notifications_t import NotificationTargetUser as NotificationTargetUser
|
|
9
|
+
from .notifications_t import NotificationTargetUserGroup as NotificationTargetUserGroup
|
|
10
|
+
from .notifications_t import NotificationTarget as NotificationTarget
|
|
11
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,74 @@
|
|
|
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 identifier_t
|
|
15
|
+
|
|
16
|
+
__all__: list[str] = [
|
|
17
|
+
"NotificationTarget",
|
|
18
|
+
"NotificationTargetBase",
|
|
19
|
+
"NotificationTargetType",
|
|
20
|
+
"NotificationTargetUser",
|
|
21
|
+
"NotificationTargetUserGroup",
|
|
22
|
+
]
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
26
|
+
class NotificationTargetType(StrEnum):
|
|
27
|
+
USER = "user"
|
|
28
|
+
USER_GROUP = "user_group"
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
32
|
+
@serial_class(
|
|
33
|
+
named_type_path="sdk.notifications.NotificationTargetBase",
|
|
34
|
+
)
|
|
35
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
36
|
+
class NotificationTargetBase:
|
|
37
|
+
type: NotificationTargetType
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
41
|
+
@serial_class(
|
|
42
|
+
named_type_path="sdk.notifications.NotificationTargetUser",
|
|
43
|
+
parse_require={"type"},
|
|
44
|
+
)
|
|
45
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
46
|
+
class NotificationTargetUser(NotificationTargetBase):
|
|
47
|
+
type: typing.Literal[NotificationTargetType.USER] = NotificationTargetType.USER
|
|
48
|
+
user_key: identifier_t.IdentifierKey
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
52
|
+
@serial_class(
|
|
53
|
+
named_type_path="sdk.notifications.NotificationTargetUserGroup",
|
|
54
|
+
parse_require={"type"},
|
|
55
|
+
)
|
|
56
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
57
|
+
class NotificationTargetUserGroup(NotificationTargetBase):
|
|
58
|
+
type: typing.Literal[NotificationTargetType.USER_GROUP] = NotificationTargetType.USER_GROUP
|
|
59
|
+
user_group_key: identifier_t.IdentifierKey
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
63
|
+
NotificationTarget = typing.Annotated[
|
|
64
|
+
NotificationTargetUser | NotificationTargetUserGroup,
|
|
65
|
+
serial_union_annotation(
|
|
66
|
+
named_type_path="sdk.notifications.NotificationTarget",
|
|
67
|
+
discriminator="type",
|
|
68
|
+
discriminator_map={
|
|
69
|
+
"user": NotificationTargetUser,
|
|
70
|
+
"user_group": NotificationTargetUserGroup,
|
|
71
|
+
},
|
|
72
|
+
),
|
|
73
|
+
]
|
|
74
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
uncountable/types/outputs.py
CHANGED
uncountable/types/outputs_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
|
|
@@ -21,10 +20,10 @@ __all__: list[str] = [
|
|
|
21
20
|
@serial_class(
|
|
22
21
|
named_type_path="sdk.outputs.SimpleOutput",
|
|
23
22
|
)
|
|
24
|
-
@dataclasses.dataclass(kw_only=True)
|
|
23
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
25
24
|
class SimpleOutput:
|
|
26
25
|
output_id: base_t.ObjectId
|
|
27
26
|
name: str
|
|
28
|
-
unit:
|
|
27
|
+
unit: units_t.SimpleUnit | None
|
|
29
28
|
quantity_type: str
|
|
30
29
|
# DO NOT MODIFY -- This file is generated by type_spec
|
uncountable/types/overrides.py
CHANGED
uncountable/types/overrides_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,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 secret_retrieval_t
|
|
13
14
|
|
|
14
15
|
__all__: list[str] = [
|
|
@@ -22,7 +23,7 @@ __all__: list[str] = [
|
|
|
22
23
|
@serial_class(
|
|
23
24
|
named_type_path="sdk.overrides.SecretRetrievalOverride",
|
|
24
25
|
)
|
|
25
|
-
@dataclasses.dataclass(kw_only=True)
|
|
26
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
26
27
|
class SecretRetrievalOverride:
|
|
27
28
|
profile_name: str
|
|
28
29
|
secret_retrieval: secret_retrieval_t.SecretRetrieval
|
|
@@ -30,14 +31,19 @@ class SecretRetrievalOverride:
|
|
|
30
31
|
|
|
31
32
|
|
|
32
33
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
33
|
-
SecretRetrievalOverrides =
|
|
34
|
+
SecretRetrievalOverrides = typing.Annotated[
|
|
35
|
+
list[SecretRetrievalOverride],
|
|
36
|
+
serial_alias_annotation(
|
|
37
|
+
named_type_path="sdk.overrides.SecretRetrievalOverrides",
|
|
38
|
+
),
|
|
39
|
+
]
|
|
34
40
|
|
|
35
41
|
|
|
36
42
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
37
43
|
@serial_class(
|
|
38
44
|
named_type_path="sdk.overrides.Overrides",
|
|
39
45
|
)
|
|
40
|
-
@dataclasses.dataclass(kw_only=True)
|
|
46
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
41
47
|
class Overrides:
|
|
42
48
|
secrets: SecretRetrievalOverrides
|
|
43
49
|
# DO NOT MODIFY -- This file is generated by type_spec
|