mlrun 1.8.0rc17__py3-none-any.whl → 1.8.0rc18__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/config.py +1 -0
- mlrun/model_monitoring/applications/base.py +54 -19
- mlrun/projects/pipelines.py +2 -1
- mlrun/serving/states.py +3 -3
- mlrun/serving/v2_serving.py +3 -3
- mlrun/utils/notifications/notification_pusher.py +33 -3
- mlrun/utils/version/version.json +2 -2
- {mlrun-1.8.0rc17.dist-info → mlrun-1.8.0rc18.dist-info}/METADATA +5 -7
- {mlrun-1.8.0rc17.dist-info → mlrun-1.8.0rc18.dist-info}/RECORD +13 -13
- {mlrun-1.8.0rc17.dist-info → mlrun-1.8.0rc18.dist-info}/LICENSE +0 -0
- {mlrun-1.8.0rc17.dist-info → mlrun-1.8.0rc18.dist-info}/WHEEL +0 -0
- {mlrun-1.8.0rc17.dist-info → mlrun-1.8.0rc18.dist-info}/entry_points.txt +0 -0
- {mlrun-1.8.0rc17.dist-info → mlrun-1.8.0rc18.dist-info}/top_level.txt +0 -0
mlrun/config.py
CHANGED
|
@@ -169,6 +169,7 @@ default_config = {
|
|
|
169
169
|
"max_chunk_size": 1024 * 1024 * 1, # 1MB
|
|
170
170
|
"max_preview_size": 1024 * 1024 * 10, # 10MB
|
|
171
171
|
"max_download_size": 1024 * 1024 * 100, # 100MB
|
|
172
|
+
"max_deletions": 200,
|
|
172
173
|
},
|
|
173
174
|
},
|
|
174
175
|
# FIXME: Adding these defaults here so we won't need to patch the "installing component" (provazio-controller) to
|
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
|
|
15
15
|
import socket
|
|
16
16
|
from abc import ABC, abstractmethod
|
|
17
|
-
from
|
|
17
|
+
from collections.abc import Iterator
|
|
18
|
+
from datetime import datetime, timedelta
|
|
18
19
|
from typing import Any, Optional, Union, cast
|
|
19
20
|
|
|
20
21
|
import pandas as pd
|
|
@@ -96,6 +97,7 @@ class ModelMonitoringApplicationBase(MonitoringApplicationToDict, ABC):
|
|
|
96
97
|
endpoints: Optional[list[tuple[str, str]]] = None,
|
|
97
98
|
start: Optional[datetime] = None,
|
|
98
99
|
end: Optional[datetime] = None,
|
|
100
|
+
base_period: Optional[int] = None,
|
|
99
101
|
):
|
|
100
102
|
"""
|
|
101
103
|
A custom handler that wraps the application's logic implemented in
|
|
@@ -122,32 +124,59 @@ class ModelMonitoringApplicationBase(MonitoringApplicationToDict, ABC):
|
|
|
122
124
|
return self.do_tracking(monitoring_context)
|
|
123
125
|
|
|
124
126
|
if endpoints is not None:
|
|
125
|
-
start, end = self._validate_times(start, end)
|
|
126
|
-
for
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
127
|
+
start, end = self._validate_times(start, end, base_period)
|
|
128
|
+
for window_start, window_end in self._window_generator(
|
|
129
|
+
start, end, base_period
|
|
130
|
+
):
|
|
131
|
+
for endpoint_name, endpoint_id in endpoints:
|
|
132
|
+
result = call_do_tracking(
|
|
133
|
+
event={
|
|
134
|
+
mm_constants.ApplicationEvent.ENDPOINT_NAME: endpoint_name,
|
|
135
|
+
mm_constants.ApplicationEvent.ENDPOINT_ID: endpoint_id,
|
|
136
|
+
mm_constants.ApplicationEvent.START_INFER_TIME: window_start,
|
|
137
|
+
mm_constants.ApplicationEvent.END_INFER_TIME: window_end,
|
|
138
|
+
}
|
|
139
|
+
)
|
|
140
|
+
context.log_result(
|
|
141
|
+
f"{endpoint_name}_{window_start.isoformat()}_{window_end.isoformat()}",
|
|
142
|
+
result,
|
|
143
|
+
)
|
|
138
144
|
else:
|
|
139
145
|
return call_do_tracking()
|
|
140
146
|
|
|
141
147
|
@staticmethod
|
|
142
148
|
def _validate_times(
|
|
143
|
-
start: Optional[datetime],
|
|
149
|
+
start: Optional[datetime],
|
|
150
|
+
end: Optional[datetime],
|
|
151
|
+
base_period: Optional[int],
|
|
144
152
|
) -> tuple[datetime, datetime]:
|
|
145
153
|
if (start is None) or (end is None):
|
|
146
154
|
raise mlrun.errors.MLRunValueError(
|
|
147
155
|
"When `endpoint_names` is provided, you must also pass the start and end times"
|
|
148
156
|
)
|
|
157
|
+
if (base_period is not None) and not (
|
|
158
|
+
isinstance(base_period, int) and base_period > 0
|
|
159
|
+
):
|
|
160
|
+
raise mlrun.errors.MLRunValueError(
|
|
161
|
+
"`base_period` must be a nonnegative integer - the number of minutes in a monitoring window"
|
|
162
|
+
)
|
|
149
163
|
return start, end
|
|
150
164
|
|
|
165
|
+
@staticmethod
|
|
166
|
+
def _window_generator(
|
|
167
|
+
start: datetime, end: datetime, base_period: Optional[int]
|
|
168
|
+
) -> Iterator[tuple[datetime, datetime]]:
|
|
169
|
+
if base_period is None:
|
|
170
|
+
yield start, end
|
|
171
|
+
return
|
|
172
|
+
|
|
173
|
+
window_length = timedelta(minutes=base_period)
|
|
174
|
+
current_start_time = start
|
|
175
|
+
while current_start_time < end:
|
|
176
|
+
current_end_time = min(current_start_time + window_length, end)
|
|
177
|
+
yield current_start_time, current_end_time
|
|
178
|
+
current_start_time = current_end_time
|
|
179
|
+
|
|
151
180
|
@classmethod
|
|
152
181
|
def deploy(
|
|
153
182
|
cls,
|
|
@@ -203,6 +232,7 @@ class ModelMonitoringApplicationBase(MonitoringApplicationToDict, ABC):
|
|
|
203
232
|
endpoints: Optional[list[tuple[str, str]]] = None,
|
|
204
233
|
start: Optional[datetime] = None,
|
|
205
234
|
end: Optional[datetime] = None,
|
|
235
|
+
base_period: Optional[int] = None,
|
|
206
236
|
) -> "mlrun.RunObject":
|
|
207
237
|
"""
|
|
208
238
|
Call this function to run the application's
|
|
@@ -228,6 +258,10 @@ class ModelMonitoringApplicationBase(MonitoringApplicationToDict, ABC):
|
|
|
228
258
|
If provided, you have to provide also the start and end times of the data to analyze.
|
|
229
259
|
:param start: The start time of the sample data.
|
|
230
260
|
:param end: The end time of the sample data.
|
|
261
|
+
:param base_period: The window length in minutes. If ``None``, the whole window from ``start`` to ``end``
|
|
262
|
+
is taken. If an integer is specified, the application is run from ``start`` to ``end``
|
|
263
|
+
in ``base_period`` length windows, except for the last window that ends at ``end`` and
|
|
264
|
+
therefore may be shorter.
|
|
231
265
|
|
|
232
266
|
:returns: The output of the
|
|
233
267
|
:py:meth:`~mlrun.model_monitoring.applications.ModelMonitoringApplicationBase.do_tracking`
|
|
@@ -253,15 +287,16 @@ class ModelMonitoringApplicationBase(MonitoringApplicationToDict, ABC):
|
|
|
253
287
|
),
|
|
254
288
|
)
|
|
255
289
|
|
|
256
|
-
params: dict[str, Union[list[tuple[str, str]], datetime]] = {}
|
|
290
|
+
params: dict[str, Union[list[tuple[str, str]], datetime, int, None]] = {}
|
|
257
291
|
if endpoints:
|
|
258
|
-
start, end = cls._validate_times(start, end)
|
|
292
|
+
start, end = cls._validate_times(start, end, base_period)
|
|
259
293
|
params["endpoints"] = endpoints
|
|
260
294
|
params["start"] = start
|
|
261
295
|
params["end"] = end
|
|
262
|
-
|
|
296
|
+
params["base_period"] = base_period
|
|
297
|
+
elif start or end or base_period:
|
|
263
298
|
raise mlrun.errors.MLRunValueError(
|
|
264
|
-
"Custom start
|
|
299
|
+
"Custom start and end times or base_period are supported only with endpoints data"
|
|
265
300
|
)
|
|
266
301
|
|
|
267
302
|
inputs: dict[str, str] = {}
|
mlrun/projects/pipelines.py
CHANGED
|
@@ -748,7 +748,8 @@ class _LocalRunner(_PipelineRunner):
|
|
|
748
748
|
project.set_source(source=source)
|
|
749
749
|
pipeline_context.workflow_artifact_path = artifact_path
|
|
750
750
|
|
|
751
|
-
|
|
751
|
+
# TODO: we should create endpoint for sending custom notification from BE
|
|
752
|
+
project.notifiers.push_pipeline_start_message_from_client(
|
|
752
753
|
project.metadata.name, pipeline_id=workflow_id
|
|
753
754
|
)
|
|
754
755
|
err = None
|
mlrun/serving/states.py
CHANGED
|
@@ -700,7 +700,7 @@ class RouterStep(TaskStep):
|
|
|
700
700
|
|
|
701
701
|
kind = "router"
|
|
702
702
|
default_shape = "doubleoctagon"
|
|
703
|
-
_dict_fields = _task_step_fields + ["routes"]
|
|
703
|
+
_dict_fields = _task_step_fields + ["routes", "name"]
|
|
704
704
|
_default_class = "mlrun.serving.ModelRouter"
|
|
705
705
|
|
|
706
706
|
def __init__(
|
|
@@ -718,7 +718,7 @@ class RouterStep(TaskStep):
|
|
|
718
718
|
class_name,
|
|
719
719
|
class_args,
|
|
720
720
|
handler,
|
|
721
|
-
name=name,
|
|
721
|
+
name=get_name(name, class_name or RouterStep.kind),
|
|
722
722
|
function=function,
|
|
723
723
|
input_path=input_path,
|
|
724
724
|
result_path=result_path,
|
|
@@ -1707,7 +1707,7 @@ def get_name(name, class_name):
|
|
|
1707
1707
|
raise MLRunInvalidArgumentError("name or class_name must be provided")
|
|
1708
1708
|
if isinstance(class_name, type):
|
|
1709
1709
|
return class_name.__name__
|
|
1710
|
-
return class_name
|
|
1710
|
+
return class_name.split(".")[-1]
|
|
1711
1711
|
|
|
1712
1712
|
|
|
1713
1713
|
def params_to_step(
|
mlrun/serving/v2_serving.py
CHANGED
|
@@ -96,7 +96,7 @@ class V2ModelServer(StepToDict):
|
|
|
96
96
|
self.name = name
|
|
97
97
|
self.version = ""
|
|
98
98
|
if name and ":" in name:
|
|
99
|
-
self.
|
|
99
|
+
self.version = name.split(":", 1)[-1]
|
|
100
100
|
self.context = context
|
|
101
101
|
self.ready = False
|
|
102
102
|
self.error = ""
|
|
@@ -277,7 +277,7 @@ class V2ModelServer(StepToDict):
|
|
|
277
277
|
|
|
278
278
|
response = {
|
|
279
279
|
"id": event_id,
|
|
280
|
-
"model_name": self.name,
|
|
280
|
+
"model_name": self.name.split(":")[0],
|
|
281
281
|
"outputs": outputs,
|
|
282
282
|
"timestamp": start.isoformat(sep=" ", timespec="microseconds"),
|
|
283
283
|
}
|
|
@@ -308,7 +308,7 @@ class V2ModelServer(StepToDict):
|
|
|
308
308
|
# get model metadata operation
|
|
309
309
|
setattr(event, "terminated", True)
|
|
310
310
|
event_body = {
|
|
311
|
-
"name": self.name,
|
|
311
|
+
"name": self.name.split(":")[0],
|
|
312
312
|
"version": self.version or "",
|
|
313
313
|
"inputs": [],
|
|
314
314
|
"outputs": [],
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
import asyncio
|
|
16
16
|
import datetime
|
|
17
|
+
import os
|
|
17
18
|
import re
|
|
18
19
|
import traceback
|
|
19
20
|
import typing
|
|
@@ -30,6 +31,7 @@ import mlrun.model
|
|
|
30
31
|
import mlrun.utils.helpers
|
|
31
32
|
import mlrun.utils.notifications.notification as notification_module
|
|
32
33
|
import mlrun.utils.notifications.notification.base as base
|
|
34
|
+
import mlrun_pipelines.common.constants
|
|
33
35
|
import mlrun_pipelines.common.ops
|
|
34
36
|
import mlrun_pipelines.models
|
|
35
37
|
import mlrun_pipelines.utils
|
|
@@ -499,9 +501,9 @@ class NotificationPusher(_NotificationPusherBase):
|
|
|
499
501
|
steps.append(function)
|
|
500
502
|
|
|
501
503
|
step_methods = {
|
|
502
|
-
mlrun_pipelines.common.
|
|
503
|
-
mlrun_pipelines.common.
|
|
504
|
-
mlrun_pipelines.common.
|
|
504
|
+
mlrun_pipelines.common.constants.PipelineRunType.run: _add_run_step,
|
|
505
|
+
mlrun_pipelines.common.constants.PipelineRunType.build: _add_deploy_function_step,
|
|
506
|
+
mlrun_pipelines.common.constants.PipelineRunType.deploy: _add_deploy_function_step,
|
|
505
507
|
}
|
|
506
508
|
|
|
507
509
|
workflow_id = run.status.results.get("workflow_id", None)
|
|
@@ -684,6 +686,34 @@ class CustomNotificationPusher(_NotificationPusherBase):
|
|
|
684
686
|
db = mlrun.get_run_db()
|
|
685
687
|
db.push_run_notifications(pipeline_id, project)
|
|
686
688
|
|
|
689
|
+
def push_pipeline_start_message_from_client(
|
|
690
|
+
self,
|
|
691
|
+
project: str,
|
|
692
|
+
commit_id: typing.Optional[str] = None,
|
|
693
|
+
pipeline_id: typing.Optional[str] = None,
|
|
694
|
+
has_workflow_url: bool = False,
|
|
695
|
+
):
|
|
696
|
+
message = f"Workflow started in project {project}"
|
|
697
|
+
if pipeline_id:
|
|
698
|
+
message += f" id={pipeline_id}"
|
|
699
|
+
commit_id = (
|
|
700
|
+
commit_id or os.environ.get("GITHUB_SHA") or os.environ.get("CI_COMMIT_SHA")
|
|
701
|
+
)
|
|
702
|
+
if commit_id:
|
|
703
|
+
message += f", commit={commit_id}"
|
|
704
|
+
if has_workflow_url:
|
|
705
|
+
url = mlrun.utils.helpers.get_workflow_url(project, pipeline_id)
|
|
706
|
+
else:
|
|
707
|
+
url = mlrun.utils.helpers.get_ui_url(project)
|
|
708
|
+
html = ""
|
|
709
|
+
if url:
|
|
710
|
+
html = (
|
|
711
|
+
message
|
|
712
|
+
+ f'<div><a href="{url}" target="_blank">click here to view progress</a></div>'
|
|
713
|
+
)
|
|
714
|
+
message = message + f", check progress in {url}"
|
|
715
|
+
self.push(message, "info", custom_html=html)
|
|
716
|
+
|
|
687
717
|
def push_pipeline_run_results(
|
|
688
718
|
self,
|
|
689
719
|
runs: typing.Union[mlrun.lists.RunList, list],
|
mlrun/utils/version/version.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: mlrun
|
|
3
|
-
Version: 1.8.
|
|
3
|
+
Version: 1.8.0rc18
|
|
4
4
|
Summary: Tracking and config of machine learning runs
|
|
5
5
|
Home-page: https://github.com/mlrun/mlrun
|
|
6
6
|
Author: Yaron Haviv
|
|
@@ -51,12 +51,10 @@ Requires-Dist: setuptools>=75.2
|
|
|
51
51
|
Requires-Dist: deprecated~=1.2
|
|
52
52
|
Requires-Dist: jinja2>=3.1.3,~=3.1
|
|
53
53
|
Requires-Dist: orjson<4,>=3.9.15
|
|
54
|
-
Requires-Dist: mlrun-pipelines-kfp-common~=0.3.
|
|
55
|
-
Requires-Dist: mlrun-pipelines-kfp-v1-8~=0.3.
|
|
54
|
+
Requires-Dist: mlrun-pipelines-kfp-common~=0.3.5
|
|
55
|
+
Requires-Dist: mlrun-pipelines-kfp-v1-8~=0.3.5; python_version < "3.11"
|
|
56
56
|
Requires-Dist: docstring_parser~=0.16
|
|
57
57
|
Requires-Dist: aiosmtplib~=3.0
|
|
58
|
-
Requires-Dist: grpcio-tools~=1.48.2; python_version < "3.11"
|
|
59
|
-
Requires-Dist: grpcio~=1.48.2; python_version < "3.11"
|
|
60
58
|
Provides-Extra: s3
|
|
61
59
|
Requires-Dist: boto3<1.36,>=1.28.0; extra == "s3"
|
|
62
60
|
Requires-Dist: aiobotocore<2.16,>=2.5.0; extra == "s3"
|
|
@@ -121,7 +119,7 @@ Requires-Dist: timelength~=1.1; extra == "api"
|
|
|
121
119
|
Requires-Dist: memray~=1.12; sys_platform != "win32" and extra == "api"
|
|
122
120
|
Requires-Dist: aiosmtplib~=3.0; extra == "api"
|
|
123
121
|
Requires-Dist: pydantic<2,>=1; extra == "api"
|
|
124
|
-
Requires-Dist: mlrun-pipelines-kfp-v1-8[kfp]~=0.3.
|
|
122
|
+
Requires-Dist: mlrun-pipelines-kfp-v1-8[kfp]~=0.3.5; python_version < "3.11" and extra == "api"
|
|
125
123
|
Provides-Extra: all
|
|
126
124
|
Requires-Dist: adlfs==2023.9.0; extra == "all"
|
|
127
125
|
Requires-Dist: aiobotocore<2.16,>=2.5.0; extra == "all"
|
|
@@ -210,7 +208,7 @@ Requires-Dist: igz-mgmt~=0.4.1; extra == "complete-api"
|
|
|
210
208
|
Requires-Dist: kafka-python~=2.0; extra == "complete-api"
|
|
211
209
|
Requires-Dist: memray~=1.12; sys_platform != "win32" and extra == "complete-api"
|
|
212
210
|
Requires-Dist: mlflow~=2.16; extra == "complete-api"
|
|
213
|
-
Requires-Dist: mlrun-pipelines-kfp-v1-8[kfp]~=0.3.
|
|
211
|
+
Requires-Dist: mlrun-pipelines-kfp-v1-8[kfp]~=0.3.5; python_version < "3.11" and extra == "complete-api"
|
|
214
212
|
Requires-Dist: msrest~=0.6.21; extra == "complete-api"
|
|
215
213
|
Requires-Dist: objgraph~=3.6; extra == "complete-api"
|
|
216
214
|
Requires-Dist: oss2==2.18.1; extra == "complete-api"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
mlrun/__init__.py,sha256=7vuMpUiigXXDrghLRq680LKWy1faC0kQyGCZb_7cwyE,7473
|
|
2
2
|
mlrun/__main__.py,sha256=o65gXHhmFA9GV_n2mqmAO80nW3MAwo_s7j80IKgCzRE,45949
|
|
3
|
-
mlrun/config.py,sha256=
|
|
3
|
+
mlrun/config.py,sha256=jjjpcnTjmYPc5ptvetYMJ-BPWaOiQW1b9Phdh9A8wo0,70605
|
|
4
4
|
mlrun/errors.py,sha256=5raKb1PXQpTcIvWQ4sr1qn2IS7P_GT_FydBJ0dXkVuc,8097
|
|
5
5
|
mlrun/execution.py,sha256=Up9U6xonTElRIaesF9Vej2JK1Isk2AZNK9ke0XcF5Dg,49030
|
|
6
6
|
mlrun/features.py,sha256=ReBaNGsBYXqcbgI012n-SO_j6oHIbk_Vpv0CGPXbUmo,15842
|
|
@@ -225,7 +225,7 @@ mlrun/model_monitoring/tracking_policy.py,sha256=PBIGrUYWrwcE5gwXupBIVzOb0QRRwPJ
|
|
|
225
225
|
mlrun/model_monitoring/writer.py,sha256=vbL7bqTyNu8q4bNcebX72sUMybVDAoTWg-CXq4fov3Y,8429
|
|
226
226
|
mlrun/model_monitoring/applications/__init__.py,sha256=QYvzgCutFdAkzqKPD3mvkX_3c1X4tzd-kW8ojUOE9ic,889
|
|
227
227
|
mlrun/model_monitoring/applications/_application_steps.py,sha256=NvrYJs6N0Kpp3s_t6s9LkCk5hY7kWYmkVoIhz_ZZx_8,7178
|
|
228
|
-
mlrun/model_monitoring/applications/base.py,sha256=
|
|
228
|
+
mlrun/model_monitoring/applications/base.py,sha256=pqmZ67zaslIkcJlsjcUG6TWjbBTD_fYci6rlEvbFttc,15091
|
|
229
229
|
mlrun/model_monitoring/applications/context.py,sha256=kE_8h7eoUES_bFG2s7nENRziMFB72fJvAZ3KpIBWxOo,15084
|
|
230
230
|
mlrun/model_monitoring/applications/evidently_base.py,sha256=hRjXuXf6xf8sbjGt9yYfGDUGnvS5rV3W7tkJroF3QJA,5098
|
|
231
231
|
mlrun/model_monitoring/applications/histogram_data_drift.py,sha256=G26_4gQfcwDZe3S6SIZ4Uc_qyrHAJ6lDTFOQGkbfQR8,14455
|
|
@@ -266,7 +266,7 @@ mlrun/platforms/__init__.py,sha256=ZuyeHCHHUxYEoZRmaJqzFSfwhaTyUdBZXMeVp75ql1w,3
|
|
|
266
266
|
mlrun/platforms/iguazio.py,sha256=6VBTq8eQ3mzT96tzjYhAtcMQ2VjF4x8LpIPW5DAcX2Q,13749
|
|
267
267
|
mlrun/projects/__init__.py,sha256=0Krf0WIKfnZa71WthYOg0SoaTodGg3sV_hK3f_OlTPI,1220
|
|
268
268
|
mlrun/projects/operations.py,sha256=VXUlMrouFTls-I-bMhdN5pPfQ34TR7bFQ-NUSWNvl84,20029
|
|
269
|
-
mlrun/projects/pipelines.py,sha256=
|
|
269
|
+
mlrun/projects/pipelines.py,sha256=vZpyiERUzwPMS7NCC5ghI0KB_DItIddr7MMWGTwLawY,47437
|
|
270
270
|
mlrun/projects/project.py,sha256=fApkLLMJKPQi-Q69O-pZP5sh6eVsLmBt1KqZUFwcZoM,228225
|
|
271
271
|
mlrun/runtimes/__init__.py,sha256=J9Sy2HiyMlztNv6VUurMzF5H2XzttNil8nRsWDsqLyg,8923
|
|
272
272
|
mlrun/runtimes/base.py,sha256=Yt2l7srrXjK783cunBEKH0yQxQZRH8lkedXNOXuLbbo,37841
|
|
@@ -303,10 +303,10 @@ mlrun/serving/remote.py,sha256=gxJkj_J3j-sZcVUbUzbAmJafP6t6y4NVFsu0kWmYngA,18818
|
|
|
303
303
|
mlrun/serving/routers.py,sha256=A_R34_N6uYw2veK58WpffEp1NsFwq0XbNU9is2Nd7s8,50901
|
|
304
304
|
mlrun/serving/server.py,sha256=xP88X7_C4mHIk0R7TJBCl-jSl-VomctblipiYepQTaQ,22512
|
|
305
305
|
mlrun/serving/serving_wrapper.py,sha256=R670-S6PX_d5ER6jiHtRvacuPyFzQH0mEf2K0sBIIOM,836
|
|
306
|
-
mlrun/serving/states.py,sha256=
|
|
306
|
+
mlrun/serving/states.py,sha256=g6UIeaS6B9v8k4eDMmOxyoB8Gdqm9PiNIkeuzDyTJA8,67565
|
|
307
307
|
mlrun/serving/utils.py,sha256=k2EIYDWHUGkE-IBI6T0UNT32fw-KySsccIJM_LObI00,4171
|
|
308
308
|
mlrun/serving/v1_serving.py,sha256=c6J_MtpE-Tqu00-6r4eJOCO6rUasHDal9W2eBIcrl50,11853
|
|
309
|
-
mlrun/serving/v2_serving.py,sha256=
|
|
309
|
+
mlrun/serving/v2_serving.py,sha256=B1Vmca2_YidXyit4wuxR6JGooMGdaeZI3Ja90JHCz10,21882
|
|
310
310
|
mlrun/track/__init__.py,sha256=yVXbT52fXvGKRlc_ByHqIVt7-9L3DRE634RSeQwgXtU,665
|
|
311
311
|
mlrun/track/tracker.py,sha256=CyTU6Qd3_5GGEJ_hpocOj71wvV65EuFYUjaYEUKAL6Q,3575
|
|
312
312
|
mlrun/track/tracker_manager.py,sha256=IYBl99I62IC6VCCmG1yt6JoHNOQXa53C4DURJ2sWgio,5726
|
|
@@ -327,7 +327,7 @@ mlrun/utils/singleton.py,sha256=p1Y-X0mPSs_At092GS-pZCA8CTR62HOqPU07_ZH6-To,869
|
|
|
327
327
|
mlrun/utils/v3io_clients.py,sha256=0aCFiQFBmgdSeLzJr_nEP6SG-zyieSgH8RdtcUq4dc0,1294
|
|
328
328
|
mlrun/utils/vault.py,sha256=xUiKL17dCXjwQJ33YRzQj0oadUXATlFWPzKKYAESoQk,10447
|
|
329
329
|
mlrun/utils/notifications/__init__.py,sha256=eUzQDBxSQmMZASRY-YAnYS6tL5801P0wEjycp3Dvoe0,990
|
|
330
|
-
mlrun/utils/notifications/notification_pusher.py,sha256=
|
|
330
|
+
mlrun/utils/notifications/notification_pusher.py,sha256=Y30ZG8MDk0oxPPHPjqd9kDxQaOewTuE5uwZhxlM5V-s,29269
|
|
331
331
|
mlrun/utils/notifications/notification/__init__.py,sha256=9Rfy6Jm8n0LaEDO1VAQb6kIbr7_uVuQhK1pS_abELIY,2581
|
|
332
332
|
mlrun/utils/notifications/notification/base.py,sha256=VOgrzRakRfjYYBqvkc0cgEC5pl7KMidP7u-TL4HpGCY,5280
|
|
333
333
|
mlrun/utils/notifications/notification/console.py,sha256=ICbIhOf9fEBJky_3j9TFiKAewDGyDHJr9l4VeT7G2sc,2745
|
|
@@ -337,11 +337,11 @@ mlrun/utils/notifications/notification/mail.py,sha256=ZyJ3eqd8simxffQmXzqd3bgbAq
|
|
|
337
337
|
mlrun/utils/notifications/notification/slack.py,sha256=NKV4RFiY3gLsS8uPppgniPLyag8zJ9O1VhixoXkM7kw,7108
|
|
338
338
|
mlrun/utils/notifications/notification/webhook.py,sha256=M-pSBM2VTKVUPRERocjORlH6mKqo1K9ihVL5Qrn2GyM,4789
|
|
339
339
|
mlrun/utils/version/__init__.py,sha256=7kkrB7hEZ3cLXoWj1kPoDwo4MaswsI2JVOBpbKgPAgc,614
|
|
340
|
-
mlrun/utils/version/version.json,sha256=
|
|
340
|
+
mlrun/utils/version/version.json,sha256=fuKq-DQzj4VU91pAfeQ6y9--Wzwya8hmUG1brhepAzQ,89
|
|
341
341
|
mlrun/utils/version/version.py,sha256=eEW0tqIAkU9Xifxv8Z9_qsYnNhn3YH7NRAfM-pPLt1g,1878
|
|
342
|
-
mlrun-1.8.
|
|
343
|
-
mlrun-1.8.
|
|
344
|
-
mlrun-1.8.
|
|
345
|
-
mlrun-1.8.
|
|
346
|
-
mlrun-1.8.
|
|
347
|
-
mlrun-1.8.
|
|
342
|
+
mlrun-1.8.0rc18.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
343
|
+
mlrun-1.8.0rc18.dist-info/METADATA,sha256=LmjjU6uSheHxPOGP4V2giVzBleaHV45fl9bCB_xqyBo,24885
|
|
344
|
+
mlrun-1.8.0rc18.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
|
345
|
+
mlrun-1.8.0rc18.dist-info/entry_points.txt,sha256=1Owd16eAclD5pfRCoJpYC2ZJSyGNTtUr0nCELMioMmU,46
|
|
346
|
+
mlrun-1.8.0rc18.dist-info/top_level.txt,sha256=NObLzw3maSF9wVrgSeYBv-fgnHkAJ1kEkh12DLdd5KM,6
|
|
347
|
+
mlrun-1.8.0rc18.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|