mlrun 1.7.0rc50__py3-none-any.whl → 1.7.0rc53__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mlrun might be problematic. Click here for more details.
- mlrun/execution.py +31 -6
- mlrun/model.py +17 -0
- mlrun/model_monitoring/db/tsdb/tdengine/schemas.py +10 -9
- mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py +38 -29
- mlrun/projects/pipelines.py +5 -5
- mlrun/utils/helpers.py +40 -0
- mlrun/utils/version/version.json +2 -2
- {mlrun-1.7.0rc50.dist-info → mlrun-1.7.0rc53.dist-info}/METADATA +10 -6
- {mlrun-1.7.0rc50.dist-info → mlrun-1.7.0rc53.dist-info}/RECORD +13 -13
- {mlrun-1.7.0rc50.dist-info → mlrun-1.7.0rc53.dist-info}/LICENSE +0 -0
- {mlrun-1.7.0rc50.dist-info → mlrun-1.7.0rc53.dist-info}/WHEEL +0 -0
- {mlrun-1.7.0rc50.dist-info → mlrun-1.7.0rc53.dist-info}/entry_points.txt +0 -0
- {mlrun-1.7.0rc50.dist-info → mlrun-1.7.0rc53.dist-info}/top_level.txt +0 -0
mlrun/execution.py
CHANGED
|
@@ -927,17 +927,42 @@ class MLClientCtx:
|
|
|
927
927
|
updates, self._uid, self.project, iter=self._iteration
|
|
928
928
|
)
|
|
929
929
|
|
|
930
|
-
def get_notifications(self):
|
|
931
|
-
"""
|
|
930
|
+
def get_notifications(self, unmask_secret_params=False):
|
|
931
|
+
"""
|
|
932
|
+
Get the list of notifications
|
|
933
|
+
|
|
934
|
+
:param unmask_secret_params: Used as a workaround for sending notification from workflow-runner.
|
|
935
|
+
When used, if the notification will be saved again a new secret will be created.
|
|
936
|
+
"""
|
|
932
937
|
|
|
933
938
|
# Get the full notifications from the DB since the run context does not contain the params due to bloating
|
|
934
939
|
run = self._rundb.read_run(
|
|
935
940
|
self.uid, format_=mlrun.common.formatters.RunFormat.notifications
|
|
936
941
|
)
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
942
|
+
|
|
943
|
+
notifications = []
|
|
944
|
+
for notification in run["spec"]["notifications"]:
|
|
945
|
+
notification: mlrun.model.Notification = mlrun.model.Notification.from_dict(
|
|
946
|
+
notification
|
|
947
|
+
)
|
|
948
|
+
# Fill the secret params from the project secret. We cannot use the server side internal secret mechanism
|
|
949
|
+
# here as it is the client side.
|
|
950
|
+
# TODO: This is a workaround to allow the notification to get the secret params from project secret
|
|
951
|
+
# instead of getting them from the internal project secret that should be mounted.
|
|
952
|
+
# We should mount the internal project secret that was created to the workflow-runner
|
|
953
|
+
# and get the secret from there.
|
|
954
|
+
if unmask_secret_params:
|
|
955
|
+
try:
|
|
956
|
+
notification.enrich_unmasked_secret_params_from_project_secret()
|
|
957
|
+
notifications.append(notification)
|
|
958
|
+
except mlrun.errors.MLRunValueError:
|
|
959
|
+
logger.warning(
|
|
960
|
+
"Failed to fill secret params from project secret for notification."
|
|
961
|
+
"Skip this notification.",
|
|
962
|
+
notification=notification.name,
|
|
963
|
+
)
|
|
964
|
+
|
|
965
|
+
return notifications
|
|
941
966
|
|
|
942
967
|
def to_dict(self):
|
|
943
968
|
"""Convert the run context to a dictionary"""
|
mlrun/model.py
CHANGED
|
@@ -774,6 +774,23 @@ class Notification(ModelObj):
|
|
|
774
774
|
|
|
775
775
|
notification_class.validate_params(secret_params | params)
|
|
776
776
|
|
|
777
|
+
def enrich_unmasked_secret_params_from_project_secret(self):
|
|
778
|
+
"""
|
|
779
|
+
Fill the notification secret params from the project secret.
|
|
780
|
+
We are using this function instead of unmask_secret_params_from_project_secret when we run inside the
|
|
781
|
+
workflow runner pod that doesn't have access to the k8s secrets (but have access to the project secret)
|
|
782
|
+
"""
|
|
783
|
+
secret = self.secret_params.get("secret")
|
|
784
|
+
if secret:
|
|
785
|
+
secret_value = mlrun.get_secret_or_env(secret)
|
|
786
|
+
if secret_value:
|
|
787
|
+
try:
|
|
788
|
+
self.secret_params = json.loads(secret_value)
|
|
789
|
+
except ValueError as exc:
|
|
790
|
+
raise mlrun.errors.MLRunValueError(
|
|
791
|
+
"Failed to parse secret value"
|
|
792
|
+
) from exc
|
|
793
|
+
|
|
777
794
|
@staticmethod
|
|
778
795
|
def validate_notification_uniqueness(notifications: list["Notification"]):
|
|
779
796
|
"""Validate that all notifications in the list are unique by name"""
|
|
@@ -107,25 +107,26 @@ class TDEngineSchema:
|
|
|
107
107
|
)
|
|
108
108
|
return f"CREATE TABLE if NOT EXISTS {self.database}.{subtable} USING {self.super_table} TAGS ({tags});"
|
|
109
109
|
|
|
110
|
+
@staticmethod
|
|
110
111
|
def _insert_subtable_stmt(
|
|
111
|
-
|
|
112
|
-
|
|
112
|
+
statement: taosws.TaosStmt,
|
|
113
|
+
columns: dict[str, _TDEngineColumn],
|
|
113
114
|
subtable: str,
|
|
114
115
|
values: dict[str, Union[str, int, float, datetime.datetime]],
|
|
115
116
|
) -> taosws.TaosStmt:
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
stmt.set_tbname(subtable)
|
|
117
|
+
question_marks = ", ".join("?" * len(columns))
|
|
118
|
+
statement.prepare(f"INSERT INTO ? VALUES ({question_marks});")
|
|
119
|
+
statement.set_tbname(subtable)
|
|
120
120
|
|
|
121
121
|
bind_params = []
|
|
122
122
|
|
|
123
|
-
for col_name, col_type in
|
|
123
|
+
for col_name, col_type in columns.items():
|
|
124
124
|
val = values[col_name]
|
|
125
125
|
bind_params.append(values_to_column([val], col_type))
|
|
126
126
|
|
|
127
|
-
|
|
128
|
-
|
|
127
|
+
statement.bind_param(bind_params)
|
|
128
|
+
statement.add_batch()
|
|
129
|
+
return statement
|
|
129
130
|
|
|
130
131
|
def _delete_subtable_query(
|
|
131
132
|
self,
|
|
@@ -18,11 +18,16 @@ from typing import Union
|
|
|
18
18
|
|
|
19
19
|
import pandas as pd
|
|
20
20
|
import taosws
|
|
21
|
+
from taoswswrap.tdengine_connection import (
|
|
22
|
+
Statement,
|
|
23
|
+
TDEngineConnection,
|
|
24
|
+
)
|
|
21
25
|
|
|
22
26
|
import mlrun.common.schemas.model_monitoring as mm_schemas
|
|
23
27
|
import mlrun.model_monitoring.db.tsdb.tdengine.schemas as tdengine_schemas
|
|
24
28
|
import mlrun.model_monitoring.db.tsdb.tdengine.stream_graph_steps
|
|
25
29
|
from mlrun.model_monitoring.db import TSDBConnector
|
|
30
|
+
from mlrun.model_monitoring.db.tsdb.tdengine.schemas import TDEngineSchema
|
|
26
31
|
from mlrun.model_monitoring.helpers import get_invocations_fqn
|
|
27
32
|
from mlrun.utils import logger
|
|
28
33
|
|
|
@@ -52,25 +57,18 @@ class TDEngineConnector(TSDBConnector):
|
|
|
52
57
|
self._init_super_tables()
|
|
53
58
|
|
|
54
59
|
@property
|
|
55
|
-
def connection(self) ->
|
|
60
|
+
def connection(self) -> TDEngineConnection:
|
|
56
61
|
if not self._connection:
|
|
57
62
|
self._connection = self._create_connection()
|
|
58
63
|
return self._connection
|
|
59
64
|
|
|
60
|
-
def _create_connection(self) ->
|
|
65
|
+
def _create_connection(self) -> TDEngineConnection:
|
|
61
66
|
"""Establish a connection to the TSDB server."""
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
pass
|
|
68
|
-
try:
|
|
69
|
-
conn.execute(f"USE {self.database}")
|
|
70
|
-
except taosws.QueryError as e:
|
|
71
|
-
raise mlrun.errors.MLRunTSDBConnectionFailureError(
|
|
72
|
-
f"Failed to use TDEngine database {self.database}, {mlrun.errors.err_to_str(e)}"
|
|
73
|
-
)
|
|
67
|
+
logger.debug("Creating a new connection to TDEngine", project=self.project)
|
|
68
|
+
conn = TDEngineConnection(self._tdengine_connection_string)
|
|
69
|
+
conn.run(statements=f"CREATE DATABASE IF NOT EXISTS {self.database}")
|
|
70
|
+
conn.prefix_statements = [f"USE {self.database}"]
|
|
71
|
+
logger.debug("Connected to TDEngine", project=self.project)
|
|
74
72
|
return conn
|
|
75
73
|
|
|
76
74
|
def _init_super_tables(self):
|
|
@@ -91,7 +89,7 @@ class TDEngineConnector(TSDBConnector):
|
|
|
91
89
|
"""Create TDEngine supertables."""
|
|
92
90
|
for table in self.tables:
|
|
93
91
|
create_table_query = self.tables[table]._create_super_table_query()
|
|
94
|
-
self.connection.
|
|
92
|
+
self.connection.run(statements=create_table_query)
|
|
95
93
|
|
|
96
94
|
def write_application_event(
|
|
97
95
|
self,
|
|
@@ -137,13 +135,18 @@ class TDEngineConnector(TSDBConnector):
|
|
|
137
135
|
)
|
|
138
136
|
|
|
139
137
|
create_table_sql = table._create_subtable_sql(subtable=table_name, values=event)
|
|
140
|
-
self.connection.execute(create_table_sql)
|
|
141
138
|
|
|
142
|
-
insert_statement =
|
|
143
|
-
|
|
139
|
+
insert_statement = Statement(
|
|
140
|
+
TDEngineSchema._insert_subtable_stmt,
|
|
141
|
+
dict(columns=table.columns, subtable=table_name, values=event),
|
|
142
|
+
)
|
|
143
|
+
|
|
144
|
+
self.connection.run(
|
|
145
|
+
statements=[
|
|
146
|
+
create_table_sql,
|
|
147
|
+
insert_statement,
|
|
148
|
+
]
|
|
144
149
|
)
|
|
145
|
-
insert_statement.add_batch()
|
|
146
|
-
insert_statement.execute()
|
|
147
150
|
|
|
148
151
|
@staticmethod
|
|
149
152
|
def _convert_to_datetime(val: typing.Union[str, datetime]) -> datetime:
|
|
@@ -200,18 +203,24 @@ class TDEngineConnector(TSDBConnector):
|
|
|
200
203
|
"""
|
|
201
204
|
Delete all project resources in the TSDB connector, such as model endpoints data and drift results.
|
|
202
205
|
"""
|
|
206
|
+
logger.debug(
|
|
207
|
+
"Deleting all project resources using the TDEngine connector",
|
|
208
|
+
project=self.project,
|
|
209
|
+
)
|
|
203
210
|
for table in self.tables:
|
|
204
211
|
get_subtable_names_query = self.tables[table]._get_subtables_query(
|
|
205
212
|
values={mm_schemas.EventFieldType.PROJECT: self.project}
|
|
206
213
|
)
|
|
207
|
-
subtables = self.connection.query
|
|
214
|
+
subtables = self.connection.run(query=get_subtable_names_query).data
|
|
215
|
+
drop_statements = []
|
|
208
216
|
for subtable in subtables:
|
|
209
|
-
|
|
210
|
-
subtable=subtable[0]
|
|
217
|
+
drop_statements.append(
|
|
218
|
+
self.tables[table]._drop_subtable_query(subtable=subtable[0])
|
|
211
219
|
)
|
|
212
|
-
|
|
213
|
-
logger.
|
|
214
|
-
|
|
220
|
+
self.connection.run(statements=drop_statements)
|
|
221
|
+
logger.debug(
|
|
222
|
+
"Deleted all project resources using the TDEngine connector",
|
|
223
|
+
project=self.project,
|
|
215
224
|
)
|
|
216
225
|
|
|
217
226
|
def get_model_endpoint_real_time_metrics(
|
|
@@ -282,14 +291,14 @@ class TDEngineConnector(TSDBConnector):
|
|
|
282
291
|
)
|
|
283
292
|
logger.debug("Querying TDEngine", query=full_query)
|
|
284
293
|
try:
|
|
285
|
-
query_result = self.connection.query
|
|
294
|
+
query_result = self.connection.run(query=full_query)
|
|
286
295
|
except taosws.QueryError as e:
|
|
287
296
|
raise mlrun.errors.MLRunInvalidArgumentError(
|
|
288
297
|
f"Failed to query table {table} in database {self.database}, {str(e)}"
|
|
289
298
|
)
|
|
290
299
|
|
|
291
|
-
df_columns = [field.name
|
|
292
|
-
return pd.DataFrame(query_result, columns=df_columns)
|
|
300
|
+
df_columns = [field.name for field in query_result.fields]
|
|
301
|
+
return pd.DataFrame(query_result.data, columns=df_columns)
|
|
293
302
|
|
|
294
303
|
def read_metrics_data(
|
|
295
304
|
self,
|
mlrun/projects/pipelines.py
CHANGED
|
@@ -593,13 +593,13 @@ class _KFPRunner(_PipelineRunner):
|
|
|
593
593
|
logger.warning(
|
|
594
594
|
"Setting notifications on kfp pipeline runner uses old notification behavior. "
|
|
595
595
|
"Notifications will only be sent if you wait for pipeline completion. "
|
|
596
|
-
"
|
|
596
|
+
"Some of the features (like setting message or severity level) are not supported."
|
|
597
597
|
)
|
|
598
598
|
# for start message, fallback to old notification behavior
|
|
599
599
|
for notification in notifications or []:
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
)
|
|
600
|
+
params = notification.params
|
|
601
|
+
params.update(notification.secret_params)
|
|
602
|
+
project.notifiers.add_notification(notification.kind, params)
|
|
603
603
|
|
|
604
604
|
run_id = _run_pipeline(
|
|
605
605
|
workflow_handler,
|
|
@@ -1081,7 +1081,7 @@ def load_and_run(
|
|
|
1081
1081
|
# extract "start" notification if exists
|
|
1082
1082
|
start_notifications = [
|
|
1083
1083
|
notification
|
|
1084
|
-
for notification in context.get_notifications()
|
|
1084
|
+
for notification in context.get_notifications(unmask_secret_params=True)
|
|
1085
1085
|
if "running" in notification.when
|
|
1086
1086
|
]
|
|
1087
1087
|
|
mlrun/utils/helpers.py
CHANGED
|
@@ -1782,3 +1782,43 @@ def _reload(module, max_recursion_depth):
|
|
|
1782
1782
|
attribute = getattr(module, attribute_name)
|
|
1783
1783
|
if type(attribute) is ModuleType:
|
|
1784
1784
|
_reload(attribute, max_recursion_depth - 1)
|
|
1785
|
+
|
|
1786
|
+
|
|
1787
|
+
def run_with_retry(
|
|
1788
|
+
retry_count: int,
|
|
1789
|
+
func: typing.Callable,
|
|
1790
|
+
retry_on_exceptions: typing.Union[
|
|
1791
|
+
type[Exception],
|
|
1792
|
+
tuple[type[Exception]],
|
|
1793
|
+
] = None,
|
|
1794
|
+
*args,
|
|
1795
|
+
**kwargs,
|
|
1796
|
+
):
|
|
1797
|
+
"""
|
|
1798
|
+
Executes a function with retry logic upon encountering specified exceptions.
|
|
1799
|
+
|
|
1800
|
+
:param retry_count: The number of times to retry the function execution.
|
|
1801
|
+
:param func: The function to execute.
|
|
1802
|
+
:param retry_on_exceptions: Exception(s) that trigger a retry. Can be a single exception or a tuple of exceptions.
|
|
1803
|
+
:param args: Positional arguments to pass to the function.
|
|
1804
|
+
:param kwargs: Keyword arguments to pass to the function.
|
|
1805
|
+
:return: The result of the function execution if successful.
|
|
1806
|
+
:raises Exception: Re-raises the last exception encountered after all retries are exhausted.
|
|
1807
|
+
"""
|
|
1808
|
+
if retry_on_exceptions is None:
|
|
1809
|
+
retry_on_exceptions = (Exception,)
|
|
1810
|
+
elif isinstance(retry_on_exceptions, list):
|
|
1811
|
+
retry_on_exceptions = tuple(retry_on_exceptions)
|
|
1812
|
+
|
|
1813
|
+
last_exception = None
|
|
1814
|
+
for attempt in range(retry_count + 1):
|
|
1815
|
+
try:
|
|
1816
|
+
return func(*args, **kwargs)
|
|
1817
|
+
except retry_on_exceptions as exc:
|
|
1818
|
+
last_exception = exc
|
|
1819
|
+
logger.warning(
|
|
1820
|
+
f"Attempt {{{attempt}/ {retry_count}}} failed with exception: {exc}",
|
|
1821
|
+
)
|
|
1822
|
+
if attempt == retry_count:
|
|
1823
|
+
raise
|
|
1824
|
+
raise last_exception
|
mlrun/utils/version/version.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: mlrun
|
|
3
|
-
Version: 1.7.
|
|
3
|
+
Version: 1.7.0rc53
|
|
4
4
|
Summary: Tracking and config of machine learning runs
|
|
5
5
|
Home-page: https://github.com/mlrun/mlrun
|
|
6
6
|
Author: Yaron Haviv
|
|
@@ -50,7 +50,7 @@ Requires-Dist: setuptools ~=71.0
|
|
|
50
50
|
Requires-Dist: deprecated ~=1.2
|
|
51
51
|
Requires-Dist: jinja2 >=3.1.3,~=3.1
|
|
52
52
|
Requires-Dist: orjson <4,>=3.9.15
|
|
53
|
-
Requires-Dist: mlrun-pipelines-kfp-common ~=0.1.
|
|
53
|
+
Requires-Dist: mlrun-pipelines-kfp-common ~=0.1.9
|
|
54
54
|
Requires-Dist: mlrun-pipelines-kfp-v1-8 ~=0.1.6
|
|
55
55
|
Provides-Extra: alibaba-oss
|
|
56
56
|
Requires-Dist: ossfs ==2023.12.0 ; extra == 'alibaba-oss'
|
|
@@ -84,7 +84,8 @@ Requires-Dist: redis ~=4.3 ; extra == 'all'
|
|
|
84
84
|
Requires-Dist: s3fs <2024.7,>=2023.9.2 ; extra == 'all'
|
|
85
85
|
Requires-Dist: snowflake-connector-python ~=3.7 ; extra == 'all'
|
|
86
86
|
Requires-Dist: sqlalchemy ~=1.4 ; extra == 'all'
|
|
87
|
-
Requires-Dist: taos-ws-py
|
|
87
|
+
Requires-Dist: taos-ws-py ==0.3.2 ; extra == 'all'
|
|
88
|
+
Requires-Dist: taoswswrap ~=0.2.0 ; extra == 'all'
|
|
88
89
|
Provides-Extra: api
|
|
89
90
|
Requires-Dist: uvicorn ~=0.27.1 ; extra == 'api'
|
|
90
91
|
Requires-Dist: dask-kubernetes ~=0.11.0 ; extra == 'api'
|
|
@@ -137,7 +138,8 @@ Requires-Dist: redis ~=4.3 ; extra == 'complete'
|
|
|
137
138
|
Requires-Dist: s3fs <2024.7,>=2023.9.2 ; extra == 'complete'
|
|
138
139
|
Requires-Dist: snowflake-connector-python ~=3.7 ; extra == 'complete'
|
|
139
140
|
Requires-Dist: sqlalchemy ~=1.4 ; extra == 'complete'
|
|
140
|
-
Requires-Dist: taos-ws-py
|
|
141
|
+
Requires-Dist: taos-ws-py ==0.3.2 ; extra == 'complete'
|
|
142
|
+
Requires-Dist: taoswswrap ~=0.2.0 ; extra == 'complete'
|
|
141
143
|
Provides-Extra: complete-api
|
|
142
144
|
Requires-Dist: adlfs ==2023.9.0 ; extra == 'complete-api'
|
|
143
145
|
Requires-Dist: aiobotocore <2.16,>=2.5.0 ; extra == 'complete-api'
|
|
@@ -174,7 +176,8 @@ Requires-Dist: redis ~=4.3 ; extra == 'complete-api'
|
|
|
174
176
|
Requires-Dist: s3fs <2024.7,>=2023.9.2 ; extra == 'complete-api'
|
|
175
177
|
Requires-Dist: snowflake-connector-python ~=3.7 ; extra == 'complete-api'
|
|
176
178
|
Requires-Dist: sqlalchemy ~=1.4 ; extra == 'complete-api'
|
|
177
|
-
Requires-Dist: taos-ws-py
|
|
179
|
+
Requires-Dist: taos-ws-py ==0.3.2 ; extra == 'complete-api'
|
|
180
|
+
Requires-Dist: taoswswrap ~=0.2.0 ; extra == 'complete-api'
|
|
178
181
|
Requires-Dist: timelength ~=1.1 ; extra == 'complete-api'
|
|
179
182
|
Requires-Dist: uvicorn ~=0.27.1 ; extra == 'complete-api'
|
|
180
183
|
Requires-Dist: memray ~=1.12 ; (sys_platform != "win32") and extra == 'complete-api'
|
|
@@ -209,7 +212,8 @@ Requires-Dist: snowflake-connector-python ~=3.7 ; extra == 'snowflake'
|
|
|
209
212
|
Provides-Extra: sqlalchemy
|
|
210
213
|
Requires-Dist: sqlalchemy ~=1.4 ; extra == 'sqlalchemy'
|
|
211
214
|
Provides-Extra: tdengine
|
|
212
|
-
Requires-Dist: taos-ws-py
|
|
215
|
+
Requires-Dist: taos-ws-py ==0.3.2 ; extra == 'tdengine'
|
|
216
|
+
Requires-Dist: taoswswrap ~=0.2.0 ; extra == 'tdengine'
|
|
213
217
|
|
|
214
218
|
<a id="top"></a>
|
|
215
219
|
[](https://github.com/mlrun/mlrun/actions/workflows/build.yaml?query=branch%3Adevelopment)
|
|
@@ -2,11 +2,11 @@ mlrun/__init__.py,sha256=y08M1JcKXy5-9_5WaI9fn5aV5BxIQ5QkbduJK0OxWbA,7470
|
|
|
2
2
|
mlrun/__main__.py,sha256=mC_Izs4kuHUHQi88QJFLN22n1kbygGM0wAirjNt7uj4,45938
|
|
3
3
|
mlrun/config.py,sha256=NJG59Rl_5-mwgCdPDboRhjHD1ujW9ITYL7gtCbSMkM8,67308
|
|
4
4
|
mlrun/errors.py,sha256=nY23dns_kTzbOrelJf0FyxLw5mglv7jo4Sx3efKS9Fs,7798
|
|
5
|
-
mlrun/execution.py,sha256=
|
|
5
|
+
mlrun/execution.py,sha256=nXvvN8euzjuxhJouJD8VxfK0keTTA6UoMrcD_17AL-4,44252
|
|
6
6
|
mlrun/features.py,sha256=m17K_3l9Jktwb9dOwlHLTAPTlemsWrRF7dJhXUX0iJU,15429
|
|
7
7
|
mlrun/k8s_utils.py,sha256=mRQMs6NzPq36vx1n5_2BfFapXysc8wv3NcrZ77_2ANA,8949
|
|
8
8
|
mlrun/lists.py,sha256=3PqBdcajdwhTe1XuFsAaHTuFVM2kjwepf31qqE82apg,8384
|
|
9
|
-
mlrun/model.py,sha256=
|
|
9
|
+
mlrun/model.py,sha256=S6CKiRrYfgVNALA9TLy4lsXZCox4FpD-TAnR5CU51cQ,82035
|
|
10
10
|
mlrun/render.py,sha256=940H9fBBFeghH4dlifbURvtjlvw4GlWdAXezN6ky4rI,13275
|
|
11
11
|
mlrun/run.py,sha256=hNxV-TnixbH8MCos2jqz8jdTDlK7dBSvJMil_QoGKQI,43616
|
|
12
12
|
mlrun/secrets.py,sha256=ibtCK79u7JVBZF6F0SP1-xXXF5MyrLEUs_TCWiJAnlc,7798
|
|
@@ -243,9 +243,9 @@ mlrun/model_monitoring/db/tsdb/__init__.py,sha256=Zqh_27I2YAEHk9nl0Z6lUxP7VEfrgr
|
|
|
243
243
|
mlrun/model_monitoring/db/tsdb/base.py,sha256=X89X763sDrShfRXE1N-p8k97E8NBs7O1QJFiO-CffLM,18583
|
|
244
244
|
mlrun/model_monitoring/db/tsdb/helpers.py,sha256=0oUXc4aUkYtP2SGP6jTb3uPPKImIUsVsrb9otX9a7O4,1189
|
|
245
245
|
mlrun/model_monitoring/db/tsdb/tdengine/__init__.py,sha256=vgBdsKaXUURKqIf3M0y4sRatmSVA4CQiJs7J5dcVBkQ,620
|
|
246
|
-
mlrun/model_monitoring/db/tsdb/tdengine/schemas.py,sha256=
|
|
246
|
+
mlrun/model_monitoring/db/tsdb/tdengine/schemas.py,sha256=LqWJebDXrXo0mteKVG6LnvPYlWBYh2lMCXEcv-lWoKA,10551
|
|
247
247
|
mlrun/model_monitoring/db/tsdb/tdengine/stream_graph_steps.py,sha256=Hb0vcCBP-o0ET78mU4P32fnhUL65QZv-pMuv2lnCby4,1586
|
|
248
|
-
mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py,sha256=
|
|
248
|
+
mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py,sha256=tx8W40cqKKnwuAvFVa7pbX8mv6P-gS1dWNifjPuIG7c,18988
|
|
249
249
|
mlrun/model_monitoring/db/tsdb/v3io/__init__.py,sha256=aL3bfmQsUQ-sbvKGdNihFj8gLCK3mSys0qDcXtYOwgc,616
|
|
250
250
|
mlrun/model_monitoring/db/tsdb/v3io/stream_graph_steps.py,sha256=mbmhN4f_F58ptVjhwoMF6ifZSdnZWhK7x8eNsWS39IA,6217
|
|
251
251
|
mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py,sha256=1H-IBXPNJPRAaxDMGWpUU25QqfR87LpZbJ03vaJkICs,32858
|
|
@@ -272,7 +272,7 @@ mlrun/platforms/__init__.py,sha256=ggSGF7inITs6S-vj9u4S9X_5psgbA0G3GVqf7zu8qYc,2
|
|
|
272
272
|
mlrun/platforms/iguazio.py,sha256=1h5BpdAEQJBg2vIt7ySjUADU0ip5OkaMYr0_VREi9ys,13084
|
|
273
273
|
mlrun/projects/__init__.py,sha256=Lv5rfxyXJrw6WGOWJKhBz66M6t3_zsNMCfUD6waPwx4,1153
|
|
274
274
|
mlrun/projects/operations.py,sha256=gtqSU9OvYOV-b681uQtWgnW7YSnX6qfa1Mt1Xm4f1ZI,19752
|
|
275
|
-
mlrun/projects/pipelines.py,sha256=
|
|
275
|
+
mlrun/projects/pipelines.py,sha256=tJsoqHYJw0jsB9rawUtTHQ71xnT03b_JVyPROPX-EGU,40962
|
|
276
276
|
mlrun/projects/project.py,sha256=FjgkBBBP6geuxOGGp1Es5EFqsrs3M6PNWejBdoM08ng,190769
|
|
277
277
|
mlrun/runtimes/__init__.py,sha256=egLM94cDMUyQ1GVABdFGXUQcDhU70lP3k7qSnM_UnHY,9008
|
|
278
278
|
mlrun/runtimes/base.py,sha256=JXWmTIcm3b0klGUOHDlyFNa3bUgsNzQIgWhUQpSZoE0,37692
|
|
@@ -323,7 +323,7 @@ mlrun/utils/azure_vault.py,sha256=IEFizrDGDbAaoWwDr1WoA88S_EZ0T--vjYtY-i0cvYQ,34
|
|
|
323
323
|
mlrun/utils/clones.py,sha256=mJpx4nyFiY6jlBCvFABsNuyi_mr1mvfPWn81vlafpOU,7361
|
|
324
324
|
mlrun/utils/condition_evaluator.py,sha256=-nGfRmZzivn01rHTroiGY4rqEv8T1irMyhzxEei-sKc,1897
|
|
325
325
|
mlrun/utils/db.py,sha256=blQgkWMfFH9lcN4sgJQcPQgEETz2Dl_zwbVA0SslpFg,2186
|
|
326
|
-
mlrun/utils/helpers.py,sha256=
|
|
326
|
+
mlrun/utils/helpers.py,sha256=F2hrR3748PTbFCzvckakACSjzL2ZypqEekTMldizxr0,61146
|
|
327
327
|
mlrun/utils/http.py,sha256=t6FrXQstZm9xVVjxqIGiLzrwZNCR4CSienSOuVgNIcI,8706
|
|
328
328
|
mlrun/utils/logger.py,sha256=cag2J30-jynIHmHZ2J8RYmVMNhYBGgAoimc5sbk-A1U,10016
|
|
329
329
|
mlrun/utils/regex.py,sha256=b0AUa2THS-ELzJj0grl5b8Stq609F2XomTZkD9SB1fQ,4900
|
|
@@ -341,11 +341,11 @@ mlrun/utils/notifications/notification/ipython.py,sha256=ZtVL30B_Ha0VGoo4LxO-voT
|
|
|
341
341
|
mlrun/utils/notifications/notification/slack.py,sha256=wqpFGr5BTvFO5KuUSzFfxsgmyU1Ohq7fbrGeNe9TXOk,7006
|
|
342
342
|
mlrun/utils/notifications/notification/webhook.py,sha256=cb9w1Mc8ENfJBdgan7iiVHK9eVls4-R3tUxmXM-P-8I,4746
|
|
343
343
|
mlrun/utils/version/__init__.py,sha256=7kkrB7hEZ3cLXoWj1kPoDwo4MaswsI2JVOBpbKgPAgc,614
|
|
344
|
-
mlrun/utils/version/version.json,sha256=
|
|
344
|
+
mlrun/utils/version/version.json,sha256=z11pCZaTqkSjSqpZnkcIcIDUvDrPsaypee2mtTI33uk,89
|
|
345
345
|
mlrun/utils/version/version.py,sha256=eEW0tqIAkU9Xifxv8Z9_qsYnNhn3YH7NRAfM-pPLt1g,1878
|
|
346
|
-
mlrun-1.7.
|
|
347
|
-
mlrun-1.7.
|
|
348
|
-
mlrun-1.7.
|
|
349
|
-
mlrun-1.7.
|
|
350
|
-
mlrun-1.7.
|
|
351
|
-
mlrun-1.7.
|
|
346
|
+
mlrun-1.7.0rc53.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
347
|
+
mlrun-1.7.0rc53.dist-info/METADATA,sha256=Ev6wRXaEWvw4BAczs0elYgVKH46NAI5uRPB0evISkHg,24485
|
|
348
|
+
mlrun-1.7.0rc53.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
|
349
|
+
mlrun-1.7.0rc53.dist-info/entry_points.txt,sha256=1Owd16eAclD5pfRCoJpYC2ZJSyGNTtUr0nCELMioMmU,46
|
|
350
|
+
mlrun-1.7.0rc53.dist-info/top_level.txt,sha256=NObLzw3maSF9wVrgSeYBv-fgnHkAJ1kEkh12DLdd5KM,6
|
|
351
|
+
mlrun-1.7.0rc53.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|