mlrun 1.8.0rc56__py3-none-any.whl → 1.8.0rc58__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.

@@ -111,7 +111,7 @@ def schema_to_store(schema):
111
111
 
112
112
  def uri_to_ipython(link):
113
113
  schema, endpoint, parsed_url = parse_url(link)
114
- if schema in [DB_SCHEMA, "memory"]:
114
+ if schema in [DB_SCHEMA, "memory", "ds"]:
115
115
  return ""
116
116
  return schema_to_store(schema).uri_to_ipython(endpoint, parsed_url.path)
117
117
 
mlrun/db/base.py CHANGED
@@ -734,7 +734,7 @@ class RunDBInterface(ABC):
734
734
  labels: Optional[Union[str, dict[str, Optional[str]], list[str]]] = None,
735
735
  start: Optional[datetime.datetime] = None,
736
736
  end: Optional[datetime.datetime] = None,
737
- tsdb_metrics: bool = True,
737
+ tsdb_metrics: bool = False,
738
738
  metric_list: Optional[list[str]] = None,
739
739
  top_level: bool = False,
740
740
  uids: Optional[list[str]] = None,
mlrun/db/httpdb.py CHANGED
@@ -3767,7 +3767,7 @@ class HTTPRunDB(RunDBInterface):
3767
3767
  labels: Optional[Union[str, dict[str, Optional[str]], list[str]]] = None,
3768
3768
  start: Optional[datetime] = None,
3769
3769
  end: Optional[datetime] = None,
3770
- tsdb_metrics: bool = True,
3770
+ tsdb_metrics: bool = False,
3771
3771
  metric_list: Optional[list[str]] = None,
3772
3772
  top_level: bool = False,
3773
3773
  uids: Optional[list[str]] = None,
@@ -3889,8 +3889,8 @@ class HTTPRunDB(RunDBInterface):
3889
3889
  attributes_keys = list(attributes.keys())
3890
3890
  attributes["name"] = name
3891
3891
  attributes["project"] = project
3892
- attributes["function-name"] = function_name or None
3893
- attributes["function-tag"] = function_tag or None
3892
+ attributes["function_name"] = function_name or None
3893
+ attributes["function_tag"] = function_tag or None
3894
3894
  attributes["uid"] = endpoint_id or None
3895
3895
  model_endpoint = mlrun.common.schemas.ModelEndpoint.from_flat_dict(attributes)
3896
3896
  path = f"projects/{project}/model-endpoints"
mlrun/db/nopdb.py CHANGED
@@ -631,7 +631,7 @@ class NopDB(RunDBInterface):
631
631
  labels: Optional[Union[str, dict[str, Optional[str]], list[str]]] = None,
632
632
  start: Optional[datetime.datetime] = None,
633
633
  end: Optional[datetime.datetime] = None,
634
- tsdb_metrics: bool = True,
634
+ tsdb_metrics: bool = False,
635
635
  metric_list: Optional[list[str]] = None,
636
636
  top_level: bool = False,
637
637
  uids: Optional[list[str]] = None,
@@ -14,19 +14,18 @@
14
14
 
15
15
  import json
16
16
  import posixpath
17
- import uuid
18
17
  import warnings
19
18
  from abc import ABC
19
+ from tempfile import NamedTemporaryFile
20
+ from typing import Optional
20
21
 
21
- import pandas as pd
22
22
  import semver
23
- from evidently.ui.storage.local.base import METADATA_PATH, FSLocation
24
23
 
25
24
  import mlrun.model_monitoring.applications.base as mm_base
26
25
  import mlrun.model_monitoring.applications.context as mm_context
27
- from mlrun.errors import MLRunIncompatibleVersionError
26
+ from mlrun.errors import MLRunIncompatibleVersionError, MLRunValueError
28
27
 
29
- SUPPORTED_EVIDENTLY_VERSION = semver.Version.parse("0.6.0")
28
+ SUPPORTED_EVIDENTLY_VERSION = semver.Version.parse("0.7.5")
30
29
 
31
30
 
32
31
  def _check_evidently_version(*, cur: semver.Version, ref: semver.Version) -> None:
@@ -60,37 +59,66 @@ except ModuleNotFoundError:
60
59
 
61
60
 
62
61
  if _HAS_EVIDENTLY:
63
- from evidently.suite.base_suite import Display
64
- from evidently.ui.type_aliases import STR_UUID
65
- from evidently.ui.workspace import Workspace
66
- from evidently.utils.dashboard import TemplateParams, file_html_template
62
+ from evidently.core.report import Snapshot
63
+ from evidently.legacy.ui.storage.local.base import METADATA_PATH, FSLocation
64
+ from evidently.ui.workspace import (
65
+ STR_UUID,
66
+ CloudWorkspace,
67
+ Workspace,
68
+ WorkspaceBase,
69
+ )
67
70
 
68
71
 
69
72
  class EvidentlyModelMonitoringApplicationBase(
70
73
  mm_base.ModelMonitoringApplicationBase, ABC
71
74
  ):
72
75
  def __init__(
73
- self, evidently_workspace_path: str, evidently_project_id: "STR_UUID"
76
+ self,
77
+ evidently_project_id: "STR_UUID",
78
+ evidently_workspace_path: Optional[str] = None,
79
+ cloud_workspace: bool = False,
74
80
  ) -> None:
75
81
  """
76
- A class for integrating Evidently for mlrun model monitoring within a monitoring application.
77
- Note: evidently is not installed by default in the mlrun/mlrun image.
78
- It must be installed separately to use this class.
82
+ A class for integrating Evidently for MLRun model monitoring within a monitoring application.
83
+
84
+ .. note::
85
+
86
+ The ``evidently`` package is not installed by default in the mlrun/mlrun image.
87
+ It must be installed separately to use this class.
79
88
 
80
- :param evidently_workspace_path: (str) The path to the Evidently workspace.
81
89
  :param evidently_project_id: (str) The ID of the Evidently project.
90
+ :param evidently_workspace_path: (str) The path to the Evidently workspace.
91
+ :param cloud_workspace: (bool) Whether the workspace is an Evidently Cloud workspace.
82
92
  """
83
93
 
84
94
  # TODO : more then one project (mep -> project)
85
95
  if not _HAS_EVIDENTLY:
86
96
  raise ModuleNotFoundError("Evidently is not installed - the app cannot run")
87
- self._log_location(evidently_workspace_path)
88
- self.evidently_workspace = Workspace.create(evidently_workspace_path)
97
+ self.evidently_workspace_path = evidently_workspace_path
98
+ if cloud_workspace:
99
+ self.get_workspace = self.get_cloud_workspace
100
+ self.evidently_workspace = self.get_workspace()
89
101
  self.evidently_project_id = evidently_project_id
90
102
  self.evidently_project = self.evidently_workspace.get_project(
91
103
  evidently_project_id
92
104
  )
93
105
 
106
+ def get_workspace(self) -> WorkspaceBase:
107
+ """Get the Evidently workspace. Override this method for customize access to the workspace."""
108
+ if self.evidently_workspace_path:
109
+ self._log_location(self.evidently_workspace_path)
110
+ self.evidently_workspace = Workspace.create(self.evidently_workspace_path)
111
+ else:
112
+ raise MLRunValueError(
113
+ "A local workspace could not be created as `evidently_workspace_path` is not set.\n"
114
+ "If you intend to use a cloud workspace, please use `cloud_workspace=True` and set the "
115
+ "`EVIDENTLY_API_KEY` environment variable. In other cases, override this method."
116
+ )
117
+
118
+ def get_cloud_workspace(self) -> CloudWorkspace:
119
+ """Load the Evidently cloud workspace according to the `EVIDENTLY_API_KEY` environment variable."""
120
+ return CloudWorkspace()
121
+
94
122
  @staticmethod
95
123
  def _log_location(evidently_workspace_path):
96
124
  # TODO remove function + usage after solving issue ML-9530
@@ -128,7 +156,7 @@ class EvidentlyModelMonitoringApplicationBase(
128
156
  @staticmethod
129
157
  def log_evidently_object(
130
158
  monitoring_context: mm_context.MonitoringApplicationContext,
131
- evidently_object: "Display",
159
+ evidently_object: "Snapshot",
132
160
  artifact_name: str,
133
161
  unique_per_endpoint: bool = True,
134
162
  ) -> None:
@@ -141,56 +169,15 @@ class EvidentlyModelMonitoringApplicationBase(
141
169
  This method should be called on special occasions only.
142
170
 
143
171
  :param monitoring_context: (MonitoringApplicationContext) The monitoring context to process.
144
- :param evidently_object: (Display) The Evidently display to log, e.g. a report or a test suite object.
172
+ :param evidently_object: (Snapshot) The Evidently run to log, e.g. a report run.
145
173
  :param artifact_name: (str) The name for the logged artifact.
146
174
  :param unique_per_endpoint: by default ``True``, we will log different artifact for each model endpoint,
147
175
  set to ``False`` without changing item key will cause artifact override.
148
176
  """
149
- evidently_object_html = evidently_object.get_html()
150
- monitoring_context.log_artifact(
151
- artifact_name,
152
- body=evidently_object_html.encode("utf-8"),
153
- format="html",
154
- unique_per_endpoint=unique_per_endpoint,
155
- )
156
-
157
- def log_project_dashboard(
158
- self,
159
- monitoring_context: mm_context.MonitoringApplicationContext,
160
- timestamp_start: pd.Timestamp,
161
- timestamp_end: pd.Timestamp,
162
- artifact_name: str = "dashboard",
163
- unique_per_endpoint: bool = True,
164
- ) -> None:
165
- """
166
- Logs an Evidently project dashboard.
167
-
168
- .. caution::
169
-
170
- Logging Evidently dashboards in every model monitoring window may cause scale issues.
171
- This method should be called on special occasions only.
172
-
173
- :param monitoring_context: (MonitoringApplicationContext) The monitoring context to process.
174
- :param timestamp_start: (pd.Timestamp) The start timestamp for the dashboard data.
175
- :param timestamp_end: (pd.Timestamp) The end timestamp for the dashboard data.
176
- :param artifact_name: (str) The name for the logged artifact.
177
- :param unique_per_endpoint: by default ``True``, we will log different artifact for each model endpoint,
178
- set to ``False`` without changing item key will cause artifact override.
179
- """
180
-
181
- dashboard_info = self.evidently_project.build_dashboard_info(
182
- timestamp_start, timestamp_end
183
- )
184
- template_params = TemplateParams(
185
- dashboard_id="pd_" + str(uuid.uuid4()).replace("-", ""),
186
- dashboard_info=dashboard_info,
187
- additional_graphs={},
188
- )
189
-
190
- dashboard_html = file_html_template(params=template_params)
191
- monitoring_context.log_artifact(
192
- artifact_name,
193
- body=dashboard_html.encode("utf-8"),
194
- format="html",
195
- unique_per_endpoint=unique_per_endpoint,
196
- )
177
+ with NamedTemporaryFile(suffix=".html") as file:
178
+ evidently_object.save_html(filename=file.name)
179
+ monitoring_context.log_artifact(
180
+ artifact_name,
181
+ local_path=file.name,
182
+ unique_per_endpoint=unique_per_endpoint,
183
+ )
@@ -25,6 +25,7 @@ from types import TracebackType
25
25
  from typing import Any, NamedTuple, Optional, Union, cast
26
26
 
27
27
  import nuclio_sdk
28
+ import pandas as pd
28
29
 
29
30
  import mlrun
30
31
  import mlrun.common.schemas.model_monitoring.constants as mm_constants
@@ -673,9 +674,15 @@ class MonitoringApplicationController:
673
674
  """
674
675
  logger.info("Starting monitoring controller chief")
675
676
  applications_names = []
676
- endpoints = self.project_obj.list_model_endpoints(
677
- metric_list=["last_request"]
678
- ).endpoints
677
+ endpoints = self.project_obj.list_model_endpoints(tsdb_metrics=False).endpoints
678
+ last_request_dict = self.tsdb_connector.get_last_request(
679
+ endpoint_ids=[mep.metadata.uid for mep in endpoints]
680
+ )
681
+ if isinstance(last_request_dict, pd.DataFrame):
682
+ last_request_dict = last_request_dict.set_index(
683
+ mm_constants.EventFieldType.ENDPOINT_ID
684
+ )[mm_constants.ModelEndpointSchema.LAST_REQUEST].to_dict()
685
+
679
686
  if not endpoints:
680
687
  logger.info("No model endpoints found", project=self.project)
681
688
  return
@@ -721,16 +728,20 @@ class MonitoringApplicationController:
721
728
  with schedules.ModelMonitoringSchedulesFileChief(
722
729
  self.project
723
730
  ) as schedule_file:
724
- futures = {
725
- pool.submit(
726
- self.endpoint_to_regular_event,
727
- endpoint,
728
- policy,
729
- set(applications_names),
730
- schedule_file,
731
- ): endpoint
732
- for endpoint in endpoints
733
- }
731
+ for endpoint in endpoints:
732
+ last_request = last_request_dict.get(endpoint.metadata.uid, None)
733
+ if isinstance(last_request, float):
734
+ last_request = pd.to_datetime(last_request, unit="s", utc=True)
735
+ endpoint.status.last_request = last_request
736
+ futures = {
737
+ pool.submit(
738
+ self.endpoint_to_regular_event,
739
+ endpoint,
740
+ policy,
741
+ set(applications_names),
742
+ schedule_file,
743
+ ): endpoint
744
+ }
734
745
  for future in concurrent.futures.as_completed(futures):
735
746
  if future.exception():
736
747
  exception = future.exception()
@@ -455,12 +455,20 @@ class V3IOTSDBConnector(TSDBConnector):
455
455
  # Delete all tables
456
456
  tables = mm_schemas.V3IOTSDBTables.list()
457
457
  for table_to_delete in tables:
458
- try:
459
- self.frames_client.delete(backend=_TSDB_BE, table=table_to_delete)
460
- except v3io_frames.DeleteError as e:
458
+ if table_to_delete in self.tables:
459
+ try:
460
+ self.frames_client.delete(
461
+ backend=_TSDB_BE, table=self.tables[table_to_delete]
462
+ )
463
+ except v3io_frames.DeleteError as e:
464
+ logger.warning(
465
+ f"Failed to delete TSDB table '{table_to_delete}'",
466
+ err=mlrun.errors.err_to_str(e),
467
+ )
468
+ else:
461
469
  logger.warning(
462
- f"Failed to delete TSDB table '{table}'",
463
- err=mlrun.errors.err_to_str(e),
470
+ f"Skipping deletion: table '{table_to_delete}' is not among the initialized tables.",
471
+ initialized_tables=list(self.tables.keys()),
464
472
  )
465
473
 
466
474
  # Final cleanup of tsdb path
mlrun/projects/project.py CHANGED
@@ -3796,7 +3796,7 @@ class MlrunProject(ModelObj):
3796
3796
  top_level: bool = False,
3797
3797
  uids: Optional[list[str]] = None,
3798
3798
  latest_only: bool = False,
3799
- tsdb_metrics: bool = True,
3799
+ tsdb_metrics: bool = False,
3800
3800
  metric_list: Optional[list[str]] = None,
3801
3801
  ) -> mlrun.common.schemas.ModelEndpointList:
3802
3802
  """
mlrun/render.py CHANGED
@@ -361,9 +361,6 @@ def get_tblframe(df, display, classes=None):
361
361
  return ipython_display(html, display)
362
362
 
363
363
 
364
- uid_template = '<div title="{}"><a href="{}/{}/{}/jobs/monitor/{}/overview" target="_blank" >...{}</a></div>'
365
-
366
-
367
364
  def runs_to_html(
368
365
  df: pd.DataFrame,
369
366
  display: bool = True,
@@ -379,15 +376,14 @@ def runs_to_html(
379
376
  df["results"] = df["results"].apply(dict_html)
380
377
  df["start"] = df["start"].apply(time_str)
381
378
  df["parameters"] = df["parameters"].apply(dict_html)
379
+ uid_template = '<div title="{}"><a href="{}" target="_blank" >...{}</a></div>'
380
+
382
381
  if config.resolve_ui_url():
383
382
  df["uid"] = df.apply(
384
383
  lambda x: uid_template.format(
385
- x.uid,
386
- config.resolve_ui_url(),
387
- config.ui.projects_prefix,
388
- x.project,
389
- x.uid,
390
- x.uid[-8:],
384
+ x["uid"],
385
+ mlrun.utils.get_run_url(x["project"], x["uid"], x["name"]),
386
+ x["uid"][-8:],
391
387
  ),
392
388
  axis=1,
393
389
  )
@@ -1,4 +1,4 @@
1
1
  {
2
- "git_commit": "0ca4904273872830995df1aa5394fa3d8c5a5f8c",
3
- "version": "1.8.0-rc56"
2
+ "git_commit": "5bc8ce60aee10ba60a10e6cf603f9b1956a81fc8",
3
+ "version": "1.8.0-rc58"
4
4
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mlrun
3
- Version: 1.8.0rc56
3
+ Version: 1.8.0rc58
4
4
  Summary: Tracking and config of machine learning runs
5
5
  Home-page: https://github.com/mlrun/mlrun
6
6
  Author: Yaron Haviv
@@ -52,7 +52,7 @@ 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
54
  Requires-Dist: mlrun-pipelines-kfp-common~=0.3.12
55
- Requires-Dist: mlrun-pipelines-kfp-v1-8~=0.3.9; python_version < "3.11"
55
+ Requires-Dist: mlrun-pipelines-kfp-v1-8~=0.3.10; python_version < "3.11"
56
56
  Requires-Dist: docstring_parser~=0.16
57
57
  Requires-Dist: aiosmtplib~=3.0
58
58
  Provides-Extra: s3
@@ -79,7 +79,7 @@ Requires-Dist: google-cloud-bigquery-storage~=2.17; extra == "google-cloud"
79
79
  Requires-Dist: google-cloud==0.34; extra == "google-cloud"
80
80
  Requires-Dist: gcsfs<2024.7,>=2023.9.2; extra == "google-cloud"
81
81
  Provides-Extra: kafka
82
- Requires-Dist: kafka-python~=2.0; extra == "kafka"
82
+ Requires-Dist: kafka-python~=2.1.0; extra == "kafka"
83
83
  Requires-Dist: avro~=1.11; extra == "kafka"
84
84
  Provides-Extra: redis
85
85
  Requires-Dist: redis~=4.3; extra == "redis"
@@ -118,7 +118,7 @@ Requires-Dist: timelength~=1.1; extra == "api"
118
118
  Requires-Dist: memray~=1.12; sys_platform != "win32" and extra == "api"
119
119
  Requires-Dist: aiosmtplib~=3.0; extra == "api"
120
120
  Requires-Dist: pydantic<2,>=1; extra == "api"
121
- Requires-Dist: mlrun-pipelines-kfp-v1-8[kfp]~=0.3.9; python_version < "3.11" and extra == "api"
121
+ Requires-Dist: mlrun-pipelines-kfp-v1-8[kfp]~=0.3.10; python_version < "3.11" and extra == "api"
122
122
  Requires-Dist: grpcio~=1.70.0; extra == "api"
123
123
  Provides-Extra: all
124
124
  Requires-Dist: adlfs==2023.9.0; extra == "all"
@@ -139,7 +139,7 @@ Requires-Dist: google-cloud-bigquery[bqstorage,pandas]==3.14.1; extra == "all"
139
139
  Requires-Dist: google-cloud-storage==2.14.0; extra == "all"
140
140
  Requires-Dist: google-cloud==0.34; extra == "all"
141
141
  Requires-Dist: graphviz~=0.20.0; extra == "all"
142
- Requires-Dist: kafka-python~=2.0; extra == "all"
142
+ Requires-Dist: kafka-python~=2.1.0; extra == "all"
143
143
  Requires-Dist: mlflow~=2.16; extra == "all"
144
144
  Requires-Dist: msrest~=0.6.21; extra == "all"
145
145
  Requires-Dist: oss2==2.18.1; extra == "all"
@@ -170,7 +170,7 @@ Requires-Dist: google-cloud-bigquery[bqstorage,pandas]==3.14.1; extra == "comple
170
170
  Requires-Dist: google-cloud-storage==2.14.0; extra == "complete"
171
171
  Requires-Dist: google-cloud==0.34; extra == "complete"
172
172
  Requires-Dist: graphviz~=0.20.0; extra == "complete"
173
- Requires-Dist: kafka-python~=2.0; extra == "complete"
173
+ Requires-Dist: kafka-python~=2.1.0; extra == "complete"
174
174
  Requires-Dist: mlflow~=2.16; extra == "complete"
175
175
  Requires-Dist: msrest~=0.6.21; extra == "complete"
176
176
  Requires-Dist: oss2==2.18.1; extra == "complete"
@@ -209,10 +209,10 @@ Requires-Dist: graphviz~=0.20.0; extra == "complete-api"
209
209
  Requires-Dist: grpcio~=1.70.0; extra == "complete-api"
210
210
  Requires-Dist: humanfriendly~=10.0; extra == "complete-api"
211
211
  Requires-Dist: igz-mgmt~=0.4.1; extra == "complete-api"
212
- Requires-Dist: kafka-python~=2.0; extra == "complete-api"
212
+ Requires-Dist: kafka-python~=2.1.0; extra == "complete-api"
213
213
  Requires-Dist: memray~=1.12; sys_platform != "win32" and extra == "complete-api"
214
214
  Requires-Dist: mlflow~=2.16; extra == "complete-api"
215
- Requires-Dist: mlrun-pipelines-kfp-v1-8[kfp]~=0.3.9; python_version < "3.11" and extra == "complete-api"
215
+ Requires-Dist: mlrun-pipelines-kfp-v1-8[kfp]~=0.3.10; python_version < "3.11" and extra == "complete-api"
216
216
  Requires-Dist: msrest~=0.6.21; extra == "complete-api"
217
217
  Requires-Dist: objgraph~=3.6; extra == "complete-api"
218
218
  Requires-Dist: oss2==2.18.1; extra == "complete-api"
@@ -7,7 +7,7 @@ mlrun/features.py,sha256=ReBaNGsBYXqcbgI012n-SO_j6oHIbk_Vpv0CGPXbUmo,15842
7
7
  mlrun/k8s_utils.py,sha256=-RmKAlSBo_qVeJa1bIiwi6TUyuEpb4AhF7wIQ_H5ZJ0,8909
8
8
  mlrun/lists.py,sha256=-nbmqScRia0v2IdSHt6Pd0fLRLSEtdB9bSxyD92BWvs,8562
9
9
  mlrun/model.py,sha256=5YedJfY9La867fhW8sZJdWb4FwyXPR1r1C5SqYyB4_w,85864
10
- mlrun/render.py,sha256=940H9fBBFeghH4dlifbURvtjlvw4GlWdAXezN6ky4rI,13275
10
+ mlrun/render.py,sha256=5DlhD6JtzHgmj5RVlpaYiHGhX84Q7qdi4RCEUj2UMgw,13195
11
11
  mlrun/run.py,sha256=0ORoMtEq6-D1pZLHcYMb2szCFXS3P6N8XhAzu6Ud1NA,45112
12
12
  mlrun/secrets.py,sha256=dZPdkc_zzfscVQepOHUwmzFqnBavDCBXV9DQoH_eIYM,7800
13
13
  mlrun/alerts/__init__.py,sha256=0gtG1BG0DXxFrXegIkjbM1XEN4sP9ODo0ucXrNld1hU,601
@@ -85,7 +85,7 @@ mlrun/datastore/__init__.py,sha256=81ulmQnRk1ENvwYOdetxqsLnr2gYVtW-KsvF-tY1Jxk,5
85
85
  mlrun/datastore/alibaba_oss.py,sha256=k-OHVe08HjMewlkpsT657CbOiVFAfSq9_EqhCE-k86s,4940
86
86
  mlrun/datastore/azure_blob.py,sha256=SzAcHYSXkm8Zpopz2Ea-rWVClH0URocUazcNK04S9W0,12776
87
87
  mlrun/datastore/base.py,sha256=9R3lwB_L4hv5WW2q24WS62_KTh-wO4UG6pwzISZU6bM,26231
88
- mlrun/datastore/datastore.py,sha256=frUYYP4i8ZmnY8GNXSgN_3x_exRgRPfxrCtAGEUifEU,9478
88
+ mlrun/datastore/datastore.py,sha256=AXXPgHpSG8Ig1RtTDGfdCJu4UT-AQPC43FGBOptIVOg,9484
89
89
  mlrun/datastore/datastore_profile.py,sha256=RRpb5TfTDBOnZQGSr6Zlmi1QSPHRDssBlWGLIpNBHM0,23860
90
90
  mlrun/datastore/dbfs_store.py,sha256=QkDRzwFnvm7CgEg4NuGxes6tBgKDyhX0CiBUvK8c9pk,6568
91
91
  mlrun/datastore/filestore.py,sha256=OcykjzhbUAZ6_Cb9bGAXRL2ngsOpxXSb4rR0lyogZtM,3773
@@ -108,10 +108,10 @@ mlrun/datastore/wasbfs/__init__.py,sha256=s5Ul-0kAhYqFjKDR2X0O2vDGDbLQQduElb32Ev
108
108
  mlrun/datastore/wasbfs/fs.py,sha256=ge8NK__5vTcFT-krI155_8RDUywQw4SIRX6BWATXy9Q,6299
109
109
  mlrun/db/__init__.py,sha256=WqJ4x8lqJ7ZoKbhEyFqkYADd9P6E3citckx9e9ZLcIU,1163
110
110
  mlrun/db/auth_utils.py,sha256=hpg8D2r82oN0BWabuWN04BTNZ7jYMAF242YSUpK7LFM,5211
111
- mlrun/db/base.py,sha256=4ILHlN9vMw3n78qiiTJ1997ykgDKKqxDkLl7lHVVKJg,30814
111
+ mlrun/db/base.py,sha256=fiXni5U4ZhHCA6Qxk19ORZnshZcEzc_8H1quzPkmtsc,30815
112
112
  mlrun/db/factory.py,sha256=yP2vVmveUE7LYTCHbS6lQIxP9rW--zdISWuPd_I3d_4,2111
113
- mlrun/db/httpdb.py,sha256=y_6uf3hTwZky1KOgANS4bbx_WxYMQNDrdMkF130rdVQ,232653
114
- mlrun/db/nopdb.py,sha256=4TujePdRef5WpZY-TiGL9BmXphilNAypKREiGnqnKtg,27196
113
+ mlrun/db/httpdb.py,sha256=zhfGhHWNvRSrBusPHiEgk9R5YwRbWREQ21ziVlY0IZ0,232654
114
+ mlrun/db/nopdb.py,sha256=ttC1pe95rZdMgiLG9kzrjZFYB1gWj3SEqeqK5c0q0w4,27197
115
115
  mlrun/feature_store/__init__.py,sha256=SlI845bWt6xX34SXunHHqhmFAR9-5v2ak8N-qpcAPGo,1328
116
116
  mlrun/feature_store/api.py,sha256=qKj5Tk6prTab6XWatWhBuPRVp0eJEctoxRMN2wz48vA,32168
117
117
  mlrun/feature_store/common.py,sha256=Z7USI-d1fo0iwBMsqMBtJflJfyuiV3BLoDXQPSAoBAs,12826
@@ -219,7 +219,7 @@ mlrun/launcher/local.py,sha256=775HY-8S9LFUX5ubGXrLO0N1lVh8bn-DHFmNYuNqQPA,11451
219
219
  mlrun/launcher/remote.py,sha256=rLJW4UAnUT5iUb4BsGBOAV3K4R29a0X4lFtRkVKlyYU,7709
220
220
  mlrun/model_monitoring/__init__.py,sha256=ELy7njEtZnz09Dc6PGZSFFEGtnwI15bJNWM3Pj4_YIs,753
221
221
  mlrun/model_monitoring/api.py,sha256=LU58dzE4QZiMH23lgiqfI__3m2E3eEZP-DQe2ioUSwM,28317
222
- mlrun/model_monitoring/controller.py,sha256=V5eLOIYsVB6SYMlDQD3--FEW2qN133D1J5I61yzMDn0,36880
222
+ mlrun/model_monitoring/controller.py,sha256=UDJ0BiIO7fknr_oCU0fi4N34bNuGWDxxF6bAerjUOnI,37581
223
223
  mlrun/model_monitoring/features_drift_table.py,sha256=c6GpKtpOJbuT1u5uMWDL_S-6N4YPOmlktWMqPme3KFY,25308
224
224
  mlrun/model_monitoring/helpers.py,sha256=8QsoYRPOVSnR3Lcv99m4XYrp_cR6hSqBUflYSOkJmFQ,21019
225
225
  mlrun/model_monitoring/stream_processing.py,sha256=Gu3TQzYoNjbreZYI73-F49QpYrod9RZOyGSgininBsA,33373
@@ -232,7 +232,7 @@ mlrun/model_monitoring/applications/context.py,sha256=VfyPCIdO4z73uqFcJs87jzSI4P
232
232
  mlrun/model_monitoring/applications/histogram_data_drift.py,sha256=2qgfFmrpHf-x0_EaHD-0T28piwSQzw-HH71aV1GwbZs,15389
233
233
  mlrun/model_monitoring/applications/results.py,sha256=_qmj6TWT0SR2bi7gUyRKBU418eGgGoLW2_hTJ7S-ock,5782
234
234
  mlrun/model_monitoring/applications/evidently/__init__.py,sha256=-DqdPnBSrjZhFvKOu_Ie3MiFvlur9sPTZpZ1u0_1AE8,690
235
- mlrun/model_monitoring/applications/evidently/base.py,sha256=3loXT5gOn5v7j2CiXDQnA0cQXroItBSso6aU0t_pzBs,7851
235
+ mlrun/model_monitoring/applications/evidently/base.py,sha256=dCC1wWLzx3f79JxKRmQPaXks2Oex2thxA27w9jdP8-I,7331
236
236
  mlrun/model_monitoring/db/__init__.py,sha256=r47xPGZpIfMuv8J3PQCZTSqVPMhUta4sSJCZFKcS7FM,644
237
237
  mlrun/model_monitoring/db/_schedules.py,sha256=RWn4wtKsIXg668gMLpxO9I8GlkxvPSaA5y7w-wFDcgE,9048
238
238
  mlrun/model_monitoring/db/_stats.py,sha256=VVMWLMqG3Us3ozBkLaokJF22Ewv8WKmVE1-OvS_g9vA,6943
@@ -246,7 +246,7 @@ mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connection.py,sha256=8xo2O_yQrJ
246
246
  mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py,sha256=h0ZrNgOwTlBRd_DaYDc6eeVM9f_8CLJMUPEAIrZpbyU,37803
247
247
  mlrun/model_monitoring/db/tsdb/v3io/__init__.py,sha256=aL3bfmQsUQ-sbvKGdNihFj8gLCK3mSys0qDcXtYOwgc,616
248
248
  mlrun/model_monitoring/db/tsdb/v3io/stream_graph_steps.py,sha256=_-zo9relCDtjGgievxAcAP9gVN9nDWs8BzGtFwTjb9M,6284
249
- mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py,sha256=7USfELnW2pwDhjbmFb0nmdqwq7glKfYt-HE7GxPlsEM,46777
249
+ mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py,sha256=aDdyHWJLOG-3EgPTJgbEzOOQf5NetpFQk_HdQbs5_zI,47160
250
250
  mlrun/model_monitoring/metrics/__init__.py,sha256=6CsTXAxeLbbf8yfCADTaxmiavqwrLEdYFJ-qc5kgDAY,569
251
251
  mlrun/model_monitoring/metrics/histogram_distance.py,sha256=E9_WIl2vd6qNvoHVHoFcnuQk3ekbFWOdi8aU7sHrfk4,4724
252
252
  mlrun/package/__init__.py,sha256=v7VDyK9kDOOuDvFo4oiGV2fx-vM1KL7fdN9pGLakhUQ,7008
@@ -271,7 +271,7 @@ mlrun/platforms/iguazio.py,sha256=6VBTq8eQ3mzT96tzjYhAtcMQ2VjF4x8LpIPW5DAcX2Q,13
271
271
  mlrun/projects/__init__.py,sha256=0Krf0WIKfnZa71WthYOg0SoaTodGg3sV_hK3f_OlTPI,1220
272
272
  mlrun/projects/operations.py,sha256=TzPbTYBgmYrjxTKP_wOtBJYFFFwDCQtaVvF1Snr0TfM,20029
273
273
  mlrun/projects/pipelines.py,sha256=wud7ezeEmhIJvfYE_wzQbA4ygEfGXHtbOtoOpan6poY,48556
274
- mlrun/projects/project.py,sha256=QdxXu66Oo-NIrBmzccVdolI-38P-i3YOOwJ2dozbaYA,236617
274
+ mlrun/projects/project.py,sha256=d6jUmjV-fkXOfQQPdp_5vgAsjVithJxBCnK07pgRies,236618
275
275
  mlrun/runtimes/__init__.py,sha256=J9Sy2HiyMlztNv6VUurMzF5H2XzttNil8nRsWDsqLyg,8923
276
276
  mlrun/runtimes/base.py,sha256=EL14Kmc1vWEjnBPJwLj5hHC6CtRAQHJLmohCD3sFEHo,37855
277
277
  mlrun/runtimes/daskjob.py,sha256=JwuGvOiPsxEDHHMMUS4Oie4hLlYYIZwihAl6DjroTY0,19521
@@ -341,11 +341,11 @@ mlrun/utils/notifications/notification/mail.py,sha256=ZyJ3eqd8simxffQmXzqd3bgbAq
341
341
  mlrun/utils/notifications/notification/slack.py,sha256=eQvmctTh6wIG5xVOesLLV9S1-UUCu5UEQ9JIJOor3ts,7183
342
342
  mlrun/utils/notifications/notification/webhook.py,sha256=zxh8CAlbPnTazsk6r05X5TKwqUZVOH5KBU2fJbzQlG4,5330
343
343
  mlrun/utils/version/__init__.py,sha256=7kkrB7hEZ3cLXoWj1kPoDwo4MaswsI2JVOBpbKgPAgc,614
344
- mlrun/utils/version/version.json,sha256=k6o6UcldwBPkZAw_sxJo1O93rZ9W-Pu40JYg7gRAAcc,89
344
+ mlrun/utils/version/version.json,sha256=5Ady9iLdisYS2pWLx9m0MmBvL7vQSDIWw8M2jXrf_LI,89
345
345
  mlrun/utils/version/version.py,sha256=eEW0tqIAkU9Xifxv8Z9_qsYnNhn3YH7NRAfM-pPLt1g,1878
346
- mlrun-1.8.0rc56.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
347
- mlrun-1.8.0rc56.dist-info/METADATA,sha256=_NRoILMfVwFcryNXxUUyEskozmBYxI9WeKMbUBllUjw,25794
348
- mlrun-1.8.0rc56.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
349
- mlrun-1.8.0rc56.dist-info/entry_points.txt,sha256=1Owd16eAclD5pfRCoJpYC2ZJSyGNTtUr0nCELMioMmU,46
350
- mlrun-1.8.0rc56.dist-info/top_level.txt,sha256=NObLzw3maSF9wVrgSeYBv-fgnHkAJ1kEkh12DLdd5KM,6
351
- mlrun-1.8.0rc56.dist-info/RECORD,,
346
+ mlrun-1.8.0rc58.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
347
+ mlrun-1.8.0rc58.dist-info/METADATA,sha256=hBwa0_dYNXJPkLjVMZwurgrgVJYeXUbm44Sr_GUlCTg,25805
348
+ mlrun-1.8.0rc58.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
349
+ mlrun-1.8.0rc58.dist-info/entry_points.txt,sha256=1Owd16eAclD5pfRCoJpYC2ZJSyGNTtUr0nCELMioMmU,46
350
+ mlrun-1.8.0rc58.dist-info/top_level.txt,sha256=NObLzw3maSF9wVrgSeYBv-fgnHkAJ1kEkh12DLdd5KM,6
351
+ mlrun-1.8.0rc58.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.3.1)
2
+ Generator: setuptools (80.4.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5