UncountablePythonSDK 0.0.115__py3-none-any.whl → 0.0.142.dev0__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 +52 -5
- 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 +1 -1
- docs/requirements.txt +3 -2
- examples/basic_auth.py +7 -0
- examples/integration-server/jobs/materials_auto/example_cron.py +3 -0
- examples/integration-server/jobs/materials_auto/example_http.py +19 -7
- 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 +57 -16
- examples/integration-server/jobs/materials_auto/profile.yaml +27 -0
- examples/integration-server/pyproject.toml +4 -4
- examples/oauth.py +7 -0
- pkgs/argument_parser/__init__.py +1 -0
- pkgs/argument_parser/_is_namedtuple.py +3 -0
- pkgs/argument_parser/argument_parser.py +22 -3
- pkgs/serialization_util/serialization_helpers.py +3 -1
- pkgs/type_spec/builder.py +66 -19
- pkgs/type_spec/builder_types.py +9 -0
- pkgs/type_spec/config.py +26 -5
- pkgs/type_spec/cross_output_links.py +10 -16
- pkgs/type_spec/emit_open_api.py +72 -22
- pkgs/type_spec/emit_open_api_util.py +1 -0
- pkgs/type_spec/emit_python.py +76 -12
- pkgs/type_spec/emit_typescript.py +48 -32
- pkgs/type_spec/emit_typescript_util.py +44 -6
- pkgs/type_spec/load_types.py +2 -2
- pkgs/type_spec/open_api_util.py +16 -1
- pkgs/type_spec/parts/base.ts.prepart +4 -0
- pkgs/type_spec/type_info/emit_type_info.py +37 -4
- pkgs/type_spec/ui_entry_actions/generate_ui_entry_actions.py +1 -0
- pkgs/type_spec/value_spec/__main__.py +2 -2
- pkgs/type_spec/value_spec/emit_python.py +6 -1
- uncountable/core/client.py +10 -3
- uncountable/integration/cli.py +175 -23
- uncountable/integration/executors/executors.py +1 -2
- uncountable/integration/executors/generic_upload_executor.py +1 -1
- uncountable/integration/http_server/types.py +3 -1
- uncountable/integration/job.py +35 -3
- uncountable/integration/queue_runner/command_server/__init__.py +4 -0
- uncountable/integration/queue_runner/command_server/command_client.py +89 -0
- uncountable/integration/queue_runner/command_server/command_server.py +117 -5
- uncountable/integration/queue_runner/command_server/constants.py +4 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server.proto +51 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +34 -11
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +102 -1
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +180 -0
- uncountable/integration/queue_runner/command_server/types.py +44 -1
- uncountable/integration/queue_runner/datastore/datastore_sqlite.py +189 -8
- uncountable/integration/queue_runner/datastore/interface.py +13 -0
- uncountable/integration/queue_runner/datastore/model.py +8 -1
- uncountable/integration/queue_runner/job_scheduler.py +85 -21
- uncountable/integration/queue_runner/queue_runner.py +10 -2
- uncountable/integration/queue_runner/types.py +2 -0
- uncountable/integration/queue_runner/worker.py +28 -29
- uncountable/integration/scheduler.py +121 -23
- uncountable/integration/server.py +36 -6
- uncountable/integration/telemetry.py +129 -8
- uncountable/integration/webhook_server/entrypoint.py +2 -0
- uncountable/types/__init__.py +38 -0
- uncountable/types/api/entity/create_or_update_entity.py +1 -0
- uncountable/types/api/entity/export_entities.py +13 -0
- uncountable/types/api/entity/list_aggregate.py +79 -0
- uncountable/types/api/entity/list_entities.py +25 -0
- uncountable/types/api/entity/set_barcode.py +43 -0
- uncountable/types/api/entity/transition_entity_phase.py +2 -1
- uncountable/types/api/files/download_file.py +15 -1
- 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 +57 -0
- uncountable/types/api/notebooks/__init__.py +1 -0
- uncountable/types/api/notebooks/add_notebook_content.py +119 -0
- uncountable/types/api/outputs/get_output_organization.py +173 -0
- uncountable/types/api/recipes/edit_recipe_inputs.py +1 -1
- uncountable/types/api/recipes/get_recipe_output_metadata.py +2 -2
- uncountable/types/api/recipes/get_recipes_data.py +29 -0
- uncountable/types/api/recipes/lock_recipes.py +2 -1
- uncountable/types/api/recipes/set_recipe_total.py +59 -0
- uncountable/types/api/recipes/unlock_recipes.py +2 -1
- uncountable/types/api/runsheet/export_default_runsheet.py +44 -0
- uncountable/types/api/uploader/complete_async_parse.py +46 -0
- uncountable/types/api/user/__init__.py +1 -0
- uncountable/types/api/user/get_current_user_info.py +40 -0
- uncountable/types/async_batch_processor.py +266 -0
- uncountable/types/async_batch_t.py +5 -0
- uncountable/types/client_base.py +432 -2
- uncountable/types/client_config.py +1 -0
- uncountable/types/client_config_t.py +10 -0
- uncountable/types/entity_t.py +9 -1
- uncountable/types/exports_t.py +1 -0
- uncountable/types/integration_server_t.py +2 -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/listing.py +46 -0
- uncountable/types/listing_t.py +533 -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/queued_job.py +2 -0
- uncountable/types/queued_job_t.py +20 -2
- uncountable/types/sockets.py +20 -0
- uncountable/types/sockets_t.py +169 -0
- uncountable/types/uploader.py +24 -0
- uncountable/types/uploader_t.py +222 -0
- {uncountablepythonsdk-0.0.115.dist-info → uncountablepythonsdk-0.0.142.dev0.dist-info}/METADATA +5 -2
- {uncountablepythonsdk-0.0.115.dist-info → uncountablepythonsdk-0.0.142.dev0.dist-info}/RECORD +118 -79
- docs/quickstart.md +0 -19
- {uncountablepythonsdk-0.0.115.dist-info → uncountablepythonsdk-0.0.142.dev0.dist-info}/WHEEL +0 -0
- {uncountablepythonsdk-0.0.115.dist-info → uncountablepythonsdk-0.0.142.dev0.dist-info}/top_level.txt +0 -0
|
@@ -4,4 +4,5 @@
|
|
|
4
4
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
5
5
|
# Kept only for SDK backwards compatibility
|
|
6
6
|
from .client_config_t import ClientConfigOptions as ClientConfigOptions
|
|
7
|
+
from .client_config_t import RequestOptions as RequestOptions
|
|
7
8
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -12,6 +12,7 @@ from . import base_t
|
|
|
12
12
|
|
|
13
13
|
__all__: list[str] = [
|
|
14
14
|
"ClientConfigOptions",
|
|
15
|
+
"RequestOptions",
|
|
15
16
|
]
|
|
16
17
|
|
|
17
18
|
|
|
@@ -23,4 +24,13 @@ __all__: list[str] = [
|
|
|
23
24
|
class ClientConfigOptions:
|
|
24
25
|
allow_insecure_tls: bool = False
|
|
25
26
|
extra_headers: dict[str, str] | None = None
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
30
|
+
@serial_class(
|
|
31
|
+
named_type_path="sdk.client_config.RequestOptions",
|
|
32
|
+
)
|
|
33
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
34
|
+
class RequestOptions:
|
|
35
|
+
timeout_secs: int | None = None
|
|
26
36
|
# DO NOT MODIFY -- This file is generated by type_spec
|
uncountable/types/entity_t.py
CHANGED
|
@@ -32,6 +32,7 @@ __all__: list[str] = [
|
|
|
32
32
|
"annotation_type": "Annotation Type",
|
|
33
33
|
"approval": "Approval",
|
|
34
34
|
"async_job": "Async Job",
|
|
35
|
+
"barcode": "Barcode",
|
|
35
36
|
"calculation": "Calculation",
|
|
36
37
|
"calendar": "Calendar",
|
|
37
38
|
"calendar_event": "Calendar Event",
|
|
@@ -42,6 +43,7 @@ __all__: list[str] = [
|
|
|
42
43
|
"condition_match": "Condition Match",
|
|
43
44
|
"condition_parameter": "Condition Parameter",
|
|
44
45
|
"condition_parameter_mat_family": "Condition Parameter Material Family",
|
|
46
|
+
"condition_parameter_matches": "Condition Parameter Matches",
|
|
45
47
|
"condition_parameter_rule": "Condition Parameter Rule",
|
|
46
48
|
"condition_parameter_value": "Condition Parameter Value",
|
|
47
49
|
"constraint": "Constraint",
|
|
@@ -110,6 +112,7 @@ __all__: list[str] = [
|
|
|
110
112
|
"output_calculation_entity_mapping": "Output Calculation Entity Mapping",
|
|
111
113
|
"output_category_all": "Output Category",
|
|
112
114
|
"output_condition": "Output Condition",
|
|
115
|
+
"output_condition_condition_parameter": "Output Condition Condition Parameter",
|
|
113
116
|
"output_default_condition": "Output Default Condition",
|
|
114
117
|
"output_condition_parameter": "Output Condition Parameter",
|
|
115
118
|
"output_condition_parameter_analytical_method_category": "Output Condition Parameter Analytical Method Category",
|
|
@@ -138,6 +141,7 @@ __all__: list[str] = [
|
|
|
138
141
|
"recipe_ingredient_actual": "Recipe Ingredient Actual",
|
|
139
142
|
"recipe_ingredients_compounded": "Recipe Ingredients Compounded",
|
|
140
143
|
"recipe_ingredients_compounded_calculation": "Recipe Ingredients Compounded Calculation",
|
|
144
|
+
"recipe_link": "Experiment Link",
|
|
141
145
|
"recipe_output": "Recipe Output",
|
|
142
146
|
"recipe_output_annotation": "Recipe Output Annotation",
|
|
143
147
|
"recipe_output_metadata": "Recipe Output Metadata",
|
|
@@ -214,6 +218,7 @@ class EntityType(StrEnum):
|
|
|
214
218
|
ANNOTATION_TYPE = "annotation_type"
|
|
215
219
|
APPROVAL = "approval"
|
|
216
220
|
ASYNC_JOB = "async_job"
|
|
221
|
+
BARCODE = "barcode"
|
|
217
222
|
CALCULATION = "calculation"
|
|
218
223
|
CALENDAR = "calendar"
|
|
219
224
|
CALENDAR_EVENT = "calendar_event"
|
|
@@ -224,6 +229,7 @@ class EntityType(StrEnum):
|
|
|
224
229
|
CONDITION_MATCH = "condition_match"
|
|
225
230
|
CONDITION_PARAMETER = "condition_parameter"
|
|
226
231
|
CONDITION_PARAMETER_MAT_FAMILY = "condition_parameter_mat_family"
|
|
232
|
+
CONDITION_PARAMETER_MATCHES = "condition_parameter_matches"
|
|
227
233
|
CONDITION_PARAMETER_RULE = "condition_parameter_rule"
|
|
228
234
|
CONDITION_PARAMETER_VALUE = "condition_parameter_value"
|
|
229
235
|
CONSTRAINT = "constraint"
|
|
@@ -292,6 +298,7 @@ class EntityType(StrEnum):
|
|
|
292
298
|
OUTPUT_CALCULATION_ENTITY_MAPPING = "output_calculation_entity_mapping"
|
|
293
299
|
OUTPUT_CATEGORY_ALL = "output_category_all"
|
|
294
300
|
OUTPUT_CONDITION = "output_condition"
|
|
301
|
+
OUTPUT_CONDITION_CONDITION_PARAMETER = "output_condition_condition_parameter"
|
|
295
302
|
OUTPUT_DEFAULT_CONDITION = "output_default_condition"
|
|
296
303
|
OUTPUT_CONDITION_PARAMETER = "output_condition_parameter"
|
|
297
304
|
OUTPUT_CONDITION_PARAMETER_ANALYTICAL_METHOD_CATEGORY = "output_condition_parameter_analytical_method_category"
|
|
@@ -320,6 +327,7 @@ class EntityType(StrEnum):
|
|
|
320
327
|
RECIPE_INGREDIENT_ACTUAL = "recipe_ingredient_actual"
|
|
321
328
|
RECIPE_INGREDIENTS_COMPOUNDED = "recipe_ingredients_compounded"
|
|
322
329
|
RECIPE_INGREDIENTS_COMPOUNDED_CALCULATION = "recipe_ingredients_compounded_calculation"
|
|
330
|
+
RECIPE_LINK = "recipe_link"
|
|
323
331
|
RECIPE_OUTPUT = "recipe_output"
|
|
324
332
|
RECIPE_OUTPUT_ANNOTATION = "recipe_output_annotation"
|
|
325
333
|
RECIPE_OUTPUT_METADATA = "recipe_output_metadata"
|
|
@@ -392,7 +400,7 @@ class EntityType(StrEnum):
|
|
|
392
400
|
|
|
393
401
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
394
402
|
LimitedEntityType = typing.Annotated[
|
|
395
|
-
typing.Literal[EntityType.LAB_REQUEST] | typing.Literal[EntityType.APPROVAL] | typing.Literal[EntityType.CUSTOM_ENTITY] | typing.Literal[EntityType.INGREDIENT_ATTRIBUTE] | typing.Literal[EntityType.INVENTORY_AMOUNT] | typing.Literal[EntityType.TASK] | typing.Literal[EntityType.PROJECT] | typing.Literal[EntityType.EQUIPMENT] | typing.Literal[EntityType.INV_LOCAL_LOCATIONS] | typing.Literal[EntityType.FIELD_OPTION_SET] | typing.Literal[EntityType.WEBHOOK] | typing.Literal[EntityType.SPECS] | typing.Literal[EntityType.GOAL] | typing.Literal[EntityType.INGREDIENT_TAG_MAP] | typing.Literal[EntityType.INGREDIENT_TAG] | typing.Literal[EntityType.CONDITION_PARAMETER] | typing.Literal[EntityType.OUTPUT] | typing.Literal[EntityType.OUTPUT_CONDITION_PARAMETER] | typing.Literal[EntityType.ASYNC_JOB] | typing.Literal[EntityType.CONSTRAINT] | typing.Literal[EntityType.INGREDIENT_CATEGORY_ALL] | typing.Literal[EntityType.TIME_SERIES_SEGMENT] | typing.Literal[EntityType.EQUIPMENT_MAINTENANCE] | typing.Literal[EntityType.MAINTENANCE_SCHEDULE] | typing.Literal[EntityType.CONDITION_PARAMETER_RULE] | typing.Literal[EntityType.INGREDIENT] | typing.Literal[EntityType.TIMESHEET_ENTRY],
|
|
403
|
+
typing.Literal[EntityType.LAB_REQUEST] | typing.Literal[EntityType.APPROVAL] | typing.Literal[EntityType.CUSTOM_ENTITY] | typing.Literal[EntityType.INGREDIENT_ATTRIBUTE] | typing.Literal[EntityType.INVENTORY_AMOUNT] | typing.Literal[EntityType.TASK] | typing.Literal[EntityType.PROJECT] | typing.Literal[EntityType.EQUIPMENT] | typing.Literal[EntityType.INV_LOCAL_LOCATIONS] | typing.Literal[EntityType.FIELD_OPTION_SET] | typing.Literal[EntityType.WEBHOOK] | typing.Literal[EntityType.SPECS] | typing.Literal[EntityType.GOAL] | typing.Literal[EntityType.INGREDIENT_TAG_MAP] | typing.Literal[EntityType.INGREDIENT_TAG] | typing.Literal[EntityType.CONDITION_PARAMETER] | typing.Literal[EntityType.NOTEBOOK] | typing.Literal[EntityType.OUTPUT] | typing.Literal[EntityType.OUTPUT_CONDITION_PARAMETER] | typing.Literal[EntityType.ASYNC_JOB] | typing.Literal[EntityType.CONSTRAINT] | typing.Literal[EntityType.INGREDIENT_CATEGORY_ALL] | typing.Literal[EntityType.TIME_SERIES_SEGMENT] | typing.Literal[EntityType.EQUIPMENT_MAINTENANCE] | typing.Literal[EntityType.MAINTENANCE_SCHEDULE] | typing.Literal[EntityType.CONDITION_PARAMETER_RULE] | typing.Literal[EntityType.INGREDIENT] | typing.Literal[EntityType.TIMESHEET_ENTRY] | typing.Literal[EntityType.SAVE] | typing.Literal[EntityType.RECIPE_CHECK] | typing.Literal[EntityType.EXPERIMENT_GROUP_MEMBER],
|
|
396
404
|
serial_alias_annotation(
|
|
397
405
|
named_type_path="sdk.entity.LimitedEntityType",
|
|
398
406
|
),
|
uncountable/types/exports_t.py
CHANGED
|
@@ -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 .integration_session_t import IntegrationSessionType as IntegrationSessionType
|
|
7
|
+
from .integration_session_t import IntegrationSessionBase as IntegrationSessionBase
|
|
8
|
+
from .integration_session_t import IntegrationSessionInstrument as IntegrationSessionInstrument
|
|
9
|
+
from .integration_session_t import IntegrationSession as IntegrationSession
|
|
10
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -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
|
|
@@ -0,0 +1,46 @@
|
|
|
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 ColumnIdentifierTransitive as ColumnIdentifierTransitive
|
|
9
|
+
from .listing_t import LoadAggregateType as LoadAggregateType
|
|
10
|
+
from .listing_t import LoadAggregateGroupBy as LoadAggregateGroupBy
|
|
11
|
+
from .listing_t import LoadAggregateCollect as LoadAggregateCollect
|
|
12
|
+
from .listing_t import LoadAggregateCollectDistinct as LoadAggregateCollectDistinct
|
|
13
|
+
from .listing_t import LoadAggregateCount as LoadAggregateCount
|
|
14
|
+
from .listing_t import LoadAggregateCountDistinct as LoadAggregateCountDistinct
|
|
15
|
+
from .listing_t import LoadAggregateFirst as LoadAggregateFirst
|
|
16
|
+
from .listing_t import LoadAggregateUniqueValue as LoadAggregateUniqueValue
|
|
17
|
+
from .listing_t import LoadAggregateMin as LoadAggregateMin
|
|
18
|
+
from .listing_t import LoadAggregateMax as LoadAggregateMax
|
|
19
|
+
from .listing_t import LoadAggregateMean as LoadAggregateMean
|
|
20
|
+
from .listing_t import LoadAggregateStddev as LoadAggregateStddev
|
|
21
|
+
from .listing_t import LoadAggregateSum as LoadAggregateSum
|
|
22
|
+
from .listing_t import DateGroupType as DateGroupType
|
|
23
|
+
from .listing_t import LoadAggregateGroupByDate as LoadAggregateGroupByDate
|
|
24
|
+
from .listing_t import AggregateLoadTypes as AggregateLoadTypes
|
|
25
|
+
from .listing_t import ColumnIdentifierTransitiveAggregate as ColumnIdentifierTransitiveAggregate
|
|
26
|
+
from .listing_t import ColumnIdentifier as ColumnIdentifier
|
|
27
|
+
from .listing_t import FilterRelation as FilterRelation
|
|
28
|
+
from .listing_t import FilterSpecBase as FilterSpecBase
|
|
29
|
+
from .listing_t import FilterScalarType as FilterScalarType
|
|
30
|
+
from .listing_t import FilterIdType as FilterIdType
|
|
31
|
+
from .listing_t import StringFilterValue as StringFilterValue
|
|
32
|
+
from .listing_t import FilterSpecEquals as FilterSpecEquals
|
|
33
|
+
from .listing_t import FilterSpecInclude as FilterSpecInclude
|
|
34
|
+
from .listing_t import FilterSpecIStrContains as FilterSpecIStrContains
|
|
35
|
+
from .listing_t import FilterSpecIStrStartsWith as FilterSpecIStrStartsWith
|
|
36
|
+
from .listing_t import FilterSpecExists as FilterSpecExists
|
|
37
|
+
from .listing_t import FilterSpecGreater as FilterSpecGreater
|
|
38
|
+
from .listing_t import FilterSpecLess as FilterSpecLess
|
|
39
|
+
from .listing_t import FilterSpecGeq as FilterSpecGeq
|
|
40
|
+
from .listing_t import FilterSpecLeq as FilterSpecLeq
|
|
41
|
+
from .listing_t import FilterSpec as FilterSpec
|
|
42
|
+
from .listing_t import FilterNodeType as FilterNodeType
|
|
43
|
+
from .listing_t import FilterNodeBase as FilterNodeBase
|
|
44
|
+
from .listing_t import FilterNodeColumnAnd as FilterNodeColumnAnd
|
|
45
|
+
from .listing_t import FilterNode as FilterNode
|
|
46
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|