mlrun 1.8.0rc12__py3-none-any.whl → 1.8.0rc15__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.

Files changed (33) hide show
  1. mlrun/artifacts/document.py +32 -6
  2. mlrun/common/formatters/artifact.py +1 -1
  3. mlrun/common/schemas/partition.py +23 -18
  4. mlrun/common/types.py +1 -0
  5. mlrun/config.py +3 -2
  6. mlrun/datastore/vectorstore.py +69 -26
  7. mlrun/db/base.py +21 -1
  8. mlrun/db/httpdb.py +53 -17
  9. mlrun/db/nopdb.py +12 -1
  10. mlrun/execution.py +43 -11
  11. mlrun/model_monitoring/applications/_application_steps.py +1 -1
  12. mlrun/model_monitoring/applications/base.py +2 -3
  13. mlrun/model_monitoring/applications/context.py +94 -71
  14. mlrun/model_monitoring/db/tsdb/tdengine/schemas.py +0 -21
  15. mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py +3 -3
  16. mlrun/projects/pipelines.py +13 -6
  17. mlrun/projects/project.py +80 -2
  18. mlrun/runtimes/nuclio/function.py +2 -1
  19. mlrun/runtimes/nuclio/serving.py +10 -5
  20. mlrun/serving/routers.py +16 -7
  21. mlrun/serving/states.py +14 -6
  22. mlrun/serving/v2_serving.py +11 -6
  23. mlrun/utils/helpers.py +23 -1
  24. mlrun/utils/notifications/notification/base.py +1 -1
  25. mlrun/utils/notifications/notification/webhook.py +13 -12
  26. mlrun/utils/notifications/notification_pusher.py +18 -23
  27. mlrun/utils/version/version.json +2 -2
  28. {mlrun-1.8.0rc12.dist-info → mlrun-1.8.0rc15.dist-info}/METADATA +14 -8
  29. {mlrun-1.8.0rc12.dist-info → mlrun-1.8.0rc15.dist-info}/RECORD +33 -33
  30. {mlrun-1.8.0rc12.dist-info → mlrun-1.8.0rc15.dist-info}/LICENSE +0 -0
  31. {mlrun-1.8.0rc12.dist-info → mlrun-1.8.0rc15.dist-info}/WHEEL +0 -0
  32. {mlrun-1.8.0rc12.dist-info → mlrun-1.8.0rc15.dist-info}/entry_points.txt +0 -0
  33. {mlrun-1.8.0rc12.dist-info → mlrun-1.8.0rc15.dist-info}/top_level.txt +0 -0
mlrun/serving/states.py CHANGED
@@ -755,11 +755,17 @@ class RouterStep(TaskStep):
755
755
  :param class_args: class init arguments
756
756
  :param handler: class handler to invoke on run/event
757
757
  :param function: function this step should run in
758
- :param creation_strategy: model endpoint creation strategy :
759
- * overwrite - Create a new model endpoint and delete the last old one if it exists.
760
- * inplace - Use the existing model endpoint if it already exists (default).
761
- * archive - Preserve the old model endpoint and create a new one,
762
- tagging it as the latest.
758
+ :param creation_strategy: Strategy for creating or updating the model endpoint:
759
+ * **overwrite**:
760
+ 1. If model endpoints with the same name exist, delete the `latest` one.
761
+ 2. Create a new model endpoint entry and set it as `latest`.
762
+ * **inplace** (default):
763
+ 1. If model endpoints with the same name exist, update the `latest` entry.
764
+ 2. Otherwise, create a new entry.
765
+ * **archive**:
766
+ 1. If model endpoints with the same name exist, preserve them.
767
+ 2. Create a new model endpoint with the same name and set it to `latest`.
768
+
763
769
  """
764
770
 
765
771
  if not route and not class_name and not handler:
@@ -770,7 +776,9 @@ class RouterStep(TaskStep):
770
776
  class_args,
771
777
  handler=handler,
772
778
  model_endpoint_creation_strategy=creation_strategy,
773
- endpoint_type=schemas.EndpointType.NODE_EP,
779
+ endpoint_type=schemas.EndpointType.LEAF_EP
780
+ if self.class_name and "serving.VotingEnsemble" in self.class_name
781
+ else schemas.EndpointType.NODE_EP,
774
782
  )
775
783
  route.function = function or route.function
776
784
 
@@ -558,7 +558,7 @@ class _ModelLogPusher:
558
558
  def _init_endpoint_record(
559
559
  graph_server: GraphServer,
560
560
  model: V2ModelServer,
561
- creation_strategy: str,
561
+ creation_strategy: mlrun.common.schemas.ModelEndpointCreationStrategy,
562
562
  endpoint_type: mlrun.common.schemas.EndpointType,
563
563
  ) -> Union[str, None]:
564
564
  """
@@ -569,11 +569,16 @@ def _init_endpoint_record(
569
569
  :param graph_server: A GraphServer object which will be used for getting the function uri.
570
570
  :param model: Base model serving class (v2). It contains important details for the model endpoint record
571
571
  such as model name, model path, and model version.
572
- :param creation_strategy: model endpoint creation strategy :
573
- * overwrite - Create a new model endpoint and delete the last old one if it exists.
574
- * inplace - Use the existing model endpoint if it already exists (default).
575
- * archive - Preserve the old model endpoint and create a new one,
576
- tagging it as the latest.
572
+ :param creation_strategy: Strategy for creating or updating the model endpoint:
573
+ * **overwrite**:
574
+ 1. If model endpoints with the same name exist, delete the `latest` one.
575
+ 2. Create a new model endpoint entry and set it as `latest`.
576
+ * **inplace** (default):
577
+ 1. If model endpoints with the same name exist, update the `latest` entry.
578
+ 2. Otherwise, create a new entry.
579
+ * **archive**:
580
+ 1. If model endpoints with the same name exist, preserve them.
581
+ 2. Create a new model endpoint with the same name and set it to `latest`.
577
582
  :param endpoint_type model endpoint type
578
583
 
579
584
  :return: Model endpoint unique ID.
mlrun/utils/helpers.py CHANGED
@@ -26,7 +26,7 @@ import sys
26
26
  import typing
27
27
  import uuid
28
28
  import warnings
29
- from datetime import datetime, timezone
29
+ from datetime import datetime, timedelta, timezone
30
30
  from importlib import import_module, reload
31
31
  from os import path
32
32
  from types import ModuleType
@@ -405,6 +405,28 @@ def now_date(tz: timezone = timezone.utc) -> datetime:
405
405
  return datetime.now(tz=tz)
406
406
 
407
407
 
408
+ def datetime_to_mysql_ts(datetime_object: datetime) -> datetime:
409
+ """
410
+ Convert a Python datetime object to a MySQL-compatible timestamp string,
411
+ rounded to the nearest millisecond.
412
+ Example: 2024-12-18T16:36:05.235687+00:00 -> 2024-12-18T16:36:05.236000
413
+
414
+ :param datetime_object: A Python datetime object.
415
+
416
+ :return: A MySQL-compatible timestamp string with millisecond precision.
417
+ """
418
+ if not datetime_object.tzinfo:
419
+ datetime_object = datetime_object.replace(tzinfo=timezone.utc)
420
+
421
+ # Round to the nearest millisecond
422
+ ms = round(datetime_object.microsecond / 1000) * 1000
423
+ if ms == 1000000:
424
+ datetime_object += timedelta(seconds=1)
425
+ ms = 0
426
+
427
+ return datetime_object.replace(microsecond=ms)
428
+
429
+
408
430
  def datetime_min(tz: timezone = timezone.utc) -> datetime:
409
431
  return datetime(1970, 1, 1, tzinfo=tz)
410
432
 
@@ -57,7 +57,7 @@ class NotificationBase:
57
57
  typing.Union[mlrun.common.schemas.NotificationSeverity, str]
58
58
  ] = mlrun.common.schemas.NotificationSeverity.INFO,
59
59
  runs: typing.Optional[typing.Union[mlrun.lists.RunList, list]] = None,
60
- custom_html: typing.Optional[typing.Optional[str]] = None,
60
+ custom_html: typing.Optional[str] = None,
61
61
  alert: typing.Optional[mlrun.common.schemas.AlertConfig] = None,
62
62
  event_data: typing.Optional[mlrun.common.schemas.Event] = None,
63
63
  ):
@@ -12,6 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ import re
15
16
  import typing
16
17
 
17
18
  import aiohttp
@@ -93,7 +94,6 @@ class WebhookNotification(NotificationBase):
93
94
 
94
95
  @staticmethod
95
96
  def _serialize_runs_in_request_body(override_body, runs):
96
- str_parsed_runs = ""
97
97
  runs = runs or []
98
98
 
99
99
  def parse_runs():
@@ -105,22 +105,23 @@ class WebhookNotification(NotificationBase):
105
105
  parsed_run = {
106
106
  "project": run["metadata"]["project"],
107
107
  "name": run["metadata"]["name"],
108
- "host": run["metadata"]["labels"]["host"],
109
108
  "status": {"state": run["status"]["state"]},
110
109
  }
111
- if run["status"].get("error", None):
112
- parsed_run["status"]["error"] = run["status"]["error"]
113
- elif run["status"].get("results", None):
114
- parsed_run["status"]["results"] = run["status"]["results"]
110
+ if host := run["metadata"].get("labels", {}).get("host", ""):
111
+ parsed_run["host"] = host
112
+ if error := run["status"].get("error"):
113
+ parsed_run["status"]["error"] = error
114
+ elif results := run["status"].get("results"):
115
+ parsed_run["status"]["results"] = results
115
116
  parsed_runs.append(parsed_run)
116
117
  return str(parsed_runs)
117
118
 
118
119
  if isinstance(override_body, dict):
119
120
  for key, value in override_body.items():
120
- if "{{ runs }}" or "{{runs}}" in value:
121
- if not str_parsed_runs:
122
- str_parsed_runs = parse_runs()
123
- override_body[key] = value.replace(
124
- "{{ runs }}", str_parsed_runs
125
- ).replace("{{runs}}", str_parsed_runs)
121
+ if re.search(r"{{\s*runs\s*}}", value):
122
+ str_parsed_runs = parse_runs()
123
+ override_body[key] = re.sub(
124
+ r"{{\s*runs\s*}}", str_parsed_runs, value
125
+ )
126
+
126
127
  return override_body
@@ -14,7 +14,6 @@
14
14
 
15
15
  import asyncio
16
16
  import datetime
17
- import os
18
17
  import re
19
18
  import traceback
20
19
  import typing
@@ -97,6 +96,7 @@ class NotificationPusher(_NotificationPusherBase):
97
96
  "completed": "{resource} completed",
98
97
  "error": "{resource} failed",
99
98
  "aborted": "{resource} aborted",
99
+ "running": "{resource} started",
100
100
  }
101
101
 
102
102
  def __init__(
@@ -285,6 +285,7 @@ class NotificationPusher(_NotificationPusherBase):
285
285
 
286
286
  message = (
287
287
  self.messages.get(run.state(), "").format(resource=resource)
288
+ + f" in project {run.metadata.project}"
288
289
  + custom_message
289
290
  )
290
291
 
@@ -303,6 +304,7 @@ class NotificationPusher(_NotificationPusherBase):
303
304
  message, severity, runs = self._prepare_notification_args(
304
305
  run, notification_object
305
306
  )
307
+
306
308
  logger.debug(
307
309
  "Pushing sync notification",
308
310
  notification=sanitize_notification(notification_object.to_dict()),
@@ -313,6 +315,7 @@ class NotificationPusher(_NotificationPusherBase):
313
315
  "project": run.metadata.project,
314
316
  "notification": notification_object,
315
317
  "status": mlrun.common.schemas.NotificationStatus.SENT,
318
+ "run_state": run.state(),
316
319
  }
317
320
  try:
318
321
  notification.push(message, severity, runs)
@@ -351,6 +354,7 @@ class NotificationPusher(_NotificationPusherBase):
351
354
  message, severity, runs = self._prepare_notification_args(
352
355
  run, notification_object
353
356
  )
357
+
354
358
  logger.debug(
355
359
  "Pushing async notification",
356
360
  notification=sanitize_notification(notification_object.to_dict()),
@@ -360,6 +364,7 @@ class NotificationPusher(_NotificationPusherBase):
360
364
  "run_uid": run.metadata.uid,
361
365
  "project": run.metadata.project,
362
366
  "notification": notification_object,
367
+ "run_state": run.state(),
363
368
  "status": mlrun.common.schemas.NotificationStatus.SENT,
364
369
  }
365
370
  try:
@@ -397,10 +402,20 @@ class NotificationPusher(_NotificationPusherBase):
397
402
  run_uid: str,
398
403
  project: str,
399
404
  notification: mlrun.model.Notification,
405
+ run_state: runtimes_constants.RunStates,
400
406
  status: typing.Optional[str] = None,
401
407
  sent_time: typing.Optional[datetime.datetime] = None,
402
408
  reason: typing.Optional[str] = None,
403
409
  ):
410
+ if run_state not in runtimes_constants.RunStates.terminal_states():
411
+ # we want to update the notification status only if the run is in a terminal state for BC
412
+ logger.debug(
413
+ "Skip updating notification status - run not in terminal state",
414
+ run_uid=run_uid,
415
+ state=run_state,
416
+ )
417
+ return
418
+
404
419
  db = mlrun.get_run_db()
405
420
  notification.status = status or notification.status
406
421
  notification.sent_time = sent_time or notification.sent_time
@@ -664,30 +679,10 @@ class CustomNotificationPusher(_NotificationPusherBase):
664
679
  def push_pipeline_start_message(
665
680
  self,
666
681
  project: str,
667
- commit_id: typing.Optional[str] = None,
668
682
  pipeline_id: typing.Optional[str] = None,
669
- has_workflow_url: bool = False,
670
683
  ):
671
- message = f"Workflow started in project {project}"
672
- if pipeline_id:
673
- message += f" id={pipeline_id}"
674
- commit_id = (
675
- commit_id or os.environ.get("GITHUB_SHA") or os.environ.get("CI_COMMIT_SHA")
676
- )
677
- if commit_id:
678
- message += f", commit={commit_id}"
679
- if has_workflow_url:
680
- url = mlrun.utils.helpers.get_workflow_url(project, pipeline_id)
681
- else:
682
- url = mlrun.utils.helpers.get_ui_url(project)
683
- html = ""
684
- if url:
685
- html = (
686
- message
687
- + f'<div><a href="{url}" target="_blank">click here to view progress</a></div>'
688
- )
689
- message = message + f", check progress in {url}"
690
- self.push(message, "info", custom_html=html)
684
+ db = mlrun.get_run_db()
685
+ db.push_run_notifications(pipeline_id, project)
691
686
 
692
687
  def push_pipeline_run_results(
693
688
  self,
@@ -1,4 +1,4 @@
1
1
  {
2
- "git_commit": "e190e91298c56dce1ac5f5cab61ad39495936fe3",
3
- "version": "1.8.0-rc12"
2
+ "git_commit": "6aa0bfdf77d03774890da6714fc3aca778bb9f26",
3
+ "version": "1.8.0-rc15"
4
4
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mlrun
3
- Version: 1.8.0rc12
3
+ Version: 1.8.0rc15
4
4
  Summary: Tracking and config of machine learning runs
5
5
  Home-page: https://github.com/mlrun/mlrun
6
6
  Author: Yaron Haviv
@@ -44,17 +44,19 @@ Requires-Dist: semver~=3.0
44
44
  Requires-Dist: dependency-injector~=4.41
45
45
  Requires-Dist: fsspec<2024.7,>=2023.9.2
46
46
  Requires-Dist: v3iofs~=0.1.17
47
- Requires-Dist: storey~=1.8.6
47
+ Requires-Dist: storey~=1.8.7
48
48
  Requires-Dist: inflection~=0.5.0
49
49
  Requires-Dist: python-dotenv~=1.0
50
50
  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.2.3
55
- Requires-Dist: mlrun-pipelines-kfp-v1-8~=0.2.3; python_version < "3.11"
54
+ Requires-Dist: mlrun-pipelines-kfp-common~=0.3.3
55
+ Requires-Dist: mlrun-pipelines-kfp-v1-8~=0.3.3; 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"
58
60
  Provides-Extra: s3
59
61
  Requires-Dist: boto3<1.36,>=1.28.0; extra == "s3"
60
62
  Requires-Dist: aiobotocore<2.16,>=2.5.0; extra == "s3"
@@ -99,9 +101,11 @@ Requires-Dist: ossfs==2023.12.0; extra == "alibaba-oss"
99
101
  Requires-Dist: oss2==2.18.1; extra == "alibaba-oss"
100
102
  Provides-Extra: tdengine
101
103
  Requires-Dist: taos-ws-py==0.3.2; extra == "tdengine"
102
- Requires-Dist: taoswswrap~=0.2.0; extra == "tdengine"
104
+ Requires-Dist: taoswswrap~=0.3.0; extra == "tdengine"
103
105
  Provides-Extra: snowflake
104
106
  Requires-Dist: snowflake-connector-python~=3.7; extra == "snowflake"
107
+ Provides-Extra: kfp18
108
+ Requires-Dist: mlrun_pipelines_kfp_v1_8[kfp]>=0.3.2; python_version < "3.11" and extra == "kfp18"
105
109
  Provides-Extra: api
106
110
  Requires-Dist: uvicorn~=0.32.1; extra == "api"
107
111
  Requires-Dist: dask-kubernetes~=0.11.0; extra == "api"
@@ -116,6 +120,7 @@ Requires-Dist: alembic~=1.14; extra == "api"
116
120
  Requires-Dist: timelength~=1.1; extra == "api"
117
121
  Requires-Dist: memray~=1.12; sys_platform != "win32" and extra == "api"
118
122
  Requires-Dist: aiosmtplib~=3.0; extra == "api"
123
+ Requires-Dist: pydantic<2,>=1; extra == "api"
119
124
  Provides-Extra: all
120
125
  Requires-Dist: adlfs==2023.9.0; extra == "all"
121
126
  Requires-Dist: aiobotocore<2.16,>=2.5.0; extra == "all"
@@ -146,7 +151,7 @@ Requires-Dist: s3fs<2024.7,>=2023.9.2; extra == "all"
146
151
  Requires-Dist: snowflake-connector-python~=3.7; extra == "all"
147
152
  Requires-Dist: sqlalchemy~=1.4; extra == "all"
148
153
  Requires-Dist: taos-ws-py==0.3.2; extra == "all"
149
- Requires-Dist: taoswswrap~=0.2.0; extra == "all"
154
+ Requires-Dist: taoswswrap~=0.3.0; extra == "all"
150
155
  Provides-Extra: complete
151
156
  Requires-Dist: adlfs==2023.9.0; extra == "complete"
152
157
  Requires-Dist: aiobotocore<2.16,>=2.5.0; extra == "complete"
@@ -176,7 +181,7 @@ Requires-Dist: s3fs<2024.7,>=2023.9.2; extra == "complete"
176
181
  Requires-Dist: snowflake-connector-python~=3.7; extra == "complete"
177
182
  Requires-Dist: sqlalchemy~=1.4; extra == "complete"
178
183
  Requires-Dist: taos-ws-py==0.3.2; extra == "complete"
179
- Requires-Dist: taoswswrap~=0.2.0; extra == "complete"
184
+ Requires-Dist: taoswswrap~=0.3.0; extra == "complete"
180
185
  Provides-Extra: complete-api
181
186
  Requires-Dist: adlfs==2023.9.0; extra == "complete-api"
182
187
  Requires-Dist: aiobotocore<2.16,>=2.5.0; extra == "complete-api"
@@ -209,6 +214,7 @@ Requires-Dist: objgraph~=3.6; extra == "complete-api"
209
214
  Requires-Dist: oss2==2.18.1; extra == "complete-api"
210
215
  Requires-Dist: ossfs==2023.12.0; extra == "complete-api"
211
216
  Requires-Dist: plotly~=5.23; extra == "complete-api"
217
+ Requires-Dist: pydantic<2,>=1; extra == "complete-api"
212
218
  Requires-Dist: pymysql~=1.1; extra == "complete-api"
213
219
  Requires-Dist: pyopenssl>=23; extra == "complete-api"
214
220
  Requires-Dist: redis~=4.3; extra == "complete-api"
@@ -216,7 +222,7 @@ Requires-Dist: s3fs<2024.7,>=2023.9.2; extra == "complete-api"
216
222
  Requires-Dist: snowflake-connector-python~=3.7; extra == "complete-api"
217
223
  Requires-Dist: sqlalchemy~=1.4; extra == "complete-api"
218
224
  Requires-Dist: taos-ws-py==0.3.2; extra == "complete-api"
219
- Requires-Dist: taoswswrap~=0.2.0; extra == "complete-api"
225
+ Requires-Dist: taoswswrap~=0.3.0; extra == "complete-api"
220
226
  Requires-Dist: timelength~=1.1; extra == "complete-api"
221
227
  Requires-Dist: uvicorn~=0.32.1; extra == "complete-api"
222
228
 
@@ -1,8 +1,8 @@
1
1
  mlrun/__init__.py,sha256=7vuMpUiigXXDrghLRq680LKWy1faC0kQyGCZb_7cwyE,7473
2
2
  mlrun/__main__.py,sha256=o65gXHhmFA9GV_n2mqmAO80nW3MAwo_s7j80IKgCzRE,45949
3
- mlrun/config.py,sha256=HFQv1Qx3swxEW-QDITkakMrx6IcEEwApmkd1o38PDAI,70992
3
+ mlrun/config.py,sha256=cN_o0nSf7SJLi8xxg4kQ-_Kg5ZasUxA8IP6b-pyJJCc,71003
4
4
  mlrun/errors.py,sha256=5raKb1PXQpTcIvWQ4sr1qn2IS7P_GT_FydBJ0dXkVuc,8097
5
- mlrun/execution.py,sha256=GDHVdltjcSOtqPlhoAuXQAhvYhc8PhEbsnCIxONSCjg,47435
5
+ mlrun/execution.py,sha256=sg3R6m5Vpg5VYMD-1B6-mpxW0ck6m9dmxN2fcGdJ3c8,48713
6
6
  mlrun/features.py,sha256=ReBaNGsBYXqcbgI012n-SO_j6oHIbk_Vpv0CGPXbUmo,15842
7
7
  mlrun/k8s_utils.py,sha256=mRQMs6NzPq36vx1n5_2BfFapXysc8wv3NcrZ77_2ANA,8949
8
8
  mlrun/lists.py,sha256=1hFv3Iyu5DVX1kdBGJmwUoY0CqrzauhKdSq9g3piHb4,8442
@@ -16,7 +16,7 @@ mlrun/api/schemas/__init__.py,sha256=fEWH4I8hr5AdRJ7yoW44RlFB6NHkYDxyomP5J6ct1z4
16
16
  mlrun/artifacts/__init__.py,sha256=ofC2extBCOC1wg1YtdTzWzH3eeG_f-sFBUkHjYtZJpk,1175
17
17
  mlrun/artifacts/base.py,sha256=nz2ZqC74JGfWN0M6_hOXXQj3bXSTxNp4eUgvWHVcdvY,29979
18
18
  mlrun/artifacts/dataset.py,sha256=QTot5vCgLHatlIWwNnKbWdZ8HHTxaZ7wk4gWQDoqQ2k,16655
19
- mlrun/artifacts/document.py,sha256=yfJB3GHx2bD9efmAYYI5e6xbHAEO8xdiP1Xm6W1NRi8,13988
19
+ mlrun/artifacts/document.py,sha256=1JrQWSuASF0EX5tKO4LXAI-gYdjPGJPXVhW1QzCmaME,15230
20
20
  mlrun/artifacts/manager.py,sha256=bXb70mKF6wIGs7syCiFfGnjalqx4g9bO_J5DaVzUUKw,16163
21
21
  mlrun/artifacts/model.py,sha256=jeOjUq_iZSHoNqlPyGgOz6acwje1Yqpg1yZwF9GbyG8,21615
22
22
  mlrun/artifacts/plots.py,sha256=dS0mHGt1b20tN2JyEH9H5o5I0oMKZkzn3Uz_3Hf4WjU,4813
@@ -24,11 +24,11 @@ mlrun/common/__init__.py,sha256=xY3wHC4TEJgez7qtnn1pQvHosi8-5UJOCtyGBS7FcGE,571
24
24
  mlrun/common/constants.py,sha256=14xMUX9C5BB-LxsTlMTJQf_Xz2DyRjaK9yeR5dadcDU,3426
25
25
  mlrun/common/helpers.py,sha256=DIdqs_eN3gO5bZ8iFobIvx8cEiOxYxhFIyut6-O69T0,1385
26
26
  mlrun/common/secrets.py,sha256=vc8WV82EZsCB5ENjUkObFOzZP59aZ1w8F82PTnqwBnc,5181
27
- mlrun/common/types.py,sha256=APVFvumnHpCG-yXlt6OSioMfkyT-DADPiW3dGG3dUFQ,1057
27
+ mlrun/common/types.py,sha256=1gxThbmC0Vd0U1ffIkEwz4T4S7JOgHt70rvw8TCO21c,1073
28
28
  mlrun/common/db/__init__.py,sha256=xY3wHC4TEJgez7qtnn1pQvHosi8-5UJOCtyGBS7FcGE,571
29
29
  mlrun/common/db/sql_session.py,sha256=J6b-0xrnFb-8n_xdksPXeA8kArSMfAiSDN4n7iOhtus,2708
30
30
  mlrun/common/formatters/__init__.py,sha256=lHcGFKKXx4vcCgJ0n2KHYD5sY5p5MvPz3DO9RbUoEOM,891
31
- mlrun/common/formatters/artifact.py,sha256=_XIBWSpglDXRVflyH_xO3NSi4JvMzoy0lOC207xhvqk,1419
31
+ mlrun/common/formatters/artifact.py,sha256=8oet2n5_bZlUALNXIjeYCTPDYKRB1h3gu_NWNK2lEig,1425
32
32
  mlrun/common/formatters/base.py,sha256=LHwWWnQJCmvlnOCCmG8YtJ_xzs0xBI8PujYDL5Ky9H4,4101
33
33
  mlrun/common/formatters/feature_set.py,sha256=1RdIkPRYTi8wGHNcAGTa3aCcj8cNV-GKk8IeMzvc0jE,1496
34
34
  mlrun/common/formatters/function.py,sha256=-DnfHThAcoizqJhTELeAltjsmlKRLnCaa1uKbWI0Eaw,1495
@@ -61,7 +61,7 @@ mlrun/common/schemas/memory_reports.py,sha256=boLyk8RRhfRLv0JCYYWxcTxobKzqRzdtSY
61
61
  mlrun/common/schemas/notification.py,sha256=WDdGhFII--zII5XebfkTdse8reMgKeVCYXlgeH7M9WE,5430
62
62
  mlrun/common/schemas/object.py,sha256=0vftHJcicAm87Hfgi_SdyQEqokoZRE4IEHHRPx34hNQ,1983
63
63
  mlrun/common/schemas/pagination.py,sha256=8NEmiIkCXw5_sv-lE0MWgWz-WpxhSSn-vBtbPDBOGXc,899
64
- mlrun/common/schemas/partition.py,sha256=s7607EKe4T_37wxS5kt-j4XFqwWY_90aHBZggAdYeDw,5516
64
+ mlrun/common/schemas/partition.py,sha256=MI8f7EbJ42RyVBLYVIjL6cjkWoL6Wgjdi-XbaUqQM3M,5921
65
65
  mlrun/common/schemas/pipeline.py,sha256=HFFtM_fyerkCaDDpTrXJVgYg02SD56SV06ZQ6_WhApc,1435
66
66
  mlrun/common/schemas/project.py,sha256=e3glE0HdLLZAbJJn6hKABtFI9L4jrlrQZHmUygXBlzM,6510
67
67
  mlrun/common/schemas/regex.py,sha256=8_vbDeAE0SODJDj7yUFg1FbaB9CNydYQTJ29JxE74Kc,776
@@ -102,15 +102,15 @@ mlrun/datastore/storeytargets.py,sha256=uNYG4nCBD3JIfa51CG4cDe9ryc9oIcqUdUXKvCPB
102
102
  mlrun/datastore/targets.py,sha256=QiEK-mHmUt2qnS2yaBSSKgk8CKqsGU-JoQ9kHoW1bvE,80759
103
103
  mlrun/datastore/utils.py,sha256=ZDAzz0W16_JcM6Q9h4RoMbdruM9eA6YGlA5dw8gW8Bw,7754
104
104
  mlrun/datastore/v3io.py,sha256=QSYBORRLcJTeM9mt0EaWzyLcdmzrPkqrF7k5uLTam5U,8209
105
- mlrun/datastore/vectorstore.py,sha256=GUX9G09uCHfERVYAyKc1UdlipadnXU8gEZ-VzF0F0A4,9559
105
+ mlrun/datastore/vectorstore.py,sha256=j2I4t2twC4nQTlxTH4-B8sCa5TAB8uYfldrhwshJqEo,10841
106
106
  mlrun/datastore/wasbfs/__init__.py,sha256=s5Ul-0kAhYqFjKDR2X0O2vDGDbLQQduElb32Ev56Te4,1343
107
107
  mlrun/datastore/wasbfs/fs.py,sha256=ge8NK__5vTcFT-krI155_8RDUywQw4SIRX6BWATXy9Q,6299
108
108
  mlrun/db/__init__.py,sha256=WqJ4x8lqJ7ZoKbhEyFqkYADd9P6E3citckx9e9ZLcIU,1163
109
109
  mlrun/db/auth_utils.py,sha256=hpg8D2r82oN0BWabuWN04BTNZ7jYMAF242YSUpK7LFM,5211
110
- mlrun/db/base.py,sha256=byrG4SWSw_SMF_GOmBIVL-8eMOZkXECipLxkDh9WrUg,29399
110
+ mlrun/db/base.py,sha256=dzYvS8mUBShit9UBqgKuu4AJZHx8dQiD8ys7x7jAW90,29845
111
111
  mlrun/db/factory.py,sha256=yP2vVmveUE7LYTCHbS6lQIxP9rW--zdISWuPd_I3d_4,2111
112
- mlrun/db/httpdb.py,sha256=Aht1fKz-AFtNzvJlKljl5l4k7xEXQ7r1Z4zid6mvE14,224855
113
- mlrun/db/nopdb.py,sha256=XXuIbDCNj0JhK-uOKGwIXxjhi7t_tfrlhCFQXIfdNAA,26407
112
+ mlrun/db/httpdb.py,sha256=2hoWVRSHKjdhBhNK31f53tJN4TId5JFIdxP-TcC-IAs,226052
113
+ mlrun/db/nopdb.py,sha256=CUIhRHxfoSXSgBksOWki0piC-fWNgtQvtZdnmCvH46Y,26663
114
114
  mlrun/feature_store/__init__.py,sha256=AVnY2AFUNc2dKxLLUMx2K3Wo1eGviv0brDcYlDnmtf4,1506
115
115
  mlrun/feature_store/api.py,sha256=qkojZpzqGAn3r9ww0ynBRKOs8ji8URaK4DSYD4SE-CE,50395
116
116
  mlrun/feature_store/common.py,sha256=Z7USI-d1fo0iwBMsqMBtJflJfyuiV3BLoDXQPSAoBAs,12826
@@ -224,9 +224,9 @@ mlrun/model_monitoring/stream_processing.py,sha256=ltCVgo_b3yay16CUbqeGkRfzCHZSn
224
224
  mlrun/model_monitoring/tracking_policy.py,sha256=PBIGrUYWrwcE5gwXupBIVzOb0QRRwPJsgQm_yLGQxB4,5595
225
225
  mlrun/model_monitoring/writer.py,sha256=-47Z7oMr6q2ieJunZgkMK8d0IHZJhC3jxTBIxHgtSOk,10490
226
226
  mlrun/model_monitoring/applications/__init__.py,sha256=QYvzgCutFdAkzqKPD3mvkX_3c1X4tzd-kW8ojUOE9ic,889
227
- mlrun/model_monitoring/applications/_application_steps.py,sha256=h80Rs0vN70R3YOW-mCN8quWw1gFbfQdOPQeUwYFic_Q,7162
228
- mlrun/model_monitoring/applications/base.py,sha256=Vdd92o5WhnaAy4HC8aeZWM9QchLYSFR4jVe-eiuuK0g,12921
229
- mlrun/model_monitoring/applications/context.py,sha256=gpxaUGpYKgWcVE4I91Q3lBGjuqUsZZ5nMO9-vNuq_KM,14976
227
+ mlrun/model_monitoring/applications/_application_steps.py,sha256=NvrYJs6N0Kpp3s_t6s9LkCk5hY7kWYmkVoIhz_ZZx_8,7178
228
+ mlrun/model_monitoring/applications/base.py,sha256=SLGGhxfeTfaLwLYFW9qLG9ZdoidrfGAFb3QO3xySRoI,12886
229
+ mlrun/model_monitoring/applications/context.py,sha256=lbb0Kfh8cOOA382q2IYYQR6eDHsr-lbgxFMSQ9nUnqw,15209
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
232
232
  mlrun/model_monitoring/applications/results.py,sha256=oh1z9oacWWP4azVXm_Fx7j8uXSfdkB9T4mtGwyPBveE,5748
@@ -237,9 +237,9 @@ mlrun/model_monitoring/db/tsdb/__init__.py,sha256=Zqh_27I2YAEHk9nl0Z6lUxP7VEfrgr
237
237
  mlrun/model_monitoring/db/tsdb/base.py,sha256=EWm-56AzuLSH1JV6DAhSRu9sUel5YD6Ch1n5tgUHODo,20983
238
238
  mlrun/model_monitoring/db/tsdb/helpers.py,sha256=0oUXc4aUkYtP2SGP6jTb3uPPKImIUsVsrb9otX9a7O4,1189
239
239
  mlrun/model_monitoring/db/tsdb/tdengine/__init__.py,sha256=vgBdsKaXUURKqIf3M0y4sRatmSVA4CQiJs7J5dcVBkQ,620
240
- mlrun/model_monitoring/db/tsdb/tdengine/schemas.py,sha256=5otz6VXRYNMc55hq9SdTQoglywdr2Ylh-ApL1dCyqls,13169
240
+ mlrun/model_monitoring/db/tsdb/tdengine/schemas.py,sha256=6de8P0CJMqe7PGttoZNt9UtrbBcJnpIp82hk_MbtepA,12477
241
241
  mlrun/model_monitoring/db/tsdb/tdengine/stream_graph_steps.py,sha256=Uadj0UvAmln2MxDWod-kAzau1uNlqZh981rPhbUH_5M,2857
242
- mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py,sha256=a2AjI7_jTnbJ8as1Bt0AMQcwsPgFsR0tvyxlKp3uZrs,29706
242
+ mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py,sha256=Vbx5u4Y2ZbzbRQDwMIyz-9S0OgkGKw_gZTvWvF8Jp7I,29599
243
243
  mlrun/model_monitoring/db/tsdb/v3io/__init__.py,sha256=aL3bfmQsUQ-sbvKGdNihFj8gLCK3mSys0qDcXtYOwgc,616
244
244
  mlrun/model_monitoring/db/tsdb/v3io/stream_graph_steps.py,sha256=_-zo9relCDtjGgievxAcAP9gVN9nDWs8BzGtFwTjb9M,6284
245
245
  mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py,sha256=_9n837rmlmxeEzqKjc5LerXRxNqKAgjMMzU-sKz4uyo,35668
@@ -266,8 +266,8 @@ 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=YEaISS9HXGqk-JNxSYZuzioH9_orN_pDKjJUQPfs0y0,46886
270
- mlrun/projects/project.py,sha256=3uoOPBDAYDEi60cCn4kbG8T9xJRa3r2CkbgH13HrkJQ,224172
269
+ mlrun/projects/pipelines.py,sha256=srguKr5rpEuKGUFKiFJYgekRWpdDToLsZSLo_jT5cUE,47342
270
+ mlrun/projects/project.py,sha256=0d7iVqeKDVwc0ClqZekypCzHngCgmnUom2p0DBIAKeg,227357
271
271
  mlrun/runtimes/__init__.py,sha256=J9Sy2HiyMlztNv6VUurMzF5H2XzttNil8nRsWDsqLyg,8923
272
272
  mlrun/runtimes/base.py,sha256=Yt2l7srrXjK783cunBEKH0yQxQZRH8lkedXNOXuLbbo,37841
273
273
  mlrun/runtimes/daskjob.py,sha256=JwuGvOiPsxEDHHMMUS4Oie4hLlYYIZwihAl6DjroTY0,19521
@@ -289,9 +289,9 @@ mlrun/runtimes/mpijob/abstract.py,sha256=JGMjcJ4dvpJbctF6psU9UvYyNCutMxTMgBQeTlz
289
289
  mlrun/runtimes/mpijob/v1.py,sha256=1XQZC7AIMGX_AQCbApcwpH8I7y39-v0v2O35MvxjXoo,3213
290
290
  mlrun/runtimes/nuclio/__init__.py,sha256=gx1kizzKv8pGT5TNloN1js1hdbxqDw3rM90sLVYVffY,794
291
291
  mlrun/runtimes/nuclio/api_gateway.py,sha256=vH9ClKVP4Mb24rvA67xPuAvAhX-gAv6vVtjVxyplhdc,26969
292
- mlrun/runtimes/nuclio/function.py,sha256=ZXXHuPkQPgOewaGr9G3jLTQSFQHSJpLVFJ2bIA6bfpI,52287
292
+ mlrun/runtimes/nuclio/function.py,sha256=Bff8Veg-eaqNrQ7yn20HpRhwAO4OA7FTnzXnAyoaBPU,52365
293
293
  mlrun/runtimes/nuclio/nuclio.py,sha256=sLK8KdGO1LbftlL3HqPZlFOFTAAuxJACZCVl1c0Ha6E,2942
294
- mlrun/runtimes/nuclio/serving.py,sha256=Fz-DSnjt8lAoKfl-InHQAosKgLSIT33KHTCGY99ZJyU,31231
294
+ mlrun/runtimes/nuclio/serving.py,sha256=yuBSJe8AM4ar87Tc9x0vLRc47w8f5r-joMNza9hVCOo,31399
295
295
  mlrun/runtimes/nuclio/application/__init__.py,sha256=rRs5vasy_G9IyoTpYIjYDafGoL6ifFBKgBtsXn31Atw,614
296
296
  mlrun/runtimes/nuclio/application/application.py,sha256=HlEq4A6hbFqr3Ba3TL4m7nbmfMYI06Zb_NAKGjzkEFU,29242
297
297
  mlrun/runtimes/nuclio/application/reverse_proxy.go,sha256=JIIYae6bXzCLf3jXuu49KWPQYoXr_FDQ2Rbo1OWKAd0,3150
@@ -300,13 +300,13 @@ mlrun/runtimes/sparkjob/spark3job.py,sha256=0ipkgAjDYDJDlcuvt379zonjhepCspsQQXMr
300
300
  mlrun/serving/__init__.py,sha256=FhOlOCnBC5HFXOHzSDe4NHBs6mNUDP_Qqy6WMNsCwws,1307
301
301
  mlrun/serving/merger.py,sha256=qtPJacx94Tsz_-8L3J_-aS2NEsTdechZkQzJmyHjmig,6195
302
302
  mlrun/serving/remote.py,sha256=gxJkj_J3j-sZcVUbUzbAmJafP6t6y4NVFsu0kWmYngA,18818
303
- mlrun/serving/routers.py,sha256=XTTAm7u4dc7_20lNrXM81sG_VIXd-rqp9jAf3nuzd94,54111
303
+ mlrun/serving/routers.py,sha256=GK8IglQZo7vYTtK4xlnR5hLRQUbUhF2IwUbquGK9zrE,54395
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=B72KCjrPqqTGnGh-2IPQMxh6Ttwd9iVAVJLXYDDPcYM,66808
306
+ mlrun/serving/states.py,sha256=FXTiHsM8H9mwpg0_mYooMxF7Z3QvMHnUeZDiQXN2ohg,67142
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=GN4SIVexYv3iL80qSkAyDHUQ0LtWTGA_2YvTMfkIj0Q,26245
309
+ mlrun/serving/v2_serving.py,sha256=-YXyo01rwW7VWi_T7Sv_k_trVbxDAgxVKjg0-bSK5fs,26456
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
@@ -318,7 +318,7 @@ mlrun/utils/azure_vault.py,sha256=IEFizrDGDbAaoWwDr1WoA88S_EZ0T--vjYtY-i0cvYQ,34
318
318
  mlrun/utils/clones.py,sha256=y3zC9QS7z5mLuvyQ6vFd6sJnikbgtDwrBvieQq0sovY,7359
319
319
  mlrun/utils/condition_evaluator.py,sha256=-nGfRmZzivn01rHTroiGY4rqEv8T1irMyhzxEei-sKc,1897
320
320
  mlrun/utils/db.py,sha256=blQgkWMfFH9lcN4sgJQcPQgEETz2Dl_zwbVA0SslpFg,2186
321
- mlrun/utils/helpers.py,sha256=g9weVIuAoR_QuplJvVWpEmUhsyz78x2Jag9SP-8iPNQ,63476
321
+ mlrun/utils/helpers.py,sha256=3E7cQFcvcKdXmMnjsFY5r6cY6S0LxoFOrAkN6_jYw1s,64237
322
322
  mlrun/utils/http.py,sha256=t6FrXQstZm9xVVjxqIGiLzrwZNCR4CSienSOuVgNIcI,8706
323
323
  mlrun/utils/logger.py,sha256=_v4UTv1-STzC2c6aAWAa0NNl9STQoBYbR3OHgAiL41s,14606
324
324
  mlrun/utils/regex.py,sha256=IQqwPna6Z8J31xkTUduYbGk48GkQBUJFZSuxAWm1pzU,5162
@@ -327,21 +327,21 @@ 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=-O5dh9ymhrxUBfVhaldaoDQHuaSvKIyIcN3LdyqSflA,28375
330
+ mlrun/utils/notifications/notification_pusher.py,sha256=tG1VfdygP2mYe1JkLszufPGeq4zkD27vSqvfMAVMh-M,28172
331
331
  mlrun/utils/notifications/notification/__init__.py,sha256=9Rfy6Jm8n0LaEDO1VAQb6kIbr7_uVuQhK1pS_abELIY,2581
332
- mlrun/utils/notifications/notification/base.py,sha256=r-5eAGm2xz5VZGbV6NfeRV-heF7WzOYi-qWwDK2nR7U,5297
332
+ mlrun/utils/notifications/notification/base.py,sha256=VOgrzRakRfjYYBqvkc0cgEC5pl7KMidP7u-TL4HpGCY,5280
333
333
  mlrun/utils/notifications/notification/console.py,sha256=ICbIhOf9fEBJky_3j9TFiKAewDGyDHJr9l4VeT7G2sc,2745
334
334
  mlrun/utils/notifications/notification/git.py,sha256=t2lqRrPRBO4awf_uhxJreH9CpcbYSH8T3CvHtwspHkE,6306
335
335
  mlrun/utils/notifications/notification/ipython.py,sha256=9uZvI1uOLFaNuAsfJPXmL3l6dOzFoWdBK5GYNYFAfks,2282
336
336
  mlrun/utils/notifications/notification/mail.py,sha256=ZyJ3eqd8simxffQmXzqd3bgbAqp1vij7C6aRJ9h2mgs,6012
337
337
  mlrun/utils/notifications/notification/slack.py,sha256=NKV4RFiY3gLsS8uPppgniPLyag8zJ9O1VhixoXkM7kw,7108
338
- mlrun/utils/notifications/notification/webhook.py,sha256=lSGKCQMa-TstKbMpZnU5uQkW14tzIaqjBHDXUNh9dlU,4848
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=gpwRKlG0uR21AXjTaguMwPaT0tb1FtmLyNQcJV8XlcU,89
340
+ mlrun/utils/version/version.json,sha256=dLS7bzsjhqqAGbDwpsDqJr_Thcb2YPX28-11V1PkMB0,89
341
341
  mlrun/utils/version/version.py,sha256=eEW0tqIAkU9Xifxv8Z9_qsYnNhn3YH7NRAfM-pPLt1g,1878
342
- mlrun-1.8.0rc12.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
343
- mlrun-1.8.0rc12.dist-info/METADATA,sha256=Q-gsrk_q8hKwcF-nV2GXyPA2jLgSiNSHK4uCYxAktoU,24459
344
- mlrun-1.8.0rc12.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
345
- mlrun-1.8.0rc12.dist-info/entry_points.txt,sha256=1Owd16eAclD5pfRCoJpYC2ZJSyGNTtUr0nCELMioMmU,46
346
- mlrun-1.8.0rc12.dist-info/top_level.txt,sha256=NObLzw3maSF9wVrgSeYBv-fgnHkAJ1kEkh12DLdd5KM,6
347
- mlrun-1.8.0rc12.dist-info/RECORD,,
342
+ mlrun-1.8.0rc15.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
343
+ mlrun-1.8.0rc15.dist-info/METADATA,sha256=YcE9Vr4pxgEB1AHPfuZRJApqkMdK4dXpSASanMPn51A,24796
344
+ mlrun-1.8.0rc15.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
345
+ mlrun-1.8.0rc15.dist-info/entry_points.txt,sha256=1Owd16eAclD5pfRCoJpYC2ZJSyGNTtUr0nCELMioMmU,46
346
+ mlrun-1.8.0rc15.dist-info/top_level.txt,sha256=NObLzw3maSF9wVrgSeYBv-fgnHkAJ1kEkh12DLdd5KM,6
347
+ mlrun-1.8.0rc15.dist-info/RECORD,,