splight-lib 3.2.2__tar.gz → 3.2.4__tar.gz
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.
- {splight-lib-3.2.2 → splight-lib-3.2.4}/PKG-INFO +1 -1
- {splight-lib-3.2.2 → splight-lib-3.2.4}/setup.py +1 -1
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/models/attribute.py +1 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/models/component.py +34 -11
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib.egg-info/PKG-INFO +1 -1
- {splight-lib-3.2.2 → splight-lib-3.2.4}/LICENSE.txt +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/README.md +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/pyproject.toml +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/setup.cfg +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/__init__.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/abstract/__init__.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/abstract/client.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/auth/__init__.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/auth/exceptions.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/auth/mac_auth.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/auth/token.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/__init__.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/communication/__init__.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/communication/abstract.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/communication/classmap.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/communication/exceptions.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/communication/local_client.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/communication/remote_client.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/database/__init__.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/database/abstract.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/database/builder.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/database/classmap.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/database/local_client.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/database/remote_client.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/datalake/__init__.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/datalake/abstract.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/datalake/builder.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/datalake/local_client.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/datalake/remote_client.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/exceptions.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/file_handler.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/filter.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/grpc/__init__.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/grpc/client.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/grpc/decorators.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/grpc/reflector.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/hub/__init__.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/hub/abstract.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/client/hub/client.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/communication/__init__.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/communication/event_handler.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/component/__init__.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/component/abstract.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/component/exceptions.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/component/log_streamer.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/component/spec.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/constants.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/encryption.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/execution.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/logging/__init__.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/logging/_internal.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/logging/component.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/logging/constants.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/logging/logging.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/models/__init__.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/models/alert.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/models/asset.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/models/base.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/models/communication.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/models/dashboard.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/models/data_address.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/models/event.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/models/exceptions.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/models/file.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/models/hub.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/models/native.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/models/query.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/models/secret.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/models/setpoint.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/restclient/__init__.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/restclient/client.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/restclient/exceptions.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/restclient/types.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/settings.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/testing/__init__.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/utils/__init__.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/utils/custom_model.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/utils/hub.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib/webhook.py +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib.egg-info/SOURCES.txt +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib.egg-info/dependency_links.txt +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib.egg-info/not-zip-safe +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib.egg-info/requires.txt +0 -0
- {splight-lib-3.2.2 → splight-lib-3.2.4}/splight_lib.egg-info/top_level.txt +0 -0
|
@@ -3,7 +3,7 @@ import warnings
|
|
|
3
3
|
from abc import ABC, abstractmethod
|
|
4
4
|
from datetime import datetime
|
|
5
5
|
from enum import auto
|
|
6
|
-
from typing import Any, ClassVar, Dict, List, Optional, Type
|
|
6
|
+
from typing import Any, ClassVar, Dict, List, Optional, Type, Union
|
|
7
7
|
|
|
8
8
|
from pydantic import AnyUrl, BaseModel, Field, PrivateAttr, create_model
|
|
9
9
|
from strenum import LowercaseStrEnum
|
|
@@ -61,13 +61,13 @@ class InputParameter(Parameter):
|
|
|
61
61
|
class DataAdress(Parameter):
|
|
62
62
|
choices: None = None
|
|
63
63
|
depends_on: None = None
|
|
64
|
-
|
|
64
|
+
required: bool = True
|
|
65
65
|
type: str = Field("DataAdress", const=True)
|
|
66
66
|
value_type: str = "Number"
|
|
67
67
|
|
|
68
68
|
|
|
69
69
|
class InputDataAdress(DataAdress):
|
|
70
|
-
value: Dict[str, str]
|
|
70
|
+
value: Union[List[Dict[str, str]], Dict[str, str]]
|
|
71
71
|
|
|
72
72
|
|
|
73
73
|
class OutputParameter(BaseModel):
|
|
@@ -226,8 +226,12 @@ def get_field_value(field: InputParameter):
|
|
|
226
226
|
elif field.type in DATALAKE_TYPES:
|
|
227
227
|
model_class = DATALAKE_TYPES[field.type]
|
|
228
228
|
value = field.value.copy()
|
|
229
|
-
value
|
|
230
|
-
|
|
229
|
+
value = value if multiple else [value]
|
|
230
|
+
for item in value:
|
|
231
|
+
item.update({"type": field.value_type})
|
|
232
|
+
|
|
233
|
+
value = [model_class.parse_obj(item) for item in value]
|
|
234
|
+
value = value[0] if not multiple else value
|
|
231
235
|
else:
|
|
232
236
|
value_as_list = (
|
|
233
237
|
ComponentObject.list(id__in=field.value)
|
|
@@ -310,10 +314,19 @@ class AbstractObjectInstance(ABC, SplightDatabaseBaseModel):
|
|
|
310
314
|
def _convert_to_input_data_addres(
|
|
311
315
|
field: DataAdress, field_value: Any
|
|
312
316
|
) -> InputDataAdress:
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
+
if field.multiple:
|
|
318
|
+
value = [
|
|
319
|
+
{
|
|
320
|
+
"asset": item.asset,
|
|
321
|
+
"attribute": item.attribute,
|
|
322
|
+
}
|
|
323
|
+
for item in field_value
|
|
324
|
+
]
|
|
325
|
+
else:
|
|
326
|
+
value = {
|
|
327
|
+
"asset": field_value.asset,
|
|
328
|
+
"attribute": field_value.attribute,
|
|
329
|
+
}
|
|
317
330
|
parameter = field.dict()
|
|
318
331
|
parameter.update({"value": value})
|
|
319
332
|
return InputDataAdress.parse_obj(parameter)
|
|
@@ -518,12 +531,22 @@ class RoutineObjectInstance(AbstractObjectInstance):
|
|
|
518
531
|
|
|
519
532
|
@classmethod
|
|
520
533
|
def _create_input_model(cls, parameters: List[DataAdress]) -> Type:
|
|
521
|
-
fields = {
|
|
534
|
+
fields = {}
|
|
535
|
+
for field in parameters:
|
|
536
|
+
field_type = (
|
|
537
|
+
List[DLDataAddress] if field.multiple else DLDataAddress
|
|
538
|
+
)
|
|
539
|
+
fields.update({field.name: (field_type, ...)})
|
|
522
540
|
return create_model("Input", **fields)
|
|
523
541
|
|
|
524
542
|
@classmethod
|
|
525
543
|
def _create_output_model(cls, parameters: List[DataAdress]) -> Type:
|
|
526
|
-
fields = {
|
|
544
|
+
fields = {}
|
|
545
|
+
for field in parameters:
|
|
546
|
+
field_type = (
|
|
547
|
+
List[DLDataAddress] if field.multiple else DLDataAddress
|
|
548
|
+
)
|
|
549
|
+
fields.update({field.name: (field_type, ...)})
|
|
527
550
|
return create_model("Output", **fields)
|
|
528
551
|
|
|
529
552
|
@classmethod
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|