splight-lib 5.19.6__tar.gz → 5.19.7.dev0__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-5.19.6 → splight_lib-5.19.7.dev0}/PKG-INFO +1 -1
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/pyproject.toml +1 -1
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/database/classmap.py +1 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/__init__.py +2 -40
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/__init__.py +2 -41
- splight_lib-5.19.7.dev0/splight_lib/models/_v4/battery.py +31 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/bus.py +7 -4
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/exceptions.py +0 -8
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/generator.py +5 -1
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/line.py +21 -13
- splight_lib-5.19.6/splight_lib/models/_v4/alert.py +0 -283
- splight_lib-5.19.6/splight_lib/models/_v4/dashboard.py +0 -332
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/LICENSE.txt +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/README.md +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/__init__.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/abstract/__init__.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/abstract/client.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/auth/__init__.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/auth/token.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/__init__.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/database/__init__.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/database/abstract.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/database/builder.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/database/remote_client.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/datalake/__init__.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/datalake/abstract.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/datalake/buffer.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/datalake/builder.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/datalake/classmap.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/datalake/constants.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/datalake/exceptions.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/datalake/remote_client.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/exceptions.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/hub/__init__.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/hub/abstract.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/hub/client.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/tests/test_database.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/tests/test_datalake.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/component/__init__.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/component/abstract.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/component/exceptions.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/component/spec.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/component/tests/test_spec.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/config.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/conftest.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/constants.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/encryption.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/execution/__init__.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/execution/engine.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/execution/exceptions.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/execution/scheduling.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/execution/task.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/execution/tests/test_execution.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/execution/tests/test_scheduling.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/execution/trigger.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/logging/__init__.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/logging/_internal.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/logging/component.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/logging/constants.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/logging/logging.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/logging/tests/test_logging.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/__init__.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/actions.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/alert.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/asset.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/attribute.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/bus.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/component.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/dashboard.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/data_address.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/datalake.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/datalake_base.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/exceptions.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/external_grid.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/file.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/function.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/generator.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/generic.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/grid.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/hub.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/hub_server.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/inverter.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/line.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/metadata.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/native.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/secret.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/segment.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/server.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/slack_generator.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/slack_line.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/tag.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/tests/models.json +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/tests/test_component_object_instance.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/tests/test_database_model.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/tests/test_metadata.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/tests/test_models.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/three_winding_transformer.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/transformer.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/variable_types.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/asset.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/attribute.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/base.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/component.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/data_address.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/datalake.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/datalake_base.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/external_grid.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/file.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/generic.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/grid.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/hub.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/hub_server.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/load.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/metadata.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/native.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/secret.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/segment.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/server.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/slack_line.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/tag.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/transformer.py +2 -2
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/variable_types.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/database.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/restclient/__init__.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/restclient/client.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/restclient/exceptions.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/restclient/tests/test_restclient.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/restclient/types.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/server/__init__.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/server/exceptions.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/server/server.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/settings.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/testing/__init__.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/tests/FakeProc.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/tests/asset_geometries.json +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/tests/test_api_contracts.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/utils/__init__.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/utils/custom_model.py +0 -0
- {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/version.py +0 -0
|
@@ -9,6 +9,7 @@ MODEL_NAME_MAP = {
|
|
|
9
9
|
"tag": f"{ENGINE_PREFIX}/tags/",
|
|
10
10
|
"assetkind": f"{ENGINE_PREFIX}/asset/kinds/",
|
|
11
11
|
"attribute": f"{ENGINE_PREFIX}/asset/attributes/",
|
|
12
|
+
"battery": f"{ENGINE_PREFIX}/asset/batteries/",
|
|
12
13
|
"bus": f"{ENGINE_PREFIX}/asset/buses/",
|
|
13
14
|
"metadata": f"{ENGINE_PREFIX}/metadata/",
|
|
14
15
|
"chart": f"{ENGINE_PREFIX}/dashboard/charts/",
|
|
@@ -164,42 +164,24 @@ if api_version == SplightAPIVersion.V3:
|
|
|
164
164
|
elif api_version == SplightAPIVersion.V4:
|
|
165
165
|
from splight_lib.models._v4 import (
|
|
166
166
|
DB_MODEL_TYPE_MAPPING,
|
|
167
|
-
AdvancedFilter,
|
|
168
|
-
Alert,
|
|
169
|
-
AlertItem,
|
|
170
167
|
Asset,
|
|
171
168
|
AssetKind,
|
|
172
169
|
AssetRelationship,
|
|
173
170
|
Attribute,
|
|
174
171
|
AttributeType,
|
|
172
|
+
Battery,
|
|
175
173
|
Boolean,
|
|
176
174
|
Bus,
|
|
177
|
-
Chart,
|
|
178
|
-
ChartItem,
|
|
179
175
|
Component,
|
|
180
176
|
ComponentObject,
|
|
181
177
|
ComponentObjectInstance,
|
|
182
178
|
ComponentType,
|
|
183
179
|
CustomType,
|
|
184
|
-
Dashboard,
|
|
185
|
-
DashboardAlertEventsChart,
|
|
186
|
-
DashboardAlertListChart,
|
|
187
|
-
DashboardAssetListChart,
|
|
188
|
-
DashboardBarChart,
|
|
189
|
-
DashboardBarGaugeChart,
|
|
190
|
-
DashboardGaugeChart,
|
|
191
|
-
DashboardHistogramChart,
|
|
192
|
-
DashboardImageChart,
|
|
193
|
-
DashboardStatChart,
|
|
194
|
-
DashboardTableChart,
|
|
195
|
-
DashboardTextChart,
|
|
196
|
-
DashboardTimeseriesChart,
|
|
197
180
|
DataAddress,
|
|
198
181
|
DataRequest,
|
|
199
182
|
Endpoint,
|
|
200
183
|
ExternalGrid,
|
|
201
184
|
File,
|
|
202
|
-
Filter,
|
|
203
185
|
Generator,
|
|
204
186
|
Grid,
|
|
205
187
|
HubComponent,
|
|
@@ -225,7 +207,6 @@ elif api_version == SplightAPIVersion.V4:
|
|
|
225
207
|
SlackLine,
|
|
226
208
|
SplightDatalakeBaseModel,
|
|
227
209
|
String,
|
|
228
|
-
Tab,
|
|
229
210
|
Tag,
|
|
230
211
|
Trace,
|
|
231
212
|
Transformer,
|
|
@@ -234,8 +215,6 @@ elif api_version == SplightAPIVersion.V4:
|
|
|
234
215
|
)
|
|
235
216
|
|
|
236
217
|
__all__ = [
|
|
237
|
-
"Alert",
|
|
238
|
-
"AlertItem",
|
|
239
218
|
"Asset",
|
|
240
219
|
"AssetRelationship",
|
|
241
220
|
"Component",
|
|
@@ -254,25 +233,7 @@ elif api_version == SplightAPIVersion.V4:
|
|
|
254
233
|
"get_field_value",
|
|
255
234
|
"Parameter",
|
|
256
235
|
"DB_MODEL_TYPE_MAPPING",
|
|
257
|
-
"AdvancedFilter",
|
|
258
236
|
"SplightDatalakeBaseModel",
|
|
259
|
-
"Chart",
|
|
260
|
-
"ChartItem",
|
|
261
|
-
"Dashboard",
|
|
262
|
-
"DashboardAlertEventsChart",
|
|
263
|
-
"DashboardAlertListChart",
|
|
264
|
-
"DashboardAssetListChart",
|
|
265
|
-
"DashboardBarChart",
|
|
266
|
-
"DashboardBarGaugeChart",
|
|
267
|
-
"DashboardGaugeChart",
|
|
268
|
-
"DashboardHistogramChart",
|
|
269
|
-
"DashboardImageChart",
|
|
270
|
-
"DashboardStatChart",
|
|
271
|
-
"DashboardTableChart",
|
|
272
|
-
"DashboardTextChart",
|
|
273
|
-
"DashboardTimeseriesChart",
|
|
274
|
-
"Filter",
|
|
275
|
-
"Tab",
|
|
276
237
|
"DataRequest",
|
|
277
238
|
"PipelineStep",
|
|
278
239
|
"Trace",
|
|
@@ -293,6 +254,7 @@ elif api_version == SplightAPIVersion.V4:
|
|
|
293
254
|
"AssetKind",
|
|
294
255
|
"ValueType",
|
|
295
256
|
"AttributeType",
|
|
257
|
+
"Battery",
|
|
296
258
|
"Bus",
|
|
297
259
|
"ExternalGrid",
|
|
298
260
|
"Generator",
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
from splight_lib.models._v4.alert import Alert, AlertItem
|
|
2
1
|
from splight_lib.models._v4.asset import Asset, AssetKind, AssetRelationship
|
|
3
2
|
from splight_lib.models._v4.attribute import Attribute
|
|
4
3
|
from splight_lib.models._v4.base import (
|
|
@@ -6,6 +5,7 @@ from splight_lib.models._v4.base import (
|
|
|
6
5
|
ResourceSummary,
|
|
7
6
|
ValueType,
|
|
8
7
|
)
|
|
8
|
+
from splight_lib.models._v4.battery import Battery
|
|
9
9
|
from splight_lib.models._v4.bus import Bus
|
|
10
10
|
from splight_lib.models._v4.component import (
|
|
11
11
|
DB_MODEL_TYPE_MAPPING,
|
|
@@ -26,26 +26,6 @@ from splight_lib.models._v4.component import (
|
|
|
26
26
|
RoutineObjectInstance,
|
|
27
27
|
get_field_value,
|
|
28
28
|
)
|
|
29
|
-
from splight_lib.models._v4.dashboard import (
|
|
30
|
-
AdvancedFilter,
|
|
31
|
-
Chart,
|
|
32
|
-
ChartItem,
|
|
33
|
-
Dashboard,
|
|
34
|
-
DashboardAlertEventsChart,
|
|
35
|
-
DashboardAlertListChart,
|
|
36
|
-
DashboardAssetListChart,
|
|
37
|
-
DashboardBarChart,
|
|
38
|
-
DashboardBarGaugeChart,
|
|
39
|
-
DashboardGaugeChart,
|
|
40
|
-
DashboardHistogramChart,
|
|
41
|
-
DashboardImageChart,
|
|
42
|
-
DashboardStatChart,
|
|
43
|
-
DashboardTableChart,
|
|
44
|
-
DashboardTextChart,
|
|
45
|
-
DashboardTimeseriesChart,
|
|
46
|
-
Filter,
|
|
47
|
-
Tab,
|
|
48
|
-
)
|
|
49
29
|
from splight_lib.models._v4.data_address import DataAddresses as DataAddress
|
|
50
30
|
from splight_lib.models._v4.datalake import DataRequest, PipelineStep, Trace
|
|
51
31
|
from splight_lib.models._v4.datalake_base import SplightDatalakeBaseModel
|
|
@@ -74,8 +54,6 @@ if api_settings.API_VERSION != SplightAPIVersion.V4:
|
|
|
74
54
|
|
|
75
55
|
|
|
76
56
|
__all__ = [
|
|
77
|
-
"Alert",
|
|
78
|
-
"AlertItem",
|
|
79
57
|
"Asset",
|
|
80
58
|
"AssetRelationship",
|
|
81
59
|
"Component",
|
|
@@ -95,24 +73,6 @@ __all__ = [
|
|
|
95
73
|
"get_field_value",
|
|
96
74
|
"Parameter",
|
|
97
75
|
"DB_MODEL_TYPE_MAPPING",
|
|
98
|
-
"AdvancedFilter",
|
|
99
|
-
"Chart",
|
|
100
|
-
"ChartItem",
|
|
101
|
-
"Dashboard",
|
|
102
|
-
"DashboardAlertEventsChart",
|
|
103
|
-
"DashboardAlertListChart",
|
|
104
|
-
"DashboardAssetListChart",
|
|
105
|
-
"DashboardBarChart",
|
|
106
|
-
"DashboardBarGaugeChart",
|
|
107
|
-
"DashboardGaugeChart",
|
|
108
|
-
"DashboardHistogramChart",
|
|
109
|
-
"DashboardImageChart",
|
|
110
|
-
"DashboardStatChart",
|
|
111
|
-
"DashboardTableChart",
|
|
112
|
-
"DashboardTextChart",
|
|
113
|
-
"DashboardTimeseriesChart",
|
|
114
|
-
"Filter",
|
|
115
|
-
"Tab",
|
|
116
76
|
"DataRequest",
|
|
117
77
|
"DataAddress",
|
|
118
78
|
"InputDataAddress",
|
|
@@ -133,6 +93,7 @@ __all__ = [
|
|
|
133
93
|
"AssetKind",
|
|
134
94
|
"ValueType",
|
|
135
95
|
"AttributeType",
|
|
96
|
+
"Battery",
|
|
136
97
|
"Bus",
|
|
137
98
|
"ExternalGrid",
|
|
138
99
|
"Generator",
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
from splight_lib.models._v4.asset import AssetParams, AssetRelationship
|
|
2
|
+
from splight_lib.models._v4.attribute import Attribute
|
|
3
|
+
from splight_lib.models._v4.metadata import Metadata
|
|
4
|
+
from splight_lib.models.database import SplightDatabaseBaseModel
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Battery(AssetParams, SplightDatabaseBaseModel):
|
|
8
|
+
# Input Attributes
|
|
9
|
+
active_power: Attribute | None = None
|
|
10
|
+
reactive_power: Attribute | None = None
|
|
11
|
+
state_of_charge: Attribute | None = None
|
|
12
|
+
|
|
13
|
+
# Computed Attributes
|
|
14
|
+
completed_cycles: Attribute | None = None
|
|
15
|
+
daily_ideal_revenue: Attribute | None = None
|
|
16
|
+
daily_revenue: Attribute | None = None
|
|
17
|
+
forecasted_charge_48H: Attribute | None = None
|
|
18
|
+
forecasted_daily_revenue_48H: Attribute | None = None
|
|
19
|
+
hourly_revenue: Attribute | None = None
|
|
20
|
+
trade_action: Attribute | None = None
|
|
21
|
+
|
|
22
|
+
# Metadata
|
|
23
|
+
capacity: Metadata | None = None
|
|
24
|
+
charge_speed: Metadata | None = None
|
|
25
|
+
cycles_per_market: Metadata | None = None
|
|
26
|
+
discharge_speed: Metadata | None = None
|
|
27
|
+
market_init: Metadata | None = None
|
|
28
|
+
|
|
29
|
+
# Relationships
|
|
30
|
+
bus: AssetRelationship | None = None
|
|
31
|
+
grid: AssetRelationship | None = None
|
|
@@ -10,14 +10,17 @@ class Bus(AssetParams, SplightDatabaseBaseModel):
|
|
|
10
10
|
reactive_power: Attribute | None = None
|
|
11
11
|
|
|
12
12
|
# Computed attributes
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
wind_direction: Attribute | None = None
|
|
16
|
-
irradiance: Attribute | None = None
|
|
13
|
+
energy_price: Attribute | None = None
|
|
14
|
+
energy_price_forecast: Attribute | None = None
|
|
17
15
|
forecasted_temperature_48H: Attribute | None = None
|
|
18
16
|
forecasted_wind_speed_48H: Attribute | None = None
|
|
17
|
+
irradiance: Attribute | None = None
|
|
18
|
+
temperature: Attribute | None = None
|
|
19
|
+
wind_direction: Attribute | None = None
|
|
20
|
+
wind_speed: Attribute | None = None
|
|
19
21
|
|
|
20
22
|
# Metadata
|
|
23
|
+
bus_id: Metadata | None = None
|
|
21
24
|
nominal_voltage: Metadata | None = None
|
|
22
25
|
|
|
23
26
|
# Relationships
|
|
@@ -19,20 +19,24 @@ class Generator(AssetParams, SplightDatabaseBaseModel):
|
|
|
19
19
|
daily_curtail_power: Attribute | None = None
|
|
20
20
|
daily_emissions_avoided: Attribute | None = None
|
|
21
21
|
daily_energy: Attribute | None = None
|
|
22
|
+
daily_revenue_loss: Attribute | None = None
|
|
22
23
|
forecasted_active_power: Attribute | None = None
|
|
23
24
|
forecasted_available_active_power: Attribute | None = None
|
|
24
25
|
forecasted_curtailment: Attribute | None = None
|
|
25
26
|
forecasted_energy: Attribute | None = None
|
|
27
|
+
forecasted_hourly_revenue_loss_48H: Attribute | None = None
|
|
28
|
+
hourly_revenue_loss: Attribute | None = None
|
|
26
29
|
injection_price: Attribute | None = None
|
|
30
|
+
market_induced_curtailment: Attribute | None = None
|
|
27
31
|
monthly_curtail_energy: Attribute | None = None
|
|
28
32
|
monthly_curtail_power: Attribute | None = None
|
|
29
33
|
monthly_energy: Attribute | None = None
|
|
30
34
|
regulation_setpoint: Attribute | None = None
|
|
31
35
|
|
|
32
36
|
# Metadata
|
|
33
|
-
max_active_power: Metadata | None = None
|
|
34
37
|
co2_intensity_per_kwh: Metadata | None = None
|
|
35
38
|
installed_power: Metadata | None = None
|
|
39
|
+
max_active_power: Metadata | None = None
|
|
36
40
|
|
|
37
41
|
# Relationships
|
|
38
42
|
bus: AssetRelationship | None = None
|
|
@@ -6,22 +6,22 @@ from splight_lib.models.database import SplightDatabaseBaseModel
|
|
|
6
6
|
|
|
7
7
|
class Line(AssetParams, SplightDatabaseBaseModel):
|
|
8
8
|
# Input attributes
|
|
9
|
-
active_power_start: Attribute | None = None
|
|
10
9
|
active_power_end: Attribute | None = None
|
|
10
|
+
active_power_start: Attribute | None = None
|
|
11
11
|
contingency: Attribute | None = None
|
|
12
|
-
current_r_start: Attribute | None = None
|
|
13
12
|
current_r_end: Attribute | None = None
|
|
14
|
-
|
|
13
|
+
current_r_start: Attribute | None = None
|
|
15
14
|
current_s_end: Attribute | None = None
|
|
16
|
-
|
|
15
|
+
current_s_start: Attribute | None = None
|
|
17
16
|
current_t_end: Attribute | None = None
|
|
17
|
+
current_t_start: Attribute | None = None
|
|
18
18
|
frequency: Attribute | None = None
|
|
19
|
-
reactive_power_start: Attribute | None = None
|
|
20
19
|
reactive_power_end: Attribute | None = None
|
|
21
|
-
|
|
20
|
+
reactive_power_start: Attribute | None = None
|
|
22
21
|
switch_status_end: Attribute | None = None
|
|
23
|
-
|
|
22
|
+
switch_status_start: Attribute | None = None
|
|
24
23
|
voltage_end: Attribute | None = None
|
|
24
|
+
voltage_start: Attribute | None = None
|
|
25
25
|
|
|
26
26
|
# Computed attributes
|
|
27
27
|
ampacity_aar: Attribute | None = None
|
|
@@ -31,14 +31,22 @@ class Line(AssetParams, SplightDatabaseBaseModel):
|
|
|
31
31
|
ampacity_dlr_lte: Attribute | None = None
|
|
32
32
|
ampacity_dlr_ste: Attribute | None = None
|
|
33
33
|
contingency_solving_time: Attribute | None = None
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
34
|
+
dlr_irradiance: Attribute | None = None
|
|
35
|
+
dlr_temperature: Attribute | None = None
|
|
36
|
+
dlr_wind_direction: Attribute | None = None
|
|
37
|
+
dlr_wind_speed: Attribute | None = None
|
|
38
|
+
forecasted_ampacity_aar_240H: Attribute | None = None
|
|
39
|
+
forecasted_ampacity_aar_48H: Attribute | None = None
|
|
40
|
+
forecasted_ampacity_aar_72H: Attribute | None = None
|
|
41
|
+
forecasted_ampacity_dlr_240H: Attribute | None = None
|
|
42
|
+
forecasted_ampacity_dlr_48H: Attribute | None = None
|
|
43
|
+
forecasted_ampacity_dlr_72H: Attribute | None = None
|
|
44
|
+
generators_vector: Attribute | None = None
|
|
40
45
|
historical_segment_aar_vector: Attribute | None = None
|
|
41
46
|
historical_segment_dlr_vector: Attribute | None = None
|
|
47
|
+
historical_generators_vector: Attribute | None = None
|
|
48
|
+
loads_vector: Attribute | None = None
|
|
49
|
+
historical_loads_vector: Attribute | None = None
|
|
42
50
|
max_conductor_temp: Attribute | None = None
|
|
43
51
|
max_temperature_segment_dlr: Attribute | None = None
|
|
44
52
|
min_amp_segment_aar: Attribute | None = None
|
|
@@ -1,283 +0,0 @@
|
|
|
1
|
-
import json
|
|
2
|
-
import re
|
|
3
|
-
from enum import Enum, auto
|
|
4
|
-
from typing import Annotated, Literal
|
|
5
|
-
|
|
6
|
-
from pydantic import (
|
|
7
|
-
BaseModel,
|
|
8
|
-
Field,
|
|
9
|
-
PositiveInt,
|
|
10
|
-
ValidationError,
|
|
11
|
-
model_validator,
|
|
12
|
-
)
|
|
13
|
-
from strenum import LowercaseStrEnum, UppercaseStrEnum
|
|
14
|
-
from typing_extensions import TypedDict
|
|
15
|
-
|
|
16
|
-
from splight_lib.models._v4.exceptions import (
|
|
17
|
-
InvalidAlertConfiguration,
|
|
18
|
-
MissingAlertItemExpression,
|
|
19
|
-
)
|
|
20
|
-
from splight_lib.models.database import (
|
|
21
|
-
ResourceSummary,
|
|
22
|
-
SplightDatabaseBaseModel,
|
|
23
|
-
)
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
class AlertItemType(UppercaseStrEnum):
|
|
27
|
-
EXPRESSION = auto()
|
|
28
|
-
QUERY = auto()
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
class QueryFilter(TypedDict):
|
|
32
|
-
id: str
|
|
33
|
-
name: str
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
class GroupUnit(LowercaseStrEnum):
|
|
37
|
-
EMPTY = ""
|
|
38
|
-
SECOND = auto()
|
|
39
|
-
MINUTE = auto()
|
|
40
|
-
HOUR = auto()
|
|
41
|
-
DAY = auto()
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
class GroupCriteria(LowercaseStrEnum):
|
|
45
|
-
EMPTY = ""
|
|
46
|
-
AVG = auto()
|
|
47
|
-
SUM = auto()
|
|
48
|
-
MIN = auto()
|
|
49
|
-
MAX = auto()
|
|
50
|
-
LAST = auto()
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
class AlertItem(BaseModel):
|
|
54
|
-
id: Annotated[str | None, Field(max_length=100)]
|
|
55
|
-
|
|
56
|
-
ref_id: Annotated[str, Field(max_length=5)]
|
|
57
|
-
type: AlertItemType = AlertItemType.QUERY
|
|
58
|
-
label: str | None = None
|
|
59
|
-
|
|
60
|
-
expression: str | None = None
|
|
61
|
-
expression_plain: str | None = ""
|
|
62
|
-
|
|
63
|
-
query_filter_asset: QueryFilter | None = None
|
|
64
|
-
query_filter_attribute: QueryFilter | None = None
|
|
65
|
-
query_filter_metadata: QueryFilter | None = None
|
|
66
|
-
|
|
67
|
-
query_group_function: GroupCriteria | None = None
|
|
68
|
-
query_group_unit: GroupUnit | None = None
|
|
69
|
-
|
|
70
|
-
query_sort_field: str | None = None
|
|
71
|
-
query_sort_direction: Annotated[int | None, Field(-1, ge=-1, le=1)]
|
|
72
|
-
|
|
73
|
-
query_plain: str | None = ""
|
|
74
|
-
query_limit: Annotated[int, Field(10000, ge=1, le=10000)]
|
|
75
|
-
|
|
76
|
-
@model_validator(mode="after")
|
|
77
|
-
def validate_expression(self):
|
|
78
|
-
if self.type == AlertItemType.EXPRESSION:
|
|
79
|
-
if self.expression is None:
|
|
80
|
-
raise MissingAlertItemExpression(
|
|
81
|
-
"Parameter 'expression' is required for expression type alert items"
|
|
82
|
-
)
|
|
83
|
-
self.expression_plain = (
|
|
84
|
-
self._get_expression_plain()
|
|
85
|
-
if self.expression_plain is None
|
|
86
|
-
else self.expression_plain
|
|
87
|
-
)
|
|
88
|
-
return self
|
|
89
|
-
|
|
90
|
-
@model_validator(mode="after")
|
|
91
|
-
def validate_query(self):
|
|
92
|
-
if self.type == AlertItemType.QUERY:
|
|
93
|
-
for attr in [
|
|
94
|
-
("query_filter_asset", self.query_filter_asset),
|
|
95
|
-
("query_filter_attribute", self.query_filter_attribute),
|
|
96
|
-
]:
|
|
97
|
-
if attr is None:
|
|
98
|
-
raise ValidationError(
|
|
99
|
-
(
|
|
100
|
-
f"Parameter '{attr}' is required for query type "
|
|
101
|
-
"alert items"
|
|
102
|
-
)
|
|
103
|
-
)
|
|
104
|
-
self.query_plain = (
|
|
105
|
-
self._get_query_plain()
|
|
106
|
-
if self.query_plain is None
|
|
107
|
-
else self.query_plain
|
|
108
|
-
)
|
|
109
|
-
return self
|
|
110
|
-
|
|
111
|
-
def _get_expression_plain(self):
|
|
112
|
-
pattern = r"\$\w+"
|
|
113
|
-
args = re.findall(pattern, self.expression)
|
|
114
|
-
str_args = ", ".join(args)
|
|
115
|
-
body = f"function ({str_args}) {{ return {self.expression} }}"
|
|
116
|
-
expression_plain = {
|
|
117
|
-
"$function": {"body": body, "args": args, "lang": "js"}
|
|
118
|
-
}
|
|
119
|
-
return json.dumps(expression_plain)
|
|
120
|
-
|
|
121
|
-
def _get_query_plain(self):
|
|
122
|
-
query_plain = [
|
|
123
|
-
{
|
|
124
|
-
"$match": {
|
|
125
|
-
"asset": self.query_filter_asset["id"],
|
|
126
|
-
"attribute": self.query_filter_attribute["id"],
|
|
127
|
-
}
|
|
128
|
-
},
|
|
129
|
-
]
|
|
130
|
-
if self.query_group_unit and self.query_group_function:
|
|
131
|
-
query_plain.extend(
|
|
132
|
-
[
|
|
133
|
-
{
|
|
134
|
-
"$addFields": {
|
|
135
|
-
"timestamp": {
|
|
136
|
-
"$dateTrunc": {
|
|
137
|
-
"date": "$timestamp",
|
|
138
|
-
"unit": self.query_group_unit,
|
|
139
|
-
"binSize": 1,
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
"$group": {
|
|
146
|
-
"_id": "$timestamp",
|
|
147
|
-
"value": {
|
|
148
|
-
f"${self.query_group_function}": "$value"
|
|
149
|
-
},
|
|
150
|
-
"timestamp": {"$last": "$timestamp"},
|
|
151
|
-
}
|
|
152
|
-
},
|
|
153
|
-
]
|
|
154
|
-
)
|
|
155
|
-
return json.dumps(query_plain)
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
class AlertStatus(LowercaseStrEnum):
|
|
159
|
-
ALERT = auto()
|
|
160
|
-
NO_ALERT = auto()
|
|
161
|
-
NO_DATA = auto()
|
|
162
|
-
TIMEOUT = auto()
|
|
163
|
-
DISABLED = auto()
|
|
164
|
-
MISCONFIGURED = auto()
|
|
165
|
-
ERROR = auto()
|
|
166
|
-
WARNING = auto()
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
class AlertType(LowercaseStrEnum):
|
|
170
|
-
CRON = auto()
|
|
171
|
-
RATE = auto()
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
class StatementOperator(str, Enum):
|
|
175
|
-
GREATER_THAN = "gt"
|
|
176
|
-
GREATER_THAN_OR_EQUAL = "ge"
|
|
177
|
-
LOWER_THAN = "lt"
|
|
178
|
-
LOWER_THAN_OR_EQUAL = "le"
|
|
179
|
-
EQUAL = "eq"
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
class ThresholdStatus(LowercaseStrEnum):
|
|
183
|
-
ALERT = auto()
|
|
184
|
-
WARNING = auto()
|
|
185
|
-
NO_ALERT = auto()
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
class AlertSeverity(LowercaseStrEnum):
|
|
189
|
-
SEV1 = auto()
|
|
190
|
-
SEV2 = auto()
|
|
191
|
-
SEV3 = auto()
|
|
192
|
-
SEV4 = auto()
|
|
193
|
-
SEV5 = auto()
|
|
194
|
-
SEV6 = auto()
|
|
195
|
-
SEV7 = auto()
|
|
196
|
-
SEV8 = auto()
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
class AlertThreshold(BaseModel):
|
|
200
|
-
value: float
|
|
201
|
-
status: ThresholdStatus
|
|
202
|
-
status_text: str | None
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
class StatementAggregation(LowercaseStrEnum):
|
|
206
|
-
AVG = auto()
|
|
207
|
-
LAST = auto()
|
|
208
|
-
MAX = auto()
|
|
209
|
-
MIN = auto()
|
|
210
|
-
SUM = auto()
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
class Alert(SplightDatabaseBaseModel):
|
|
214
|
-
id: Annotated[str | None, Field(None, max_length=100)]
|
|
215
|
-
name: str
|
|
216
|
-
description: str | None = None
|
|
217
|
-
|
|
218
|
-
tags: list[ResourceSummary] | None = None
|
|
219
|
-
assets: list[QueryFilter] = []
|
|
220
|
-
alert_items: list[AlertItem] = []
|
|
221
|
-
destinations_list: list[str] = []
|
|
222
|
-
|
|
223
|
-
type: AlertType
|
|
224
|
-
|
|
225
|
-
active: bool = True
|
|
226
|
-
status: AlertStatus = AlertStatus.NO_ALERT
|
|
227
|
-
status_text: Annotated[str | None, Field(default=None, max_length=400)]
|
|
228
|
-
|
|
229
|
-
stmt_time_window: int
|
|
230
|
-
stmt_target_variable: Annotated[
|
|
231
|
-
str | None, Field(default=None, max_length=5)
|
|
232
|
-
]
|
|
233
|
-
stmt_operator: StatementOperator
|
|
234
|
-
stmt_aggregation: StatementAggregation
|
|
235
|
-
stmt_thresholds: list[AlertThreshold]
|
|
236
|
-
|
|
237
|
-
notify_no_data: bool = True
|
|
238
|
-
notify_error: bool = True
|
|
239
|
-
notify_timeout: bool = True
|
|
240
|
-
custom_message: Annotated[str | None, Field(default=None, max_length=200)]
|
|
241
|
-
|
|
242
|
-
cron_minutes: str | None = None
|
|
243
|
-
cron_hours: str | None = None
|
|
244
|
-
cron_dom: str | None = None
|
|
245
|
-
cron_month: str | None = None
|
|
246
|
-
cron_dow: str | None = None
|
|
247
|
-
cron_year: str | None = None
|
|
248
|
-
|
|
249
|
-
rate_value: PositiveInt | None = None
|
|
250
|
-
rate_unit: Literal["day", "hour", "minute"] | None = None
|
|
251
|
-
|
|
252
|
-
@model_validator(mode="after")
|
|
253
|
-
def validate_type(self):
|
|
254
|
-
if self.type == "cron":
|
|
255
|
-
for attr, value in [
|
|
256
|
-
("cron_year", self.cron_year),
|
|
257
|
-
("cron_moth", self.cron_month),
|
|
258
|
-
("cron_hour", self.cron_hours),
|
|
259
|
-
("cron_minutes", self.cron_minutes),
|
|
260
|
-
("cron_dow", self.cron_dow),
|
|
261
|
-
("cron_dom", self.cron_dom),
|
|
262
|
-
]:
|
|
263
|
-
if value is None:
|
|
264
|
-
raise InvalidAlertConfiguration(
|
|
265
|
-
(
|
|
266
|
-
f"Parameter {attr} is required for '{self.type}' "
|
|
267
|
-
"type alerts"
|
|
268
|
-
)
|
|
269
|
-
)
|
|
270
|
-
if self.type == "rate":
|
|
271
|
-
for attr in [
|
|
272
|
-
("rate_value", self.rate_value),
|
|
273
|
-
("rate_unit", self.rate_unit),
|
|
274
|
-
]:
|
|
275
|
-
if attr is None:
|
|
276
|
-
raise InvalidAlertConfiguration(
|
|
277
|
-
(
|
|
278
|
-
f"Parameter {attr} is required for '{self.type}' "
|
|
279
|
-
"type alerts"
|
|
280
|
-
)
|
|
281
|
-
)
|
|
282
|
-
|
|
283
|
-
return self
|