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.
Files changed (139) hide show
  1. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/PKG-INFO +1 -1
  2. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/pyproject.toml +1 -1
  3. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/database/classmap.py +1 -0
  4. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/__init__.py +2 -40
  5. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/__init__.py +2 -41
  6. splight_lib-5.19.7.dev0/splight_lib/models/_v4/battery.py +31 -0
  7. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/bus.py +7 -4
  8. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/exceptions.py +0 -8
  9. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/generator.py +5 -1
  10. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/line.py +21 -13
  11. splight_lib-5.19.6/splight_lib/models/_v4/alert.py +0 -283
  12. splight_lib-5.19.6/splight_lib/models/_v4/dashboard.py +0 -332
  13. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/LICENSE.txt +0 -0
  14. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/README.md +0 -0
  15. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/__init__.py +0 -0
  16. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/abstract/__init__.py +0 -0
  17. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/abstract/client.py +0 -0
  18. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/auth/__init__.py +0 -0
  19. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/auth/token.py +0 -0
  20. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/__init__.py +0 -0
  21. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/database/__init__.py +0 -0
  22. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/database/abstract.py +0 -0
  23. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/database/builder.py +0 -0
  24. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/database/remote_client.py +0 -0
  25. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/datalake/__init__.py +0 -0
  26. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/datalake/abstract.py +0 -0
  27. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/datalake/buffer.py +0 -0
  28. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/datalake/builder.py +0 -0
  29. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/datalake/classmap.py +0 -0
  30. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/datalake/constants.py +0 -0
  31. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/datalake/exceptions.py +0 -0
  32. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/datalake/remote_client.py +0 -0
  33. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/exceptions.py +0 -0
  34. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/hub/__init__.py +0 -0
  35. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/hub/abstract.py +0 -0
  36. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/hub/client.py +0 -0
  37. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/tests/test_database.py +0 -0
  38. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/client/tests/test_datalake.py +0 -0
  39. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/component/__init__.py +0 -0
  40. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/component/abstract.py +0 -0
  41. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/component/exceptions.py +0 -0
  42. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/component/spec.py +0 -0
  43. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/component/tests/test_spec.py +0 -0
  44. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/config.py +0 -0
  45. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/conftest.py +0 -0
  46. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/constants.py +0 -0
  47. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/encryption.py +0 -0
  48. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/execution/__init__.py +0 -0
  49. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/execution/engine.py +0 -0
  50. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/execution/exceptions.py +0 -0
  51. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/execution/scheduling.py +0 -0
  52. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/execution/task.py +0 -0
  53. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/execution/tests/test_execution.py +0 -0
  54. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/execution/tests/test_scheduling.py +0 -0
  55. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/execution/trigger.py +0 -0
  56. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/logging/__init__.py +0 -0
  57. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/logging/_internal.py +0 -0
  58. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/logging/component.py +0 -0
  59. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/logging/constants.py +0 -0
  60. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/logging/logging.py +0 -0
  61. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/logging/tests/test_logging.py +0 -0
  62. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/__init__.py +0 -0
  63. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/actions.py +0 -0
  64. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/alert.py +0 -0
  65. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/asset.py +0 -0
  66. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/attribute.py +0 -0
  67. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/bus.py +0 -0
  68. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/component.py +0 -0
  69. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/dashboard.py +0 -0
  70. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/data_address.py +0 -0
  71. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/datalake.py +0 -0
  72. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/datalake_base.py +0 -0
  73. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/exceptions.py +0 -0
  74. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/external_grid.py +0 -0
  75. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/file.py +0 -0
  76. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/function.py +0 -0
  77. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/generator.py +0 -0
  78. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/generic.py +0 -0
  79. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/grid.py +0 -0
  80. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/hub.py +0 -0
  81. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/hub_server.py +0 -0
  82. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/inverter.py +0 -0
  83. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/line.py +0 -0
  84. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/metadata.py +0 -0
  85. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/native.py +0 -0
  86. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/secret.py +0 -0
  87. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/segment.py +0 -0
  88. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/server.py +0 -0
  89. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/slack_generator.py +0 -0
  90. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/slack_line.py +0 -0
  91. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/tag.py +0 -0
  92. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/tests/models.json +0 -0
  93. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/tests/test_component_object_instance.py +0 -0
  94. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/tests/test_database_model.py +0 -0
  95. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/tests/test_metadata.py +0 -0
  96. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/tests/test_models.py +0 -0
  97. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/three_winding_transformer.py +0 -0
  98. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/transformer.py +0 -0
  99. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v3/variable_types.py +0 -0
  100. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/asset.py +0 -0
  101. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/attribute.py +0 -0
  102. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/base.py +0 -0
  103. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/component.py +0 -0
  104. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/data_address.py +0 -0
  105. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/datalake.py +0 -0
  106. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/datalake_base.py +0 -0
  107. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/external_grid.py +0 -0
  108. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/file.py +0 -0
  109. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/generic.py +0 -0
  110. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/grid.py +0 -0
  111. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/hub.py +0 -0
  112. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/hub_server.py +0 -0
  113. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/load.py +0 -0
  114. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/metadata.py +0 -0
  115. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/native.py +0 -0
  116. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/secret.py +0 -0
  117. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/segment.py +0 -0
  118. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/server.py +0 -0
  119. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/slack_line.py +0 -0
  120. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/tag.py +0 -0
  121. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/transformer.py +2 -2
  122. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/_v4/variable_types.py +0 -0
  123. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/models/database.py +0 -0
  124. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/restclient/__init__.py +0 -0
  125. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/restclient/client.py +0 -0
  126. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/restclient/exceptions.py +0 -0
  127. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/restclient/tests/test_restclient.py +0 -0
  128. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/restclient/types.py +0 -0
  129. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/server/__init__.py +0 -0
  130. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/server/exceptions.py +0 -0
  131. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/server/server.py +0 -0
  132. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/settings.py +0 -0
  133. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/testing/__init__.py +0 -0
  134. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/tests/FakeProc.py +0 -0
  135. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/tests/asset_geometries.json +0 -0
  136. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/tests/test_api_contracts.py +0 -0
  137. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/utils/__init__.py +0 -0
  138. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/utils/custom_model.py +0 -0
  139. {splight_lib-5.19.6 → splight_lib-5.19.7.dev0}/splight_lib/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: splight-lib
3
- Version: 5.19.6
3
+ Version: 5.19.7.dev0
4
4
  Summary: Splight Library
5
5
  Author: Splight Dev
6
6
  Author-email: dev@splight-ae.com
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "splight-lib"
3
- version = "5.19.6"
3
+ version = "5.19.7.dev0"
4
4
  description = "Splight Library"
5
5
  authors = [
6
6
  {name = "Splight Dev",email = "dev@splight-ae.com"}
@@ -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
- temperature: Attribute | None = None
14
- wind_speed: Attribute | None = None
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
@@ -31,14 +31,6 @@ class MissingFunctionItemExpression(Exception):
31
31
  pass
32
32
 
33
33
 
34
- class InvalidAlertConfiguration(Exception):
35
- pass
36
-
37
-
38
- class MissingAlertItemExpression(Exception):
39
- pass
40
-
41
-
42
34
  class ForbiddenOperation(Exception):
43
35
  pass
44
36
 
@@ -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
- current_s_start: Attribute | None = None
13
+ current_r_start: Attribute | None = None
15
14
  current_s_end: Attribute | None = None
16
- current_t_start: Attribute | None = None
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
- switch_status_start: Attribute | None = None
20
+ reactive_power_start: Attribute | None = None
22
21
  switch_status_end: Attribute | None = None
23
- voltage_start: Attribute | None = None
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
- forecasted_ampacity_aar: Attribute | None = None
35
- forecasted_ampacity_dlr: Attribute | None = None
36
- generators_output_vector: Attribute | None = None
37
- historical_generators_output_vector: Attribute | None = None
38
- loads_output_vector: Attribute | None = None
39
- historical_loads_output_vector: Attribute | None = None
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