wizata-dsapi 2.0.0.dev18__tar.gz → 2.0.0.dev20__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.
- {wizata_dsapi-2.0.0.dev18/wizata_dsapi.egg-info → wizata_dsapi-2.0.0.dev20}/PKG-INFO +1 -1
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/__init__.py +2 -2
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/notification.py +49 -1
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/script.py +18 -1
- wizata_dsapi-2.0.0.dev20/wizata_dsapi/version.py +1 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20/wizata_dsapi.egg-info}/PKG-INFO +1 -1
- wizata_dsapi-2.0.0.dev18/wizata_dsapi/version.py +0 -1
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/LICENSE.txt +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/README.rst +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/setup.cfg +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/setup.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/api_config.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/api_dto.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/api_interface.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/bucket.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/business_label.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/context.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/dashboard.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/dataframe_toolkit.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/datapoint.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/datastore.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/ds_dataframe.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/dsapi_json_encoder.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/edge_config.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/edge_device.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/edge_module.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/evaluation.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/execution.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/execution_log.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/experiment.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/graylog_log.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/group_system.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/ilogger.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/insight.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/mlmodel.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/mobile_asset.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/model_toolkit.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/models/__init__.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/models/common.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/paged_query_result.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/pipeline.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/pipeline_image.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/plot.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/plots/__init__.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/plots/common.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/request.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/scripts/__init__.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/scripts/common.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/search.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/solution_component.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/streamlit_utils.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/template.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/template_config.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/trigger.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/twin.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/twinregistration.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/user.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/wizard_function.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/wizard_request.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/wizata_dsapi_client.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi/words.py +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi.egg-info/SOURCES.txt +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi.egg-info/dependency_links.txt +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi.egg-info/requires.txt +0 -0
- {wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi.egg-info/top_level.txt +0 -0
|
@@ -9,7 +9,7 @@ from .execution import Execution, ExecutionStatus, ExecutionStepLog, AbortedExce
|
|
|
9
9
|
from .execution_log import ExecutionLog
|
|
10
10
|
from .experiment import Experiment
|
|
11
11
|
from .ds_dataframe import DSDataFrame
|
|
12
|
-
from .script import Script, ScriptConfig, ScriptType, ScriptLibrary, sanitize_blob_name, discover_from_wheel
|
|
12
|
+
from .script import Script, ScriptConfig, ScriptType, ScriptCategory, ScriptLibrary, sanitize_blob_name, discover_from_wheel
|
|
13
13
|
from .template import Template, TemplateProperty
|
|
14
14
|
from .solution_component import SolutionComponent, SolutionType
|
|
15
15
|
from .business_label import BusinessLabel
|
|
@@ -51,7 +51,7 @@ from .streamlit_utils import (get_streamlit_token, get_streamlit_domain, get_str
|
|
|
51
51
|
|
|
52
52
|
from .search import FilterOperator, SearchQuery, SortOption, GroupSearchQuery
|
|
53
53
|
from .notification import NotificationScope, DeviceToken, AlertRule, AlertActive, MonitoredDatapoint, \
|
|
54
|
-
NotificationPreference, RecipientList, Recipient, RecipientType
|
|
54
|
+
MonitoredPipeline, NotificationPreference, RecipientList, Recipient, RecipientType
|
|
55
55
|
from .edge_device import EdgeDevice, EdgeDeviceStatus, EdgeDeviceType
|
|
56
56
|
from .edge_module import EdgeModule, EdgeModuleType, WIZATA_MODULES
|
|
57
57
|
from .edge_config import EdgeConsumer, EdgeWriter, EdgeTrigger
|
|
@@ -19,7 +19,7 @@ RecipientList — named list of internal users (follow preferences) and free ent
|
|
|
19
19
|
(explicit address + channel).
|
|
20
20
|
"""
|
|
21
21
|
|
|
22
|
-
from datetime import datetime
|
|
22
|
+
from datetime import datetime, timezone
|
|
23
23
|
from enum import Enum
|
|
24
24
|
from typing import Optional
|
|
25
25
|
import uuid
|
|
@@ -338,6 +338,54 @@ class MonitoredDatapoint:
|
|
|
338
338
|
return f"MonitoredDatapoint(hardware_id={self.hardware_id!r})"
|
|
339
339
|
|
|
340
340
|
|
|
341
|
+
class MonitoredPipeline:
|
|
342
|
+
"""
|
|
343
|
+
Registry entry for a pipeline flagged for monitoring.
|
|
344
|
+
|
|
345
|
+
Stored in PostgreSQL ``"MonitoredPipeline"`` table.
|
|
346
|
+
PK is ``key`` (pipeline key string, one row per pipeline).
|
|
347
|
+
|
|
348
|
+
The pipeline_monitor job reads this table and creates independent
|
|
349
|
+
AlertRule/AlertActive entries per event type (not_triggered, failed).
|
|
350
|
+
"""
|
|
351
|
+
|
|
352
|
+
def __init__(self, key: str = None):
|
|
353
|
+
self.key: Optional[str] = key
|
|
354
|
+
self.created_at: Optional[datetime] = None
|
|
355
|
+
|
|
356
|
+
def to_dict(self) -> dict:
|
|
357
|
+
obj = {}
|
|
358
|
+
if self.key is not None:
|
|
359
|
+
obj["key"] = self.key
|
|
360
|
+
if self.created_at is not None:
|
|
361
|
+
obj["createdAt"] = int(self.created_at.timestamp() * 1000)
|
|
362
|
+
return obj
|
|
363
|
+
|
|
364
|
+
@classmethod
|
|
365
|
+
def from_dict(cls, data: dict) -> "MonitoredPipeline":
|
|
366
|
+
obj = cls()
|
|
367
|
+
obj.key = data.get("key")
|
|
368
|
+
raw = data.get("createdAt") or data.get("created_at")
|
|
369
|
+
if raw is not None:
|
|
370
|
+
if isinstance(raw, (int, float)):
|
|
371
|
+
obj.created_at = datetime.fromtimestamp(raw / 1000, tz=timezone.utc)
|
|
372
|
+
elif isinstance(raw, datetime):
|
|
373
|
+
obj.created_at = raw
|
|
374
|
+
return obj
|
|
375
|
+
|
|
376
|
+
def api_id(self) -> str:
|
|
377
|
+
return self.key
|
|
378
|
+
|
|
379
|
+
def api_key(self) -> str:
|
|
380
|
+
return self.key
|
|
381
|
+
|
|
382
|
+
def set_id(self, value):
|
|
383
|
+
self.key = str(value)
|
|
384
|
+
|
|
385
|
+
def __repr__(self) -> str:
|
|
386
|
+
return f"MonitoredPipeline(key={self.key!r})"
|
|
387
|
+
|
|
388
|
+
|
|
341
389
|
class NotificationPreference:
|
|
342
390
|
"""
|
|
343
391
|
Per-user notification channel preferences stored in PostgreSQL
|
|
@@ -25,6 +25,18 @@ class ScriptType(Enum):
|
|
|
25
25
|
RAW = 'raw'
|
|
26
26
|
|
|
27
27
|
|
|
28
|
+
class ScriptCategory(Enum):
|
|
29
|
+
"""
|
|
30
|
+
Defines the category of a script, determining which pipeline step type it creates.
|
|
31
|
+
- "function" data transformation scripts (creates a SCRIPT step)
|
|
32
|
+
- "model" ML model training scripts (creates a MODEL step)
|
|
33
|
+
- "plot" visualization scripts (creates a PLOT step)
|
|
34
|
+
"""
|
|
35
|
+
FUNCTION = 'function'
|
|
36
|
+
MODEL = 'model'
|
|
37
|
+
PLOT = 'plot'
|
|
38
|
+
|
|
39
|
+
|
|
28
40
|
def sanitize_blob_name(name: str) -> str:
|
|
29
41
|
"""
|
|
30
42
|
Sanitize a script name for use as a blob path segment.
|
|
@@ -175,7 +187,7 @@ class Script(ApiDto):
|
|
|
175
187
|
return "json"
|
|
176
188
|
|
|
177
189
|
def __init__(self, script_id=None, description=None, function=None,
|
|
178
|
-
script_type=None, version=None, library=None):
|
|
190
|
+
script_type=None, version=None, library=None, category=None):
|
|
179
191
|
|
|
180
192
|
# Id
|
|
181
193
|
if script_id is None:
|
|
@@ -189,6 +201,7 @@ class Script(ApiDto):
|
|
|
189
201
|
self.version = version
|
|
190
202
|
self.library = library
|
|
191
203
|
self.module = None
|
|
204
|
+
self.category = category
|
|
192
205
|
|
|
193
206
|
# Source code property (not serialized)
|
|
194
207
|
self.source = None
|
|
@@ -256,6 +269,8 @@ class Script(ApiDto):
|
|
|
256
269
|
obj["module"] = self.module
|
|
257
270
|
if self.source is not None:
|
|
258
271
|
obj["source"] = self.source
|
|
272
|
+
if self.category is not None:
|
|
273
|
+
obj["category"] = self.category.value
|
|
259
274
|
return obj
|
|
260
275
|
|
|
261
276
|
def to_json(self, target: str = None):
|
|
@@ -287,6 +302,8 @@ class Script(ApiDto):
|
|
|
287
302
|
self.module = obj["module"]
|
|
288
303
|
if "source" in obj and obj["source"] is not None:
|
|
289
304
|
self.source = obj["source"]
|
|
305
|
+
if "category" in obj and obj["category"] is not None:
|
|
306
|
+
self.category = ScriptCategory(obj["category"])
|
|
290
307
|
|
|
291
308
|
def copy(self, myfunction):
|
|
292
309
|
"""
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "2.0.0.dev20"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "2.0.0.dev18"
|
|
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
|
{wizata_dsapi-2.0.0.dev18 → wizata_dsapi-2.0.0.dev20}/wizata_dsapi.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|