UncountablePythonSDK 0.0.52__py3-none-any.whl → 0.0.131__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of UncountablePythonSDK might be problematic. Click here for more details.
- docs/conf.py +54 -7
- docs/index.md +107 -4
- docs/integration_examples/create_ingredient.md +43 -0
- docs/integration_examples/create_output.md +56 -0
- docs/integration_examples/index.md +6 -0
- docs/justfile +2 -2
- docs/requirements.txt +6 -4
- examples/async_batch.py +3 -3
- examples/basic_auth.py +7 -0
- examples/create_entity.py +3 -1
- examples/create_ingredient_sdk.py +34 -0
- examples/download_files.py +26 -0
- examples/edit_recipe_inputs.py +4 -2
- examples/integration-server/jobs/materials_auto/concurrent_cron.py +11 -0
- examples/integration-server/jobs/materials_auto/example_cron.py +21 -0
- examples/integration-server/jobs/materials_auto/example_http.py +47 -0
- examples/integration-server/jobs/materials_auto/example_instrument.py +100 -0
- examples/integration-server/jobs/materials_auto/example_parse.py +140 -0
- examples/integration-server/jobs/materials_auto/example_predictions.py +61 -0
- examples/integration-server/jobs/materials_auto/example_runsheet_wh.py +39 -0
- examples/integration-server/jobs/materials_auto/example_wh.py +23 -0
- examples/integration-server/jobs/materials_auto/profile.yaml +104 -0
- examples/integration-server/pyproject.toml +224 -0
- examples/invoke_uploader.py +4 -1
- examples/oauth.py +7 -0
- examples/set_recipe_metadata_file.py +40 -0
- examples/set_recipe_output_file_sdk.py +26 -0
- examples/upload_files.py +1 -2
- pkgs/argument_parser/__init__.py +9 -0
- pkgs/argument_parser/_is_namedtuple.py +3 -0
- pkgs/argument_parser/argument_parser.py +217 -70
- pkgs/filesystem_utils/__init__.py +1 -0
- pkgs/filesystem_utils/_blob_session.py +144 -0
- pkgs/filesystem_utils/_gdrive_session.py +10 -7
- pkgs/filesystem_utils/_s3_session.py +15 -13
- pkgs/filesystem_utils/_sftp_session.py +11 -7
- pkgs/filesystem_utils/file_type_utils.py +30 -10
- pkgs/py.typed +0 -0
- pkgs/serialization/__init__.py +7 -2
- pkgs/serialization/annotation.py +64 -0
- pkgs/serialization/missing_sentry.py +1 -1
- pkgs/serialization/opaque_key.py +1 -1
- pkgs/serialization/serial_alias.py +47 -0
- pkgs/serialization/serial_class.py +47 -26
- pkgs/serialization/serial_generic.py +16 -0
- pkgs/serialization/serial_union.py +17 -14
- pkgs/serialization/yaml.py +4 -1
- pkgs/serialization_util/__init__.py +6 -0
- pkgs/serialization_util/dataclasses.py +14 -0
- pkgs/serialization_util/serialization_helpers.py +15 -5
- pkgs/type_spec/actions_registry/__main__.py +0 -4
- pkgs/type_spec/actions_registry/emit_typescript.py +5 -5
- pkgs/type_spec/builder.py +354 -119
- pkgs/type_spec/builder_types.py +9 -0
- pkgs/type_spec/config.py +51 -11
- pkgs/type_spec/cross_output_links.py +99 -0
- pkgs/type_spec/emit_io_ts.py +1 -1
- pkgs/type_spec/emit_open_api.py +127 -36
- pkgs/type_spec/emit_open_api_util.py +5 -6
- pkgs/type_spec/emit_python.py +329 -121
- pkgs/type_spec/emit_typescript.py +117 -256
- pkgs/type_spec/emit_typescript_util.py +291 -2
- pkgs/type_spec/load_types.py +18 -4
- pkgs/type_spec/non_discriminated_union_exceptions.py +14 -0
- pkgs/type_spec/open_api_util.py +29 -4
- pkgs/type_spec/parts/base.py.prepart +13 -10
- pkgs/type_spec/parts/base.ts.prepart +4 -0
- pkgs/type_spec/type_info/__main__.py +3 -1
- pkgs/type_spec/type_info/emit_type_info.py +124 -29
- pkgs/type_spec/ui_entry_actions/__init__.py +4 -0
- pkgs/type_spec/ui_entry_actions/generate_ui_entry_actions.py +308 -0
- pkgs/type_spec/util.py +4 -4
- pkgs/type_spec/value_spec/__main__.py +26 -9
- pkgs/type_spec/value_spec/convert_type.py +21 -1
- pkgs/type_spec/value_spec/emit_python.py +25 -7
- pkgs/type_spec/value_spec/types.py +1 -1
- uncountable/core/async_batch.py +1 -1
- uncountable/core/client.py +142 -39
- uncountable/core/environment.py +41 -0
- uncountable/core/file_upload.py +52 -18
- uncountable/integration/cli.py +142 -0
- uncountable/integration/construct_client.py +8 -8
- uncountable/integration/cron.py +11 -37
- uncountable/integration/db/connect.py +12 -2
- uncountable/integration/db/session.py +25 -0
- uncountable/integration/entrypoint.py +8 -37
- uncountable/integration/executors/executors.py +125 -2
- uncountable/integration/executors/generic_upload_executor.py +87 -29
- uncountable/integration/executors/script_executor.py +3 -3
- uncountable/integration/http_server/__init__.py +5 -0
- uncountable/integration/http_server/types.py +69 -0
- uncountable/integration/job.py +242 -12
- uncountable/integration/queue_runner/__init__.py +0 -0
- uncountable/integration/queue_runner/command_server/__init__.py +28 -0
- uncountable/integration/queue_runner/command_server/command_client.py +133 -0
- uncountable/integration/queue_runner/command_server/command_server.py +142 -0
- uncountable/integration/queue_runner/command_server/constants.py +4 -0
- uncountable/integration/queue_runner/command_server/protocol/__init__.py +0 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server.proto +58 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +57 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +114 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +264 -0
- uncountable/integration/queue_runner/command_server/types.py +75 -0
- uncountable/integration/queue_runner/datastore/__init__.py +3 -0
- uncountable/integration/queue_runner/datastore/datastore_sqlite.py +250 -0
- uncountable/integration/queue_runner/datastore/interface.py +29 -0
- uncountable/integration/queue_runner/datastore/model.py +24 -0
- uncountable/integration/queue_runner/job_scheduler.py +200 -0
- uncountable/integration/queue_runner/queue_runner.py +34 -0
- uncountable/integration/queue_runner/types.py +7 -0
- uncountable/integration/queue_runner/worker.py +116 -0
- uncountable/integration/scan_profiles.py +67 -0
- uncountable/integration/scheduler.py +199 -0
- uncountable/integration/secret_retrieval/retrieve_secret.py +26 -4
- uncountable/integration/server.py +94 -69
- uncountable/integration/telemetry.py +150 -34
- uncountable/integration/webhook_server/entrypoint.py +97 -0
- uncountable/types/__init__.py +78 -1
- uncountable/types/api/batch/execute_batch.py +13 -6
- uncountable/types/api/batch/execute_batch_load_async.py +9 -3
- uncountable/types/api/chemical/convert_chemical_formats.py +17 -5
- uncountable/types/api/condition_parameters/__init__.py +1 -0
- uncountable/types/api/condition_parameters/upsert_condition_match.py +72 -0
- uncountable/types/api/entity/create_entities.py +19 -7
- uncountable/types/api/entity/create_entity.py +17 -8
- uncountable/types/api/entity/create_or_update_entity.py +48 -0
- uncountable/types/api/entity/export_entities.py +59 -0
- uncountable/types/api/entity/get_entities_data.py +13 -4
- uncountable/types/api/entity/grant_entity_permissions.py +48 -0
- uncountable/types/api/entity/list_aggregate.py +79 -0
- uncountable/types/api/entity/list_entities.py +42 -10
- uncountable/types/api/entity/lock_entity.py +11 -4
- uncountable/types/api/entity/lookup_entity.py +116 -0
- uncountable/types/api/entity/resolve_entity_ids.py +15 -6
- uncountable/types/api/entity/set_entity_field_values.py +44 -0
- uncountable/types/api/entity/set_values.py +10 -3
- uncountable/types/api/entity/transition_entity_phase.py +22 -7
- uncountable/types/api/entity/unlock_entity.py +10 -3
- uncountable/types/api/equipment/associate_equipment_input.py +9 -3
- uncountable/types/api/field_options/upsert_field_options.py +17 -7
- uncountable/types/api/files/__init__.py +1 -0
- uncountable/types/api/files/download_file.py +77 -0
- uncountable/types/api/id_source/list_id_source.py +16 -7
- uncountable/types/api/id_source/match_id_source.py +14 -5
- uncountable/types/api/input_groups/get_input_group_names.py +13 -4
- uncountable/types/api/inputs/create_inputs.py +23 -9
- uncountable/types/api/inputs/get_input_data.py +30 -12
- uncountable/types/api/inputs/get_input_names.py +16 -7
- uncountable/types/api/inputs/get_inputs_data.py +25 -7
- uncountable/types/api/inputs/set_input_attribute_values.py +12 -6
- uncountable/types/api/inputs/set_input_category.py +12 -5
- uncountable/types/api/inputs/set_input_subcategories.py +10 -3
- uncountable/types/api/inputs/set_intermediate_type.py +11 -4
- uncountable/types/api/integrations/__init__.py +1 -0
- uncountable/types/api/integrations/publish_realtime_data.py +41 -0
- uncountable/types/api/integrations/push_notification.py +49 -0
- uncountable/types/api/integrations/register_sockets_token.py +41 -0
- uncountable/types/api/listing/__init__.py +1 -0
- uncountable/types/api/listing/fetch_listing.py +58 -0
- uncountable/types/api/material_families/update_entity_material_families.py +10 -4
- uncountable/types/api/notebooks/__init__.py +1 -0
- uncountable/types/api/notebooks/add_notebook_content.py +119 -0
- uncountable/types/api/outputs/get_output_data.py +28 -13
- uncountable/types/api/outputs/get_output_names.py +15 -6
- uncountable/types/api/outputs/get_output_organization.py +173 -0
- uncountable/types/api/outputs/resolve_output_conditions.py +20 -8
- uncountable/types/api/permissions/set_core_permissions.py +26 -10
- uncountable/types/api/project/get_projects.py +16 -7
- uncountable/types/api/project/get_projects_data.py +17 -8
- uncountable/types/api/recipe_links/create_recipe_link.py +12 -5
- uncountable/types/api/recipe_links/remove_recipe_link.py +11 -4
- uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +16 -7
- uncountable/types/api/recipes/add_recipe_to_project.py +10 -3
- uncountable/types/api/recipes/add_time_series_data.py +64 -0
- uncountable/types/api/recipes/archive_recipes.py +11 -4
- uncountable/types/api/recipes/associate_recipe_as_input.py +12 -5
- uncountable/types/api/recipes/associate_recipe_as_lot.py +10 -3
- uncountable/types/api/recipes/clear_recipe_outputs.py +42 -0
- uncountable/types/api/recipes/create_mix_order.py +44 -0
- uncountable/types/api/recipes/create_recipe.py +15 -9
- uncountable/types/api/recipes/create_recipes.py +21 -9
- uncountable/types/api/recipes/disassociate_recipe_as_input.py +10 -3
- uncountable/types/api/recipes/edit_recipe_inputs.py +134 -22
- uncountable/types/api/recipes/get_column_calculation_values.py +57 -0
- uncountable/types/api/recipes/get_curve.py +11 -5
- uncountable/types/api/recipes/get_recipe_calculations.py +13 -7
- uncountable/types/api/recipes/get_recipe_links.py +10 -4
- uncountable/types/api/recipes/get_recipe_names.py +13 -4
- uncountable/types/api/recipes/get_recipe_output_metadata.py +12 -6
- uncountable/types/api/recipes/get_recipes_data.py +87 -33
- uncountable/types/api/recipes/lock_recipes.py +19 -8
- uncountable/types/api/recipes/remove_recipe_from_project.py +10 -3
- uncountable/types/api/recipes/set_recipe_inputs.py +16 -10
- uncountable/types/api/recipes/set_recipe_metadata.py +10 -3
- uncountable/types/api/recipes/set_recipe_output_annotations.py +24 -12
- uncountable/types/api/recipes/set_recipe_output_file.py +55 -0
- uncountable/types/api/recipes/set_recipe_outputs.py +35 -12
- uncountable/types/api/recipes/set_recipe_tags.py +26 -9
- uncountable/types/api/recipes/set_recipe_total.py +59 -0
- uncountable/types/api/recipes/unarchive_recipes.py +10 -3
- uncountable/types/api/recipes/unlock_recipes.py +14 -6
- uncountable/types/api/runsheet/__init__.py +1 -0
- uncountable/types/api/runsheet/complete_async_upload.py +41 -0
- uncountable/types/api/triggers/run_trigger.py +11 -4
- uncountable/types/api/uploader/complete_async_parse.py +46 -0
- uncountable/types/api/uploader/invoke_uploader.py +13 -6
- uncountable/types/api/user/__init__.py +1 -0
- uncountable/types/api/user/get_current_user_info.py +40 -0
- uncountable/types/async_batch.py +2 -1
- uncountable/types/async_batch_processor.py +618 -18
- uncountable/types/async_batch_t.py +54 -7
- uncountable/types/async_jobs.py +8 -0
- uncountable/types/async_jobs_t.py +52 -0
- uncountable/types/auth_retrieval.py +11 -0
- uncountable/types/auth_retrieval_t.py +75 -0
- uncountable/types/base.py +0 -1
- uncountable/types/base_t.py +13 -11
- uncountable/types/calculations.py +0 -1
- uncountable/types/calculations_t.py +5 -2
- uncountable/types/chemical_structure.py +0 -1
- uncountable/types/chemical_structure_t.py +6 -5
- uncountable/types/client_base.py +751 -70
- uncountable/types/client_config.py +1 -1
- uncountable/types/client_config_t.py +17 -3
- uncountable/types/curves.py +0 -1
- uncountable/types/curves_t.py +10 -7
- uncountable/types/data.py +12 -0
- uncountable/types/data_t.py +103 -0
- uncountable/types/entity.py +4 -1
- uncountable/types/entity_t.py +125 -7
- uncountable/types/experiment_groups.py +0 -1
- uncountable/types/experiment_groups_t.py +5 -2
- uncountable/types/exports.py +8 -0
- uncountable/types/exports_t.py +34 -0
- uncountable/types/field_values.py +19 -1
- uncountable/types/field_values_t.py +246 -9
- uncountable/types/fields.py +0 -1
- uncountable/types/fields_t.py +5 -2
- uncountable/types/generic_upload.py +6 -1
- uncountable/types/generic_upload_t.py +88 -9
- uncountable/types/id_source.py +0 -1
- uncountable/types/id_source_t.py +26 -7
- uncountable/types/identifier.py +0 -1
- uncountable/types/identifier_t.py +13 -5
- uncountable/types/input_attributes.py +0 -1
- uncountable/types/input_attributes_t.py +4 -4
- uncountable/types/inputs.py +1 -1
- uncountable/types/inputs_t.py +24 -4
- uncountable/types/integration_server.py +8 -0
- uncountable/types/integration_server_t.py +46 -0
- uncountable/types/integration_session.py +10 -0
- uncountable/types/integration_session_t.py +60 -0
- uncountable/types/integrations.py +10 -0
- uncountable/types/integrations_t.py +62 -0
- uncountable/types/job_definition.py +4 -6
- uncountable/types/job_definition_t.py +96 -65
- uncountable/types/listing.py +9 -0
- uncountable/types/listing_t.py +51 -0
- uncountable/types/notices.py +8 -0
- uncountable/types/notices_t.py +37 -0
- uncountable/types/notifications.py +11 -0
- uncountable/types/notifications_t.py +74 -0
- uncountable/types/outputs.py +0 -1
- uncountable/types/outputs_t.py +6 -3
- uncountable/types/overrides.py +9 -0
- uncountable/types/overrides_t.py +49 -0
- uncountable/types/permissions.py +0 -1
- uncountable/types/permissions_t.py +1 -2
- uncountable/types/phases.py +0 -1
- uncountable/types/phases_t.py +5 -2
- uncountable/types/post_base.py +0 -1
- uncountable/types/post_base_t.py +1 -2
- uncountable/types/queued_job.py +17 -0
- uncountable/types/queued_job_t.py +140 -0
- uncountable/types/recipe_identifiers.py +0 -1
- uncountable/types/recipe_identifiers_t.py +21 -8
- uncountable/types/recipe_inputs.py +0 -1
- uncountable/types/recipe_inputs_t.py +1 -2
- uncountable/types/recipe_links.py +0 -1
- uncountable/types/recipe_links_t.py +7 -4
- uncountable/types/recipe_metadata.py +0 -1
- uncountable/types/recipe_metadata_t.py +14 -9
- uncountable/types/recipe_output_metadata.py +0 -1
- uncountable/types/recipe_output_metadata_t.py +5 -2
- uncountable/types/recipe_tags.py +0 -1
- uncountable/types/recipe_tags_t.py +5 -2
- uncountable/types/recipe_workflow_steps.py +0 -1
- uncountable/types/recipe_workflow_steps_t.py +14 -7
- uncountable/types/recipes.py +0 -1
- uncountable/types/recipes_t.py +6 -2
- uncountable/types/response.py +0 -1
- uncountable/types/response_t.py +3 -2
- uncountable/types/secret_retrieval.py +0 -1
- uncountable/types/secret_retrieval_t.py +13 -7
- uncountable/types/sockets.py +20 -0
- uncountable/types/sockets_t.py +169 -0
- uncountable/types/structured_filters.py +25 -0
- uncountable/types/structured_filters_t.py +248 -0
- uncountable/types/units.py +0 -1
- uncountable/types/units_t.py +5 -2
- uncountable/types/uploader.py +24 -0
- uncountable/types/uploader_t.py +222 -0
- uncountable/types/users.py +0 -1
- uncountable/types/users_t.py +5 -2
- uncountable/types/webhook_job.py +9 -0
- uncountable/types/webhook_job_t.py +48 -0
- uncountable/types/workflows.py +0 -1
- uncountable/types/workflows_t.py +10 -4
- uncountablepythonsdk-0.0.131.dist-info/METADATA +64 -0
- uncountablepythonsdk-0.0.131.dist-info/RECORD +363 -0
- {UncountablePythonSDK-0.0.52.dist-info → uncountablepythonsdk-0.0.131.dist-info}/WHEEL +1 -1
- UncountablePythonSDK-0.0.52.dist-info/METADATA +0 -56
- UncountablePythonSDK-0.0.52.dist-info/RECORD +0 -246
- docs/quickstart.md +0 -19
- uncountable/core/version.py +0 -11
- {UncountablePythonSDK-0.0.52.dist-info → uncountablepythonsdk-0.0.131.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
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 .sockets_t import SocketRequestBase as SocketRequestBase
|
|
7
|
+
from .sockets_t import SocketRequestType as SocketRequestType
|
|
8
|
+
from .sockets_t import SocketRequestIntegrationSession as SocketRequestIntegrationSession
|
|
9
|
+
from .sockets_t import SocketTokenRequest as SocketTokenRequest
|
|
10
|
+
from .sockets_t import SocketTokenResponse as SocketTokenResponse
|
|
11
|
+
from .sockets_t import SocketEventType as SocketEventType
|
|
12
|
+
from .sockets_t import BaseSocketEventData as BaseSocketEventData
|
|
13
|
+
from .sockets_t import UsersInRoomUpdatedEventData as UsersInRoomUpdatedEventData
|
|
14
|
+
from .sockets_t import SocketEventData as SocketEventData
|
|
15
|
+
from .sockets_t import SocketResponse as SocketResponse
|
|
16
|
+
from .sockets_t import SocketClientMessageType as SocketClientMessageType
|
|
17
|
+
from .sockets_t import JoinRoomWithTokenSocketClientMessage as JoinRoomWithTokenSocketClientMessage
|
|
18
|
+
from .sockets_t import SendInstrumentReadingClientMessage as SendInstrumentReadingClientMessage
|
|
19
|
+
from .sockets_t import SocketClientMessage as SocketClientMessage
|
|
20
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# ruff: noqa: E402 Q003
|
|
3
|
+
# fmt: off
|
|
4
|
+
# isort: skip_file
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
import typing # noqa: F401
|
|
7
|
+
import datetime # noqa: F401
|
|
8
|
+
from decimal import Decimal # noqa: F401
|
|
9
|
+
from enum import StrEnum
|
|
10
|
+
import dataclasses
|
|
11
|
+
from pkgs.serialization import serial_class
|
|
12
|
+
from pkgs.serialization import serial_union_annotation
|
|
13
|
+
from pkgs.serialization import serial_alias_annotation
|
|
14
|
+
from . import base_t
|
|
15
|
+
from . import integration_session_t
|
|
16
|
+
|
|
17
|
+
__all__: list[str] = [
|
|
18
|
+
"BaseSocketEventData",
|
|
19
|
+
"JoinRoomWithTokenSocketClientMessage",
|
|
20
|
+
"SendInstrumentReadingClientMessage",
|
|
21
|
+
"SocketClientMessage",
|
|
22
|
+
"SocketClientMessageType",
|
|
23
|
+
"SocketEventData",
|
|
24
|
+
"SocketEventType",
|
|
25
|
+
"SocketRequestBase",
|
|
26
|
+
"SocketRequestIntegrationSession",
|
|
27
|
+
"SocketRequestType",
|
|
28
|
+
"SocketResponse",
|
|
29
|
+
"SocketTokenRequest",
|
|
30
|
+
"SocketTokenResponse",
|
|
31
|
+
"UsersInRoomUpdatedEventData",
|
|
32
|
+
]
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
36
|
+
@serial_class(
|
|
37
|
+
named_type_path="sdk.sockets.SocketRequestBase",
|
|
38
|
+
)
|
|
39
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
40
|
+
class SocketRequestBase:
|
|
41
|
+
type: SocketRequestType
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
45
|
+
class SocketRequestType(StrEnum):
|
|
46
|
+
INTEGRATION_SESSION = "integration_session"
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
50
|
+
@serial_class(
|
|
51
|
+
named_type_path="sdk.sockets.SocketRequestIntegrationSession",
|
|
52
|
+
parse_require={"type"},
|
|
53
|
+
)
|
|
54
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
55
|
+
class SocketRequestIntegrationSession(SocketRequestBase):
|
|
56
|
+
type: typing.Literal[SocketRequestType.INTEGRATION_SESSION] = SocketRequestType.INTEGRATION_SESSION
|
|
57
|
+
integration_session: integration_session_t.IntegrationSession
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
61
|
+
SocketTokenRequest = typing.Annotated[
|
|
62
|
+
typing.Union[SocketRequestIntegrationSession],
|
|
63
|
+
serial_union_annotation(
|
|
64
|
+
named_type_path="sdk.sockets.SocketTokenRequest",
|
|
65
|
+
discriminator="type",
|
|
66
|
+
discriminator_map={
|
|
67
|
+
"integration_session": SocketRequestIntegrationSession,
|
|
68
|
+
},
|
|
69
|
+
),
|
|
70
|
+
]
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
74
|
+
@serial_class(
|
|
75
|
+
named_type_path="sdk.sockets.SocketTokenResponse",
|
|
76
|
+
)
|
|
77
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
78
|
+
class SocketTokenResponse:
|
|
79
|
+
token: str
|
|
80
|
+
room_key: str
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
84
|
+
class SocketEventType(StrEnum):
|
|
85
|
+
USERS_IN_ROOM_UPDATED = "users_in_room_updated"
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
89
|
+
@serial_class(
|
|
90
|
+
named_type_path="sdk.sockets.BaseSocketEventData",
|
|
91
|
+
)
|
|
92
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
93
|
+
class BaseSocketEventData:
|
|
94
|
+
pass
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
98
|
+
@serial_class(
|
|
99
|
+
named_type_path="sdk.sockets.UsersInRoomUpdatedEventData",
|
|
100
|
+
parse_require={"type"},
|
|
101
|
+
)
|
|
102
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
103
|
+
class UsersInRoomUpdatedEventData(BaseSocketEventData):
|
|
104
|
+
type: typing.Literal[SocketEventType.USERS_IN_ROOM_UPDATED] = SocketEventType.USERS_IN_ROOM_UPDATED
|
|
105
|
+
user_ids: list[base_t.ObjectId]
|
|
106
|
+
number_of_connections: int
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
110
|
+
SocketEventData = typing.Annotated[
|
|
111
|
+
typing.Union[UsersInRoomUpdatedEventData],
|
|
112
|
+
serial_alias_annotation(
|
|
113
|
+
named_type_path="sdk.sockets.SocketEventData",
|
|
114
|
+
),
|
|
115
|
+
]
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
119
|
+
@serial_class(
|
|
120
|
+
named_type_path="sdk.sockets.SocketResponse",
|
|
121
|
+
)
|
|
122
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
123
|
+
class SocketResponse:
|
|
124
|
+
data: SocketEventData
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
128
|
+
class SocketClientMessageType(StrEnum):
|
|
129
|
+
JOIN_ROOM_WITH_TOKEN = "join_room_with_token"
|
|
130
|
+
SEND_INSTRUMENT_READING = "send_instrument_reading"
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
134
|
+
@serial_class(
|
|
135
|
+
named_type_path="sdk.sockets.JoinRoomWithTokenSocketClientMessage",
|
|
136
|
+
parse_require={"type"},
|
|
137
|
+
)
|
|
138
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
139
|
+
class JoinRoomWithTokenSocketClientMessage:
|
|
140
|
+
type: typing.Literal[SocketClientMessageType.JOIN_ROOM_WITH_TOKEN] = SocketClientMessageType.JOIN_ROOM_WITH_TOKEN
|
|
141
|
+
token: str
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
145
|
+
@serial_class(
|
|
146
|
+
named_type_path="sdk.sockets.SendInstrumentReadingClientMessage",
|
|
147
|
+
to_string_values={"value"},
|
|
148
|
+
parse_require={"type"},
|
|
149
|
+
)
|
|
150
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
151
|
+
class SendInstrumentReadingClientMessage:
|
|
152
|
+
type: typing.Literal[SocketClientMessageType.SEND_INSTRUMENT_READING] = SocketClientMessageType.SEND_INSTRUMENT_READING
|
|
153
|
+
room_key: str
|
|
154
|
+
value: Decimal
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
158
|
+
SocketClientMessage = typing.Annotated[
|
|
159
|
+
JoinRoomWithTokenSocketClientMessage | SendInstrumentReadingClientMessage,
|
|
160
|
+
serial_union_annotation(
|
|
161
|
+
named_type_path="sdk.sockets.SocketClientMessage",
|
|
162
|
+
discriminator="type",
|
|
163
|
+
discriminator_map={
|
|
164
|
+
"join_room_with_token": JoinRoomWithTokenSocketClientMessage,
|
|
165
|
+
"send_instrument_reading": SendInstrumentReadingClientMessage,
|
|
166
|
+
},
|
|
167
|
+
),
|
|
168
|
+
]
|
|
169
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,25 @@
|
|
|
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 .structured_filters_t import FilterRelation as FilterRelation
|
|
7
|
+
from .structured_filters_t import FilterSpecBase as FilterSpecBase
|
|
8
|
+
from .structured_filters_t import FilterScalarType as FilterScalarType
|
|
9
|
+
from .structured_filters_t import FilterIdType as FilterIdType
|
|
10
|
+
from .structured_filters_t import StringFilterValue as StringFilterValue
|
|
11
|
+
from .structured_filters_t import FilterSpecEquals as FilterSpecEquals
|
|
12
|
+
from .structured_filters_t import FilterSpecInclude as FilterSpecInclude
|
|
13
|
+
from .structured_filters_t import FilterSpecIStrContains as FilterSpecIStrContains
|
|
14
|
+
from .structured_filters_t import FilterSpecIStrStartsWith as FilterSpecIStrStartsWith
|
|
15
|
+
from .structured_filters_t import FilterSpecExists as FilterSpecExists
|
|
16
|
+
from .structured_filters_t import FilterSpecGreater as FilterSpecGreater
|
|
17
|
+
from .structured_filters_t import FilterLess as FilterLess
|
|
18
|
+
from .structured_filters_t import FilterSpecGeq as FilterSpecGeq
|
|
19
|
+
from .structured_filters_t import FilterSpecLeq as FilterSpecLeq
|
|
20
|
+
from .structured_filters_t import FilterSpec as FilterSpec
|
|
21
|
+
from .structured_filters_t import FilterNodeType as FilterNodeType
|
|
22
|
+
from .structured_filters_t import FilterNodeBase as FilterNodeBase
|
|
23
|
+
from .structured_filters_t import FilterNodeColumnAnd as FilterNodeColumnAnd
|
|
24
|
+
from .structured_filters_t import FilterNode as FilterNode
|
|
25
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# ruff: noqa: E402 Q003
|
|
3
|
+
# fmt: off
|
|
4
|
+
# isort: skip_file
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
import typing # noqa: F401
|
|
7
|
+
import datetime # noqa: F401
|
|
8
|
+
from decimal import Decimal # noqa: F401
|
|
9
|
+
from enum import StrEnum
|
|
10
|
+
import dataclasses
|
|
11
|
+
from pkgs.serialization import serial_class
|
|
12
|
+
from pkgs.serialization import serial_union_annotation
|
|
13
|
+
from pkgs.serialization import serial_alias_annotation
|
|
14
|
+
from . import base_t
|
|
15
|
+
from . import listing_t
|
|
16
|
+
|
|
17
|
+
__all__: list[str] = [
|
|
18
|
+
"FilterIdType",
|
|
19
|
+
"FilterLess",
|
|
20
|
+
"FilterNode",
|
|
21
|
+
"FilterNodeBase",
|
|
22
|
+
"FilterNodeColumnAnd",
|
|
23
|
+
"FilterNodeType",
|
|
24
|
+
"FilterRelation",
|
|
25
|
+
"FilterScalarType",
|
|
26
|
+
"FilterSpec",
|
|
27
|
+
"FilterSpecBase",
|
|
28
|
+
"FilterSpecEquals",
|
|
29
|
+
"FilterSpecExists",
|
|
30
|
+
"FilterSpecGeq",
|
|
31
|
+
"FilterSpecGreater",
|
|
32
|
+
"FilterSpecIStrContains",
|
|
33
|
+
"FilterSpecIStrStartsWith",
|
|
34
|
+
"FilterSpecInclude",
|
|
35
|
+
"FilterSpecLeq",
|
|
36
|
+
"StringFilterValue",
|
|
37
|
+
]
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
41
|
+
class FilterRelation(StrEnum):
|
|
42
|
+
EQUALS = "equals"
|
|
43
|
+
GREATER = "greater"
|
|
44
|
+
GEQ = "geq"
|
|
45
|
+
LESS = "less"
|
|
46
|
+
LEQ = "leq"
|
|
47
|
+
ISTR_CONTAINS = "istr_contains"
|
|
48
|
+
ISTR_STARTS_WITH = "istr_starts_with"
|
|
49
|
+
INCLUDE = "include"
|
|
50
|
+
EXISTS = "exists"
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
54
|
+
@serial_class(
|
|
55
|
+
named_type_path="sdk.structured_filters.FilterSpecBase",
|
|
56
|
+
)
|
|
57
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True, frozen=True, eq=True) # type: ignore[literal-required]
|
|
58
|
+
class FilterSpecBase:
|
|
59
|
+
relation: FilterRelation
|
|
60
|
+
column: listing_t.ColumnIdentifier
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
64
|
+
FilterScalarType = typing.Annotated[
|
|
65
|
+
str | int | Decimal,
|
|
66
|
+
serial_alias_annotation(
|
|
67
|
+
named_type_path="sdk.structured_filters.FilterScalarType",
|
|
68
|
+
),
|
|
69
|
+
]
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
73
|
+
FilterIdType = typing.Annotated[
|
|
74
|
+
base_t.ObjectId | str,
|
|
75
|
+
serial_alias_annotation(
|
|
76
|
+
named_type_path="sdk.structured_filters.FilterIdType",
|
|
77
|
+
),
|
|
78
|
+
]
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
82
|
+
StringFilterValue = typing.Annotated[
|
|
83
|
+
typing.Union[str],
|
|
84
|
+
serial_alias_annotation(
|
|
85
|
+
named_type_path="sdk.structured_filters.StringFilterValue",
|
|
86
|
+
),
|
|
87
|
+
]
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
91
|
+
@serial_class(
|
|
92
|
+
named_type_path="sdk.structured_filters.FilterSpecEquals",
|
|
93
|
+
parse_require={"relation"},
|
|
94
|
+
)
|
|
95
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True, frozen=True, eq=True) # type: ignore[literal-required]
|
|
96
|
+
class FilterSpecEquals(FilterSpecBase):
|
|
97
|
+
relation: typing.Literal[FilterRelation.EQUALS] = FilterRelation.EQUALS
|
|
98
|
+
value: FilterScalarType
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
102
|
+
@serial_class(
|
|
103
|
+
named_type_path="sdk.structured_filters.FilterSpecInclude",
|
|
104
|
+
parse_require={"relation"},
|
|
105
|
+
)
|
|
106
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True, frozen=True, eq=True) # type: ignore[literal-required]
|
|
107
|
+
class FilterSpecInclude(FilterSpecBase):
|
|
108
|
+
relation: typing.Literal[FilterRelation.INCLUDE] = FilterRelation.INCLUDE
|
|
109
|
+
value: FilterIdType | tuple[FilterIdType, ...]
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
113
|
+
@serial_class(
|
|
114
|
+
named_type_path="sdk.structured_filters.FilterSpecIStrContains",
|
|
115
|
+
parse_require={"relation"},
|
|
116
|
+
)
|
|
117
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True, frozen=True, eq=True) # type: ignore[literal-required]
|
|
118
|
+
class FilterSpecIStrContains(FilterSpecBase):
|
|
119
|
+
relation: typing.Literal[FilterRelation.ISTR_CONTAINS] = FilterRelation.ISTR_CONTAINS
|
|
120
|
+
value: str
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
124
|
+
@serial_class(
|
|
125
|
+
named_type_path="sdk.structured_filters.FilterSpecIStrStartsWith",
|
|
126
|
+
parse_require={"relation"},
|
|
127
|
+
)
|
|
128
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True, frozen=True, eq=True) # type: ignore[literal-required]
|
|
129
|
+
class FilterSpecIStrStartsWith(FilterSpecBase):
|
|
130
|
+
relation: typing.Literal[FilterRelation.ISTR_STARTS_WITH] = FilterRelation.ISTR_STARTS_WITH
|
|
131
|
+
value: str
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
135
|
+
@serial_class(
|
|
136
|
+
named_type_path="sdk.structured_filters.FilterSpecExists",
|
|
137
|
+
parse_require={"relation"},
|
|
138
|
+
)
|
|
139
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True, frozen=True, eq=True) # type: ignore[literal-required]
|
|
140
|
+
class FilterSpecExists(FilterSpecBase):
|
|
141
|
+
relation: typing.Literal[FilterRelation.EXISTS] = FilterRelation.EXISTS
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
145
|
+
@serial_class(
|
|
146
|
+
named_type_path="sdk.structured_filters.FilterSpecGreater",
|
|
147
|
+
to_string_values={"value"},
|
|
148
|
+
parse_require={"relation"},
|
|
149
|
+
)
|
|
150
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True, frozen=True, eq=True) # type: ignore[literal-required]
|
|
151
|
+
class FilterSpecGreater(FilterSpecBase):
|
|
152
|
+
relation: typing.Literal[FilterRelation.GREATER] = FilterRelation.GREATER
|
|
153
|
+
value: Decimal
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
157
|
+
@serial_class(
|
|
158
|
+
named_type_path="sdk.structured_filters.FilterLess",
|
|
159
|
+
to_string_values={"value"},
|
|
160
|
+
parse_require={"relation"},
|
|
161
|
+
)
|
|
162
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True, frozen=True, eq=True) # type: ignore[literal-required]
|
|
163
|
+
class FilterLess(FilterSpecBase):
|
|
164
|
+
relation: typing.Literal[FilterRelation.LESS] = FilterRelation.LESS
|
|
165
|
+
value: Decimal
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
169
|
+
@serial_class(
|
|
170
|
+
named_type_path="sdk.structured_filters.FilterSpecGeq",
|
|
171
|
+
to_string_values={"value"},
|
|
172
|
+
parse_require={"relation"},
|
|
173
|
+
)
|
|
174
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True, frozen=True, eq=True) # type: ignore[literal-required]
|
|
175
|
+
class FilterSpecGeq(FilterSpecBase):
|
|
176
|
+
relation: typing.Literal[FilterRelation.GEQ] = FilterRelation.GEQ
|
|
177
|
+
value: Decimal
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
181
|
+
@serial_class(
|
|
182
|
+
named_type_path="sdk.structured_filters.FilterSpecLeq",
|
|
183
|
+
to_string_values={"value"},
|
|
184
|
+
parse_require={"relation"},
|
|
185
|
+
)
|
|
186
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True, frozen=True, eq=True) # type: ignore[literal-required]
|
|
187
|
+
class FilterSpecLeq(FilterSpecBase):
|
|
188
|
+
relation: typing.Literal[FilterRelation.LEQ] = FilterRelation.LEQ
|
|
189
|
+
value: Decimal
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
193
|
+
FilterSpec = typing.Annotated[
|
|
194
|
+
FilterSpecEquals | FilterSpecGreater | FilterSpecGeq | FilterSpecLeq | FilterSpecIStrContains | FilterSpecIStrStartsWith | FilterSpecInclude | FilterSpecExists,
|
|
195
|
+
serial_union_annotation(
|
|
196
|
+
named_type_path="sdk.structured_filters.FilterSpec",
|
|
197
|
+
discriminator="relation",
|
|
198
|
+
discriminator_map={
|
|
199
|
+
"equals": FilterSpecEquals,
|
|
200
|
+
"greater": FilterSpecGreater,
|
|
201
|
+
"geq": FilterSpecGeq,
|
|
202
|
+
"leq": FilterSpecLeq,
|
|
203
|
+
"istr_contains": FilterSpecIStrContains,
|
|
204
|
+
"istr_starts_with": FilterSpecIStrStartsWith,
|
|
205
|
+
"include": FilterSpecInclude,
|
|
206
|
+
"exists": FilterSpecExists,
|
|
207
|
+
},
|
|
208
|
+
),
|
|
209
|
+
]
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
213
|
+
class FilterNodeType(StrEnum):
|
|
214
|
+
COLUMN_AND = "column_and"
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
218
|
+
@serial_class(
|
|
219
|
+
named_type_path="sdk.structured_filters.FilterNodeBase",
|
|
220
|
+
)
|
|
221
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
222
|
+
class FilterNodeBase:
|
|
223
|
+
type: FilterNodeType
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
227
|
+
@serial_class(
|
|
228
|
+
named_type_path="sdk.structured_filters.FilterNodeColumnAnd",
|
|
229
|
+
parse_require={"type"},
|
|
230
|
+
)
|
|
231
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True, frozen=True, eq=True) # type: ignore[literal-required]
|
|
232
|
+
class FilterNodeColumnAnd:
|
|
233
|
+
type: typing.Literal[FilterNodeType.COLUMN_AND] = FilterNodeType.COLUMN_AND
|
|
234
|
+
filters: tuple[FilterSpec, ...]
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
238
|
+
FilterNode = typing.Annotated[
|
|
239
|
+
typing.Union[FilterNodeColumnAnd],
|
|
240
|
+
serial_union_annotation(
|
|
241
|
+
named_type_path="sdk.structured_filters.FilterNode",
|
|
242
|
+
discriminator="type",
|
|
243
|
+
discriminator_map={
|
|
244
|
+
"column_and": FilterNodeColumnAnd,
|
|
245
|
+
},
|
|
246
|
+
),
|
|
247
|
+
]
|
|
248
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
uncountable/types/units.py
CHANGED
uncountable/types/units_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,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.units.SimpleUnit",
|
|
21
|
+
)
|
|
22
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
20
23
|
class SimpleUnit:
|
|
21
24
|
unit_id: base_t.ObjectId
|
|
22
25
|
name: str
|
|
@@ -0,0 +1,24 @@
|
|
|
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 .uploader_t import HeaderType as HeaderType
|
|
7
|
+
from .uploader_t import ChannelType as ChannelType
|
|
8
|
+
from .uploader_t import StructureElementType as StructureElementType
|
|
9
|
+
from .uploader_t import StructureElementBase as StructureElementBase
|
|
10
|
+
from .uploader_t import DecimalValue as DecimalValue
|
|
11
|
+
from .uploader_t import StringValue as StringValue
|
|
12
|
+
from .uploader_t import BaseData as BaseData
|
|
13
|
+
from .uploader_t import NumericHeaderData as NumericHeaderData
|
|
14
|
+
from .uploader_t import TextHeaderData as TextHeaderData
|
|
15
|
+
from .uploader_t import HeaderValue as HeaderValue
|
|
16
|
+
from .uploader_t import NumericChannelData as NumericChannelData
|
|
17
|
+
from .uploader_t import TimestampChannelData as TimestampChannelData
|
|
18
|
+
from .uploader_t import TextChannelData as TextChannelData
|
|
19
|
+
from .uploader_t import Channel as Channel
|
|
20
|
+
from .uploader_t import DataChannel as DataChannel
|
|
21
|
+
from .uploader_t import HeaderEntry as HeaderEntry
|
|
22
|
+
from .uploader_t import StructureElement as StructureElement
|
|
23
|
+
from .uploader_t import ParsedFileData as ParsedFileData
|
|
24
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|