mlrun 1.7.0rc29__py3-none-any.whl → 1.7.0rc31__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 (39) hide show
  1. mlrun/common/constants.py +1 -1
  2. mlrun/common/formatters/artifact.py +1 -0
  3. mlrun/common/schemas/model_monitoring/constants.py +5 -1
  4. mlrun/common/schemas/project.py +10 -9
  5. mlrun/config.py +21 -2
  6. mlrun/data_types/spark.py +2 -2
  7. mlrun/data_types/to_pandas.py +48 -16
  8. mlrun/datastore/__init__.py +1 -0
  9. mlrun/datastore/base.py +20 -8
  10. mlrun/datastore/datastore.py +4 -2
  11. mlrun/datastore/datastore_profile.py +1 -1
  12. mlrun/datastore/google_cloud_storage.py +1 -0
  13. mlrun/datastore/inmem.py +3 -0
  14. mlrun/datastore/s3.py +2 -0
  15. mlrun/datastore/sources.py +14 -0
  16. mlrun/datastore/targets.py +11 -1
  17. mlrun/db/base.py +1 -0
  18. mlrun/db/httpdb.py +10 -2
  19. mlrun/db/nopdb.py +1 -0
  20. mlrun/feature_store/retrieval/spark_merger.py +3 -32
  21. mlrun/model.py +1 -5
  22. mlrun/model_monitoring/api.py +3 -3
  23. mlrun/model_monitoring/controller.py +57 -73
  24. mlrun/model_monitoring/db/stores/sqldb/sql_store.py +8 -2
  25. mlrun/model_monitoring/db/stores/v3io_kv/kv_store.py +3 -0
  26. mlrun/model_monitoring/helpers.py +6 -12
  27. mlrun/model_monitoring/writer.py +1 -2
  28. mlrun/projects/project.py +16 -0
  29. mlrun/run.py +5 -5
  30. mlrun/runtimes/base.py +1 -1
  31. mlrun/utils/version/version.json +2 -2
  32. {mlrun-1.7.0rc29.dist-info → mlrun-1.7.0rc31.dist-info}/METADATA +6 -6
  33. {mlrun-1.7.0rc29.dist-info → mlrun-1.7.0rc31.dist-info}/RECORD +37 -39
  34. {mlrun-1.7.0rc29.dist-info → mlrun-1.7.0rc31.dist-info}/WHEEL +1 -1
  35. mlrun/feature_store/retrieval/conversion.py +0 -271
  36. mlrun/model_monitoring/controller_handler.py +0 -37
  37. {mlrun-1.7.0rc29.dist-info → mlrun-1.7.0rc31.dist-info}/LICENSE +0 -0
  38. {mlrun-1.7.0rc29.dist-info → mlrun-1.7.0rc31.dist-info}/entry_points.txt +0 -0
  39. {mlrun-1.7.0rc29.dist-info → mlrun-1.7.0rc31.dist-info}/top_level.txt +0 -0
@@ -273,26 +273,14 @@ class MonitoringApplicationController:
273
273
  Note that the MonitoringApplicationController object requires access keys along with valid project configurations.
274
274
  """
275
275
 
276
- def __init__(
277
- self,
278
- mlrun_context: mlrun.run.MLClientCtx,
279
- project: str,
280
- ):
281
- """
282
- Initialize Monitoring Application Processor object.
276
+ def __init__(self) -> None:
277
+ """Initialize Monitoring Application Controller"""
278
+ self.project = cast(str, mlrun.mlconf.default_project)
279
+ self.project_obj = mlrun.load_project(name=self.project, url=self.project)
283
280
 
284
- :param mlrun_context: An MLRun context.
285
- :param project: Project name.
286
- """
287
- self.context = mlrun_context
288
- self.project = project
289
- self.project_obj = mlrun.get_or_create_project(project)
281
+ logger.debug(f"Initializing {self.__class__.__name__}", project=self.project)
290
282
 
291
- mlrun_context.logger.debug(
292
- f"Initializing {self.__class__.__name__}", project=project
293
- )
294
-
295
- self.db = mlrun.model_monitoring.get_store_object(project=project)
283
+ self.db = mlrun.model_monitoring.get_store_object(project=self.project)
296
284
 
297
285
  self._batch_window_generator = _BatchWindowGenerator(
298
286
  batch_dict=json.loads(
@@ -322,26 +310,27 @@ class MonitoringApplicationController:
322
310
  return access_key
323
311
 
324
312
  def _initialize_v3io_configurations(self) -> None:
325
- self.v3io_framesd = mlrun.mlconf.v3io_framesd
326
- self.v3io_api = mlrun.mlconf.v3io_api
327
313
  self.storage_options = dict(
328
- v3io_access_key=self.model_monitoring_access_key, v3io_api=self.v3io_api
314
+ v3io_access_key=self.model_monitoring_access_key,
315
+ v3io_api=mlrun.mlconf.v3io_api,
329
316
  )
330
317
 
331
- def run(self, event: nuclio.Event):
318
+ def run(self) -> None:
332
319
  """
333
- Main method for run all the relevant monitoring applications on each endpoint
334
-
335
- :param event: trigger event
320
+ Main method for run all the relevant monitoring applications on each endpoint.
321
+ This method handles the following:
322
+ 1. List model endpoints
323
+ 2. List applications
324
+ 3. Check model monitoring windows
325
+ 4. Send data to applications
326
+ 5. Delete old parquets
336
327
  """
337
328
  logger.info("Start running monitoring controller")
338
329
  try:
339
330
  applications_names = []
340
331
  endpoints = self.db.list_model_endpoints()
341
332
  if not endpoints:
342
- self.context.logger.info(
343
- "No model endpoints found", project=self.project
344
- )
333
+ logger.info("No model endpoints found", project=self.project)
345
334
  return
346
335
  monitoring_functions = self.project_obj.list_model_monitoring_functions()
347
336
  if monitoring_functions:
@@ -359,58 +348,49 @@ class MonitoringApplicationController:
359
348
  }
360
349
  )
361
350
  if not applications_names:
362
- self.context.logger.info(
363
- "No monitoring functions found", project=self.project
364
- )
351
+ logger.info("No monitoring functions found", project=self.project)
365
352
  return
366
- self.context.logger.info(
353
+ logger.info(
367
354
  "Starting to iterate over the applications",
368
355
  applications=applications_names,
369
356
  )
370
357
 
371
358
  except Exception as e:
372
- self.context.logger.error(
359
+ logger.error(
373
360
  "Failed to list endpoints and monitoring applications",
374
361
  exc=err_to_str(e),
375
362
  )
376
363
  return
377
364
  # Initialize a process pool that will be used to run each endpoint applications on a dedicated process
378
- pool = concurrent.futures.ProcessPoolExecutor(
379
- max_workers=min(len(endpoints), 10),
380
- )
381
- futures = []
382
- for endpoint in endpoints:
383
- if (
384
- endpoint[mm_constants.EventFieldType.ACTIVE]
385
- and endpoint[mm_constants.EventFieldType.MONITORING_MODE]
386
- == mm_constants.ModelMonitoringMode.enabled.value
387
- ):
388
- # Skip router endpoint:
365
+ with concurrent.futures.ProcessPoolExecutor(
366
+ max_workers=min(len(endpoints), 10)
367
+ ) as pool:
368
+ for endpoint in endpoints:
389
369
  if (
390
- int(endpoint[mm_constants.EventFieldType.ENDPOINT_TYPE])
391
- == mm_constants.EndpointType.ROUTER
370
+ endpoint[mm_constants.EventFieldType.ACTIVE]
371
+ and endpoint[mm_constants.EventFieldType.MONITORING_MODE]
372
+ == mm_constants.ModelMonitoringMode.enabled.value
392
373
  ):
393
- # Router endpoint has no feature stats
394
- logger.info(
395
- f"{endpoint[mm_constants.EventFieldType.UID]} is router skipping"
374
+ # Skip router endpoint:
375
+ if (
376
+ int(endpoint[mm_constants.EventFieldType.ENDPOINT_TYPE])
377
+ == mm_constants.EndpointType.ROUTER
378
+ ):
379
+ # Router endpoint has no feature stats
380
+ logger.info(
381
+ f"{endpoint[mm_constants.EventFieldType.UID]} is router, skipping"
382
+ )
383
+ continue
384
+ pool.submit(
385
+ MonitoringApplicationController.model_endpoint_process,
386
+ endpoint=endpoint,
387
+ applications_names=applications_names,
388
+ batch_window_generator=self._batch_window_generator,
389
+ project=self.project,
390
+ parquet_directory=self.parquet_directory,
391
+ storage_options=self.storage_options,
392
+ model_monitoring_access_key=self.model_monitoring_access_key,
396
393
  )
397
- continue
398
- future = pool.submit(
399
- MonitoringApplicationController.model_endpoint_process,
400
- endpoint=endpoint,
401
- applications_names=applications_names,
402
- batch_window_generator=self._batch_window_generator,
403
- project=self.project,
404
- parquet_directory=self.parquet_directory,
405
- storage_options=self.storage_options,
406
- model_monitoring_access_key=self.model_monitoring_access_key,
407
- )
408
- futures.append(future)
409
-
410
- for future in concurrent.futures.as_completed(futures):
411
- result = future.result()
412
- if result:
413
- self.context.log_results(result)
414
394
 
415
395
  self._delete_old_parquet(endpoints=endpoints)
416
396
 
@@ -424,7 +404,7 @@ class MonitoringApplicationController:
424
404
  parquet_directory: str,
425
405
  storage_options: dict,
426
406
  model_monitoring_access_key: str,
427
- ) -> Optional[dict[str, list[str]]]:
407
+ ) -> None:
428
408
  """
429
409
  Process a model endpoint and trigger the monitoring applications. This function running on different process
430
410
  for each endpoint. In addition, this function will generate a parquet file that includes the relevant data
@@ -437,10 +417,8 @@ class MonitoringApplicationController:
437
417
  :param parquet_directory: (str) Directory to store application parquet files
438
418
  :param storage_options: (dict) Storage options for writing ParquetTarget.
439
419
  :param model_monitoring_access_key: (str) Access key to apply the model monitoring process.
440
-
441
420
  """
442
421
  endpoint_id = endpoint[mm_constants.EventFieldType.UID]
443
- start_times: set[datetime.datetime] = set()
444
422
  try:
445
423
  m_fs = fstore.get_feature_set(
446
424
  endpoint[mm_constants.EventFieldType.FEATURE_SET_URI]
@@ -518,16 +496,12 @@ class MonitoringApplicationController:
518
496
  model_monitoring_access_key=model_monitoring_access_key,
519
497
  parquet_target_path=parquet_target_path,
520
498
  )
521
- start_times.add(start_infer_time)
522
499
  except Exception:
523
500
  logger.exception(
524
501
  "Encountered an exception",
525
502
  endpoint_id=endpoint[mm_constants.EventFieldType.UID],
526
503
  )
527
504
 
528
- if start_times:
529
- return {endpoint_id: [str(t) for t in sorted(list(start_times))]}
530
-
531
505
  def _delete_old_parquet(self, endpoints: list[dict[str, Any]], days: int = 1):
532
506
  """
533
507
  Delete application parquets older than the argument days.
@@ -673,3 +647,13 @@ class MonitoringApplicationController:
673
647
  ),
674
648
  )
675
649
  return offline_response
650
+
651
+
652
+ def handler(context: nuclio.Context, event: nuclio.Event) -> None:
653
+ """
654
+ Run model monitoring application processor
655
+
656
+ :param context: the Nuclio context
657
+ :param event: trigger event
658
+ """
659
+ MonitoringApplicationController().run()
@@ -291,8 +291,14 @@ class SQLStoreBase(StoreBase):
291
291
  # Get the model endpoints records using sqlalchemy ORM
292
292
  with create_session(dsn=self._sql_connection_string) as session:
293
293
  # Generate the list query
294
- query = session.query(self.model_endpoints_table).filter_by(
295
- project=self.project
294
+ query = (
295
+ session.query(self.model_endpoints_table)
296
+ .options(
297
+ # Exclude these fields when listing model endpoints to avoid returning too much data (ML-6594)
298
+ sqlalchemy.orm.defer(mm_schemas.EventFieldType.FEATURE_STATS),
299
+ sqlalchemy.orm.defer(mm_schemas.EventFieldType.CURRENT_STATS),
300
+ )
301
+ .filter_by(project=self.project)
296
302
  )
297
303
 
298
304
  # Apply filters
@@ -283,6 +283,9 @@ class KVStoreBase(StoreBase):
283
283
  endpoint_dict = self.get_model_endpoint(
284
284
  endpoint_id=endpoint_id,
285
285
  )
286
+ # Exclude these fields when listing model endpoints to avoid returning too much data (ML-6594)
287
+ endpoint_dict.pop(mm_schemas.EventFieldType.FEATURE_STATS)
288
+ endpoint_dict.pop(mm_schemas.EventFieldType.CURRENT_STATS)
286
289
 
287
290
  if labels and not self._validate_labels(
288
291
  endpoint_dict=endpoint_dict, labels=labels
@@ -111,12 +111,9 @@ def get_connection_string(secret_provider: typing.Callable[[str], str] = None) -
111
111
 
112
112
  """
113
113
 
114
- return (
115
- mlrun.get_secret_or_env(
116
- key=mlrun.common.schemas.model_monitoring.ProjectSecretKeys.ENDPOINT_STORE_CONNECTION,
117
- secret_provider=secret_provider,
118
- )
119
- or mlrun.mlconf.model_endpoint_monitoring.endpoint_store_connection
114
+ return mlrun.get_secret_or_env(
115
+ key=mlrun.common.schemas.model_monitoring.ProjectSecretKeys.ENDPOINT_STORE_CONNECTION,
116
+ secret_provider=secret_provider,
120
117
  )
121
118
 
122
119
 
@@ -129,12 +126,9 @@ def get_tsdb_connection_string(
129
126
  :return: Valid TSDB connection string.
130
127
  """
131
128
 
132
- return (
133
- mlrun.get_secret_or_env(
134
- key=mlrun.common.schemas.model_monitoring.ProjectSecretKeys.TSDB_CONNECTION,
135
- secret_provider=secret_provider,
136
- )
137
- or mlrun.mlconf.model_endpoint_monitoring.tsdb_connection
129
+ return mlrun.get_secret_or_env(
130
+ key=mlrun.common.schemas.model_monitoring.ProjectSecretKeys.TSDB_CONNECTION,
131
+ secret_provider=secret_provider,
138
132
  )
139
133
 
140
134
 
@@ -257,8 +257,7 @@ class ModelMonitoringWriter(StepToDict):
257
257
  "data drift app",
258
258
  endpoint_id=endpoint_id,
259
259
  )
260
- store = mlrun.model_monitoring.get_store_object(project=self.project)
261
- store.update_model_endpoint(
260
+ self._app_result_store.update_model_endpoint(
262
261
  endpoint_id=endpoint_id,
263
262
  attributes=json.loads(event[ResultData.RESULT_EXTRA_DATA]),
264
263
  )
mlrun/projects/project.py CHANGED
@@ -3205,6 +3205,7 @@ class MlrunProject(ModelObj):
3205
3205
  endpoint_store_connection: Optional[str] = None,
3206
3206
  stream_path: Optional[str] = None,
3207
3207
  tsdb_connection: Optional[str] = None,
3208
+ replace_creds: bool = False,
3208
3209
  ):
3209
3210
  """
3210
3211
  Set the credentials that will be used by the project's model monitoring
@@ -3234,6 +3235,11 @@ class MlrunProject(ModelObj):
3234
3235
  pass `v3io` and the system will generate the exact path.
3235
3236
  3. TDEngine - for TDEngine tsdb, please provide full websocket connection URL,
3236
3237
  for example taosws://<username>:<password>@<host>:<port>.
3238
+ :param replace_creds: If True, will override the existing credentials.
3239
+ Please keep in mind that if you already enabled model monitoring on
3240
+ your project this action can cause data loose and will require redeploying
3241
+ all model monitoring functions & model monitoring infra
3242
+ & tracked model server.
3237
3243
  """
3238
3244
  db = mlrun.db.get_run_db(secrets=self._secrets)
3239
3245
  db.set_model_monitoring_credentials(
@@ -3244,7 +3250,17 @@ class MlrunProject(ModelObj):
3244
3250
  "stream_path": stream_path,
3245
3251
  "tsdb_connection": tsdb_connection,
3246
3252
  },
3253
+ replace_creds=replace_creds,
3247
3254
  )
3255
+ if replace_creds:
3256
+ logger.info(
3257
+ "Model monitoring credentials were set successfully. "
3258
+ "Please keep in mind that if you already had model monitoring functions "
3259
+ "/ model monitoring infra / tracked model server "
3260
+ "deployed on your project, you will need to redeploy them."
3261
+ "For redeploying the model monitoring infra, please use `enable_model_monitoring` API "
3262
+ "and set `rebuild_images=True`"
3263
+ )
3248
3264
 
3249
3265
  def run_function(
3250
3266
  self,
mlrun/run.py CHANGED
@@ -201,8 +201,8 @@ def get_or_create_ctx(
201
201
  rundb: str = "",
202
202
  project: str = "",
203
203
  upload_artifacts=False,
204
- labels: dict = None,
205
- ):
204
+ labels: Optional[dict] = None,
205
+ ) -> MLClientCtx:
206
206
  """called from within the user program to obtain a run context
207
207
 
208
208
  the run context is an interface for receiving parameters, data and logging
@@ -217,10 +217,10 @@ def get_or_create_ctx(
217
217
  :param spec: dictionary holding run spec
218
218
  :param with_env: look for context in environment vars, default True
219
219
  :param rundb: path/url to the metadata and artifact database
220
- :param project: project to initiate the context in (by default mlrun.mlctx.default_project)
220
+ :param project: project to initiate the context in (by default `mlrun.mlconf.default_project`)
221
221
  :param upload_artifacts: when using local context (not as part of a job/run), upload artifacts to the
222
222
  system default artifact path location
223
- :param labels: dict of the context labels
223
+ :param labels: dict of the context labels
224
224
  :return: execution context
225
225
 
226
226
  Examples::
@@ -639,7 +639,7 @@ def code_to_function(
639
639
  :param requirements: a list of python packages
640
640
  :param requirements_file: path to a python requirements file
641
641
  :param categories: list of categories for mlrun Function Hub, defaults to None
642
- :param labels: immutable name/value pairs to tag the function with useful metadata, defaults to None
642
+ :param labels: name/value pairs dict to tag the function with useful metadata, defaults to None
643
643
  :param with_doc: indicates whether to document the function parameters, defaults to True
644
644
  :param ignored_tags: notebook cells to ignore when converting notebooks to py code (separated by ';')
645
645
 
mlrun/runtimes/base.py CHANGED
@@ -674,7 +674,7 @@ class BaseRuntime(ModelObj):
674
674
  selector="",
675
675
  hyper_param_options: HyperParamOptions = None,
676
676
  inputs: dict = None,
677
- outputs: dict = None,
677
+ outputs: list = None,
678
678
  workdir: str = "",
679
679
  artifact_path: str = "",
680
680
  image: str = "",
@@ -1,4 +1,4 @@
1
1
  {
2
- "git_commit": "3c23888a9d9d88d792dcc5ebebff5fe242fde9a1",
3
- "version": "1.7.0-rc29"
2
+ "git_commit": "b63882a2db45e06db696edea855169cc921ff9f2",
3
+ "version": "1.7.0-rc31"
4
4
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mlrun
3
- Version: 1.7.0rc29
3
+ Version: 1.7.0rc31
4
4
  Summary: Tracking and config of machine learning runs
5
5
  Home-page: https://github.com/mlrun/mlrun
6
6
  Author: Yaron Haviv
@@ -28,14 +28,14 @@ Requires-Dist: aiohttp-retry ~=2.8
28
28
  Requires-Dist: click ~=8.1
29
29
  Requires-Dist: nest-asyncio ~=1.0
30
30
  Requires-Dist: ipython ~=8.10
31
- Requires-Dist: nuclio-jupyter ~=0.10.0
31
+ Requires-Dist: nuclio-jupyter ~=0.10.3
32
32
  Requires-Dist: numpy <1.27.0,>=1.16.5
33
33
  Requires-Dist: pandas <2.2,>=1.2
34
34
  Requires-Dist: pyarrow <15,>=10.0
35
35
  Requires-Dist: pyyaml <7,>=5.4.1
36
36
  Requires-Dist: requests ~=2.31
37
37
  Requires-Dist: tabulate ~=0.8.6
38
- Requires-Dist: v3io ~=0.6.4
38
+ Requires-Dist: v3io ~=0.6.8
39
39
  Requires-Dist: pydantic <1.10.15,>=1.10.8
40
40
  Requires-Dist: mergedeep ~=1.3
41
41
  Requires-Dist: v3io-frames ~=0.10.14
@@ -46,12 +46,12 @@ Requires-Dist: v3iofs ~=0.1.17
46
46
  Requires-Dist: storey ~=1.7.20
47
47
  Requires-Dist: inflection ~=0.5.0
48
48
  Requires-Dist: python-dotenv ~=0.17.0
49
- Requires-Dist: setuptools ~=69.1
49
+ Requires-Dist: setuptools ~=70.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.2
54
- Requires-Dist: mlrun-pipelines-kfp-v1-8 ~=0.1.2
53
+ Requires-Dist: mlrun-pipelines-kfp-common ~=0.1.3
54
+ Requires-Dist: mlrun-pipelines-kfp-v1-8 ~=0.1.3
55
55
  Provides-Extra: alibaba-oss
56
56
  Requires-Dist: ossfs ==2023.12.0 ; extra == 'alibaba-oss'
57
57
  Requires-Dist: oss2 ==2.18.1 ; extra == 'alibaba-oss'
@@ -1,14 +1,14 @@
1
1
  mlrun/__init__.py,sha256=y08M1JcKXy5-9_5WaI9fn5aV5BxIQ5QkbduJK0OxWbA,7470
2
2
  mlrun/__main__.py,sha256=iAifncsrQQx6ozXXmz7GH1OiNl8PA7KS3TnwlxnHGeo,45890
3
- mlrun/config.py,sha256=dvp_VezfkokDF_38mLsSo9fwYo3E6F4C8JlichFj4nk,65054
3
+ mlrun/config.py,sha256=BL2vLdeImJrBcTCdmChpUzgJxas_W_y063sEFrN201s,65727
4
4
  mlrun/errors.py,sha256=VpC_imeSz2twRMZZb7u90Zj29z6aO-tCxUHD3ZA_Axw,7465
5
5
  mlrun/execution.py,sha256=StasIZWmnbRjXDn5d7VU6DWu1fs_AJQckSiUKlSYL9M,42021
6
6
  mlrun/features.py,sha256=m17K_3l9Jktwb9dOwlHLTAPTlemsWrRF7dJhXUX0iJU,15429
7
7
  mlrun/k8s_utils.py,sha256=WdUajadvAhTR7sAMQdwFqKeJMimuTyqm02VdwK1A4xU,7023
8
8
  mlrun/lists.py,sha256=3PqBdcajdwhTe1XuFsAaHTuFVM2kjwepf31qqE82apg,8384
9
- mlrun/model.py,sha256=rkwDmPyg0Q8ZUTaOCNthyf-wsmTHNa4QG_hPyMVm-GQ,73448
9
+ mlrun/model.py,sha256=AtpmCoJV9yCu4ifPxtb5n9sv_alOhiLyASAxJdLkIr0,73197
10
10
  mlrun/render.py,sha256=n8SeY3ogVrsV02-7-H0lt1RmpkxGpbI-11RQx61Vq9E,13267
11
- mlrun/run.py,sha256=kFbSzHjJEMTtaUYIWWztlKdKpFDRINnbFlR-HFZT_O8,42891
11
+ mlrun/run.py,sha256=1fBaemIeTg9xpXF_THQb_x0bSAq_4xmC9s-PeDd-IC0,42911
12
12
  mlrun/secrets.py,sha256=ibtCK79u7JVBZF6F0SP1-xXXF5MyrLEUs_TCWiJAnlc,7798
13
13
  mlrun/alerts/__init__.py,sha256=0gtG1BG0DXxFrXegIkjbM1XEN4sP9ODo0ucXrNld1hU,601
14
14
  mlrun/alerts/alert.py,sha256=JJfMFF-o0j8oTAIkyXAQG0YbU-kZlIDl0A8ILQi8vfA,6510
@@ -20,14 +20,14 @@ mlrun/artifacts/manager.py,sha256=I_1mgQ0M8j9JgryFJsB2yN3Pv47oQM6Jfg1fotTPDX0,15
20
20
  mlrun/artifacts/model.py,sha256=ObUkqFMejYOtq0CDFdpYwzwhQ5bsHv0dHTysuVPJnbs,21102
21
21
  mlrun/artifacts/plots.py,sha256=dS0mHGt1b20tN2JyEH9H5o5I0oMKZkzn3Uz_3Hf4WjU,4813
22
22
  mlrun/common/__init__.py,sha256=xY3wHC4TEJgez7qtnn1pQvHosi8-5UJOCtyGBS7FcGE,571
23
- mlrun/common/constants.py,sha256=Qfuw2qJdBANp54A3OdKtbUWcQEQeATL9-qLVBhuwGBk,3023
23
+ mlrun/common/constants.py,sha256=MdXxRPquVguW98WCnEUcJ9A46MOo-MrafFTk7QOK8BA,3052
24
24
  mlrun/common/helpers.py,sha256=LRIULbCg8afKkPnzsZ99-B-JPVjcwR1G9vO--1rzRrQ,1387
25
25
  mlrun/common/secrets.py,sha256=vc8WV82EZsCB5ENjUkObFOzZP59aZ1w8F82PTnqwBnc,5181
26
26
  mlrun/common/types.py,sha256=cs8AtoI6LSuf2LF5Hg2ZSQ0QTex5_KqVSmNAU8_rnlk,1037
27
27
  mlrun/common/db/__init__.py,sha256=xY3wHC4TEJgez7qtnn1pQvHosi8-5UJOCtyGBS7FcGE,571
28
28
  mlrun/common/db/sql_session.py,sha256=Znc8KE2oLy4lg3_vRki1sVlNx59TgDSOTCXfU561hBU,2659
29
29
  mlrun/common/formatters/__init__.py,sha256=91yPb5xoLK7fTIOC5C7ndJMvyEBlQY6f0CjenLYbsZw,785
30
- mlrun/common/formatters/artifact.py,sha256=rwMSedrkcNz6XVHhyuxVqfFTnHNrT2XU8hg42VVKvwE,1363
30
+ mlrun/common/formatters/artifact.py,sha256=t4LmoWCFjPJ_YzzQCC2aMJwOeeLi84le979m6OTRyoM,1401
31
31
  mlrun/common/formatters/base.py,sha256=LHwWWnQJCmvlnOCCmG8YtJ_xzs0xBI8PujYDL5Ky9H4,4101
32
32
  mlrun/common/formatters/function.py,sha256=fGa5m5aI_XvQdvrUr73dmUwrEJrE_8wM4_P4q8RgBTg,1477
33
33
  mlrun/common/formatters/pipeline.py,sha256=hGUV_3wcTEMa-JouspbjgJ1JGKa2Wc5cXSaH2XhOdMc,1763
@@ -59,7 +59,7 @@ mlrun/common/schemas/notification.py,sha256=Ge7eWNGf_XUFkjOnUkyUOubdEbmXh9z_OSGc
59
59
  mlrun/common/schemas/object.py,sha256=VleJSUmDJMl92knLgaDE8SWCi3ky0UaHcwcwOIapPQ8,1980
60
60
  mlrun/common/schemas/pagination.py,sha256=q7nk6bipkDiE7HExIVqhy5ANl-zv0x8QC9Kg6AkLtDA,887
61
61
  mlrun/common/schemas/pipeline.py,sha256=MhH07_fAQXNAnmf5j6oXZp8qh9cxGcZlReMdt-ZJf40,1429
62
- mlrun/common/schemas/project.py,sha256=YVmnF187RjVaD0RYcw8hZuk7g_sv9grSv-K9R4cjDhw,4885
62
+ mlrun/common/schemas/project.py,sha256=wQAq6TAELf2_9qhLBTJ6Ofntdybx5Fbhy2uBsUzEmrk,4976
63
63
  mlrun/common/schemas/regex.py,sha256=8_vbDeAE0SODJDj7yUFg1FbaB9CNydYQTJ29JxE74Kc,776
64
64
  mlrun/common/schemas/runs.py,sha256=yGGJxSHT_Mq4RLjlfuxW4pm9i-Py9eOsGUAofs_VqVM,1268
65
65
  mlrun/common/schemas/runtime_resource.py,sha256=2rSuYL-9JkESSomlnU91mYDbfV-IkqZeXx6OHuMmDxs,1554
@@ -68,43 +68,43 @@ mlrun/common/schemas/secret.py,sha256=51tCN1F8DFTq4y_XdHIMDy3I1TnMEBX8kO8BHKavYF
68
68
  mlrun/common/schemas/tag.py,sha256=OAn9Qt6z8ibqw8uU8WQSvuwY8irUv45Dhx2Ko5FzUss,884
69
69
  mlrun/common/schemas/workflow.py,sha256=eRoaOBFiWbvP0iwZ6Aof5JmheV81A0-0PGi8L4vuXmI,1823
70
70
  mlrun/common/schemas/model_monitoring/__init__.py,sha256=Z_tv5dO-tT_oHMSk98AnDQW0XM-fXqNKduFxkW3jO_E,1809
71
- mlrun/common/schemas/model_monitoring/constants.py,sha256=ZRdZ0NBAcB8UBX751PZTK0lYCnoGZDTzl2wAH1dZ3X0,9763
71
+ mlrun/common/schemas/model_monitoring/constants.py,sha256=izIN1HUF_rWpbxVR2AYXGww-Noq9rnx2k7zOvrRt7Js,9921
72
72
  mlrun/common/schemas/model_monitoring/grafana.py,sha256=SG13MFUUz_tk6-mWeSx17qcdEW4ekicxqNtnMSwRTCY,1559
73
73
  mlrun/common/schemas/model_monitoring/model_endpoints.py,sha256=3wPlCFNoBsHlCMgyJlXfNP-ZqIRsBXzyBX79O2PHkeg,13799
74
74
  mlrun/data_types/__init__.py,sha256=EkxfkFoHb91zz3Aymq-KZfCHlPMzEc3bBqgzPUwmHWY,1087
75
75
  mlrun/data_types/data_types.py,sha256=hWiL5TPOj9EK7_nd1yttLBUhXTmBYLDZzmG-hWzzhHE,4751
76
76
  mlrun/data_types/infer.py,sha256=z2EbSpR6xWEE5-HRUtDZkapHQld3xMbzXtTX83K-690,6134
77
- mlrun/data_types/spark.py,sha256=qKQ2TIAPQWDgmIOmpyV5_uuyUX3AnXWSq6GPpVjVIek,9457
78
- mlrun/data_types/to_pandas.py,sha256=_QLSxMn9MPlXxcu1Ki_slzZx2eJbWJzrGvBR7_K-wcQ,9929
79
- mlrun/datastore/__init__.py,sha256=pQQI_Vi7H45Bbe6f9JaF8dOgtGWf3qY9_kd8NNTfaog,4093
77
+ mlrun/data_types/spark.py,sha256=xfcr6lcaLcHepnrHavx_vacMJK7BC8FWsUKjwrjjn6w,9509
78
+ mlrun/data_types/to_pandas.py,sha256=xPEcQ5_Wb-L1WRhPy8lBbw5HZlPx0PaQOPZISTvrn80,11182
79
+ mlrun/datastore/__init__.py,sha256=8WvgHF245fvU9u98ctRqosvEmQ9iAKKIIS_dSgj_fmU,4153
80
80
  mlrun/datastore/alibaba_oss.py,sha256=OfQ9AbsJNBFF9DFgUdq38TvKw6qwnHmEcnH-nze6ZZg,4827
81
81
  mlrun/datastore/azure_blob.py,sha256=T0IzgBQJxcv8c97VJ1KDayvo_dkxLlgQboa7vcx1WEk,9077
82
- mlrun/datastore/base.py,sha256=aZOlBxJizs-YkvZ_zNuvT0_V4uax28zi6CiQ91sWC2o,25511
83
- mlrun/datastore/datastore.py,sha256=vbawdOBXr4qjj8lvFxrd1PmHNIis45UWFcbvJ7S6hN8,9215
84
- mlrun/datastore/datastore_profile.py,sha256=9g467ic1vuTP_HY101mMXG_smnLxkjhuBp6dR4_LIkg,18937
82
+ mlrun/datastore/base.py,sha256=1siNKPQYPh6i3aTLiXwlYmJGssYpQZuZRWJo3m-4ZS8,25868
83
+ mlrun/datastore/datastore.py,sha256=F2i8XI2hkQwf51OjqdFZ8179oHvDfQtaT5pvfkvMV9U,9389
84
+ mlrun/datastore/datastore_profile.py,sha256=ZCU-brdRNXNE8EnknzFljtWjciEJ9sGZnoahFxbdEt4,18940
85
85
  mlrun/datastore/dbfs_store.py,sha256=5IkxnFQXkW0fdx-ca5jjQnUdTsTfNdJzMvV31ZpDNrM,6634
86
86
  mlrun/datastore/filestore.py,sha256=nS3Ie6jG41NDiW_as9tF8Nu5maaSVEKYKUr1IQtPhuA,3767
87
- mlrun/datastore/google_cloud_storage.py,sha256=ctcfnZ41-uyNd3qjPe-VO9DAtfikhpNPPb8L9coKcr0,6272
87
+ mlrun/datastore/google_cloud_storage.py,sha256=Kj_2aqkFos5zoE6rGOBN27yWuuMc62mwGINy3AQWQoc,6309
88
88
  mlrun/datastore/hdfs.py,sha256=TfL1zUWVRxEHF9kswZtOzrMdDmhSfiSVIAjz7fxWyVw,1876
89
- mlrun/datastore/inmem.py,sha256=myYn8aR85BjY89ioUInKUH3MLJNoItuG-r6zGP_0teM,2780
89
+ mlrun/datastore/inmem.py,sha256=d2dIvHlOQylhc-i4B5Kk9e9ayXnF7DICc5yUlHcNwqs,2873
90
90
  mlrun/datastore/redis.py,sha256=OKMkDCU3APhxfo65SyJq605u1DsfOYH0fODnCXZRqEU,5575
91
- mlrun/datastore/s3.py,sha256=moTbuBy7YydP_2frCpN8DjmVRMzg9M2R20CN6RTe_Ls,8330
91
+ mlrun/datastore/s3.py,sha256=YXLIcsODJJuIuTTp4MTPjJqbvxzPRMeXpbImV9_q8Y8,8449
92
92
  mlrun/datastore/snowflake_utils.py,sha256=Wohvnlmq8j1d98RCaknll-iWdZZpSlCrKhUOEy0_-CA,1483
93
- mlrun/datastore/sources.py,sha256=cm7uZp5IKd_x2uZ6peAysNXIvIvYQze0-QQzp64Jf_o,46167
93
+ mlrun/datastore/sources.py,sha256=RDa-QFJD95m3ClgHJogjcJK1HEPGZopxG4BTDUEuTQ4,46506
94
94
  mlrun/datastore/spark_udf.py,sha256=NnnB3DZxZb-rqpRy7b-NC7QWXuuqFn3XkBDc86tU4mQ,1498
95
95
  mlrun/datastore/spark_utils.py,sha256=50rllp6xXpXY__1LbU7aTXUU5ca8dKAfoskPre3npZo,1611
96
96
  mlrun/datastore/store_resources.py,sha256=rcLoG506AMmR8qPJU_gE-G5d34VJVV_vNlZ3VHqho6c,6869
97
- mlrun/datastore/targets.py,sha256=9l_7-rpwaWnamtgViXM7WXk5Zs5jfqJP9RteeqJblM4,80748
97
+ mlrun/datastore/targets.py,sha256=JbffgF3yct9FSJ2LaKR--iUNCDq5Qzbd5mYqq1yPmeg,81178
98
98
  mlrun/datastore/utils.py,sha256=l9dLZb_VCbHs_htqMFRv4qiestZ8z8K-4eY1MxHS8wE,7720
99
99
  mlrun/datastore/v3io.py,sha256=tmZ2S-POZhjjKPE_0T1EkHcv6Q10pz5KQiaTXE1Be-4,8102
100
100
  mlrun/datastore/wasbfs/__init__.py,sha256=s5Ul-0kAhYqFjKDR2X0O2vDGDbLQQduElb32Ev56Te4,1343
101
101
  mlrun/datastore/wasbfs/fs.py,sha256=MnSj7Q4OKA2L55ihCmUnj2t3GA3B77oLMdAw-yxvN9w,6151
102
102
  mlrun/db/__init__.py,sha256=WqJ4x8lqJ7ZoKbhEyFqkYADd9P6E3citckx9e9ZLcIU,1163
103
103
  mlrun/db/auth_utils.py,sha256=hpg8D2r82oN0BWabuWN04BTNZ7jYMAF242YSUpK7LFM,5211
104
- mlrun/db/base.py,sha256=aC95Or4q10Hpw9JvsxPa17D8FJmhj6jzRRlroADwpws,24018
104
+ mlrun/db/base.py,sha256=t4XucEG66vBLhYMKh3eLrsPtlTysEJODaOa9Y7tebPE,24047
105
105
  mlrun/db/factory.py,sha256=ibIrE5QkIIyzDU1FXKrfbc31cZiRLYKDZb8dqCpQwyU,2397
106
- mlrun/db/httpdb.py,sha256=KxujVYpRSU-_2mWMWK_mhP_uY4CDUDkY1Fv-onuUq2k,183267
107
- mlrun/db/nopdb.py,sha256=gKqoDBtE4KqO_apaTOfwLX6Ym0Mz_-jN7jcwB4sdMSA,20724
106
+ mlrun/db/httpdb.py,sha256=1jgSjNHweB-YbY0BDWxu6BVbvPDkQJWPpS-344lm0Qs,183712
107
+ mlrun/db/nopdb.py,sha256=-tuqIhDwbt4ru4JcY6z3mft2251s5Br6hKd13nbJLsc,20753
108
108
  mlrun/feature_store/__init__.py,sha256=FhHRc8NdqL_HWpCs7A8dKruxJS5wEm55Gs3dcgBiRUg,1522
109
109
  mlrun/feature_store/api.py,sha256=uYheyPkJOVCrz1jivvpGatgy_JBAq0It0XZqPpNVQkE,48699
110
110
  mlrun/feature_store/common.py,sha256=DKmoRk04NCS1gv7qZuEUa2-g8WsfR6IWjYctcrqKVlg,12853
@@ -114,11 +114,10 @@ mlrun/feature_store/ingestion.py,sha256=kT3Hbz1PBjsJd-GPBm2ap0sg9-fiXxaSXoEIo-dO
114
114
  mlrun/feature_store/steps.py,sha256=EAOJvcnKNiFxSXlJuRxEEZU3q2a6GpMH9KffTfXeWKo,28860
115
115
  mlrun/feature_store/retrieval/__init__.py,sha256=bwA4copPpLQi8fyoUAYtOyrlw0-6f3-Knct8GbJSvRg,1282
116
116
  mlrun/feature_store/retrieval/base.py,sha256=zgDsRsYQz8eqReKBEeTP0O4UoLoVYjWpO1o1gtvbjRA,30230
117
- mlrun/feature_store/retrieval/conversion.py,sha256=Bh3d8vLtEwpJHvE9oezhKi9fwk5BzXbjx8yfXURWFMY,11638
118
117
  mlrun/feature_store/retrieval/dask_merger.py,sha256=t60xciYp6StUQLEyFyI4JK5NpWkdBy2MGCs6beimaWU,5575
119
118
  mlrun/feature_store/retrieval/job.py,sha256=vm50yAqvaazuTGbCOgN_e1Ax8gh-d-qQN4Ebz4OnsLs,8557
120
119
  mlrun/feature_store/retrieval/local_merger.py,sha256=jM-8ta44PeNUc1cKMPs-TxrO9t8pXbwu_Tw8MZrLxUY,4513
121
- mlrun/feature_store/retrieval/spark_merger.py,sha256=4csLoT9mRFUO-abuMVsEiRY4gvA6glsLDiAxfEc6kvA,11718
120
+ mlrun/feature_store/retrieval/spark_merger.py,sha256=n3WxFlrY0y5mJ-7U8GJJlv9QulG4WSUSdHY0xJjHzhY,10552
122
121
  mlrun/feature_store/retrieval/storey_merger.py,sha256=5YM0UPrLjGOobulHkowRO-1LuvFD2cm_0GxcpnTdu0I,6314
123
122
  mlrun/frameworks/__init__.py,sha256=qRHe_nUfxpoLaSASAkIxcW6IyunMtxq5LXhjzZMO_1E,743
124
123
  mlrun/frameworks/parallel_coordinates.py,sha256=AJ3TuvffAC4_zN-RVcyTkq1T3lomDqgeNf7hVBmscEw,11517
@@ -211,18 +210,17 @@ mlrun/launcher/factory.py,sha256=RW7mfzEFi8fR0M-4W1JQg1iq3_muUU6OTqT_3l4Ubrk,233
211
210
  mlrun/launcher/local.py,sha256=pP9-ZrNL8OnNDEiXTAKAZQnmLpS_mCc2v-mJw329eks,11269
212
211
  mlrun/launcher/remote.py,sha256=tGICSfWtvUHeR31mbzy6gqHejmDxjPUgjtxXTWhRubg,7699
213
212
  mlrun/model_monitoring/__init__.py,sha256=dm5_j0_pwqrdzFwTaEtGnKfv2nVpNaM56nBI-oqLbNU,879
214
- mlrun/model_monitoring/api.py,sha256=9GjhaOQqt53ezlH0VG2iLvb5t8YE7bBAuiJGXXt52wI,27828
213
+ mlrun/model_monitoring/api.py,sha256=WMxB4MMrsturFwyr1G1CHOddt0d_VSYcNEobjuxkjHg,27815
215
214
  mlrun/model_monitoring/application.py,sha256=RJ8HeAPfGO3P2A_dEZYNg60c1wKTADh2YSv8BQ5embg,745
216
- mlrun/model_monitoring/controller.py,sha256=MQ4BF3vfJSyYZv6HuTuSLt_nqaflgBYyOSwCccbwaio,27981
217
- mlrun/model_monitoring/controller_handler.py,sha256=J9Y9ppLsQaxyYRl21165Rr7QuI9EM-mk-5veAqs4Bi0,1336
215
+ mlrun/model_monitoring/controller.py,sha256=2goeuMFT7dqQXdREhoVhNXxYyGfA8K4REHCWr_qj6nk,27586
218
216
  mlrun/model_monitoring/evidently_application.py,sha256=iOc42IVjj8m6PDBmVcKIMWm46Bu0EdO9SDcH40Eqhyo,769
219
217
  mlrun/model_monitoring/features_drift_table.py,sha256=c6GpKtpOJbuT1u5uMWDL_S-6N4YPOmlktWMqPme3KFY,25308
220
- mlrun/model_monitoring/helpers.py,sha256=EG-FXyBWDTrsum_Ew6IomyFULP97RxOB3vOCs0wxvnI,11797
218
+ mlrun/model_monitoring/helpers.py,sha256=jD9m_Dte16kDZc1GCXvv-0z-MCel1LRg_6Pn1nwqk7A,11599
221
219
  mlrun/model_monitoring/model_endpoint.py,sha256=7VX0cBATqLsA4sSinDzouf41ndxqh2mf5bO9BW0G5Z4,4017
222
220
  mlrun/model_monitoring/prometheus.py,sha256=cUR4y73GutJB_pA_VCBDl9YtK4PcIJp2wj2rnLVmYi4,7578
223
221
  mlrun/model_monitoring/stream_processing.py,sha256=JRZP8raWUqG47z0yqES6LzHSEFYS5wcDxNXuJeFgjSA,42336
224
222
  mlrun/model_monitoring/tracking_policy.py,sha256=sQq956akAQpntkrJwIgFWcEq-JpyVcg0FxgNa4h3V70,5502
225
- mlrun/model_monitoring/writer.py,sha256=VAmzU6voK-WsGiprolPgVPmI-CY5YHVSGEW-IdiEQ-M,9889
223
+ mlrun/model_monitoring/writer.py,sha256=aQ1DAi5XUi1WXXfcSgBQGKiTANT6E61I74abiu_5s8s,9824
226
224
  mlrun/model_monitoring/applications/__init__.py,sha256=i793GqYee01mRh_KD6GShvX7UbPBgdJDO4qf9Z3BXEQ,970
227
225
  mlrun/model_monitoring/applications/_application_steps.py,sha256=-g9jxIAFM5f22iJaUAQVlM8QRSv6KFT92I4WHmZe_f0,6028
228
226
  mlrun/model_monitoring/applications/base.py,sha256=buVKyghH4AB3chZ5py1vyMIFnTF-deY8YDf_fPC9BnQ,11307
@@ -235,13 +233,13 @@ mlrun/model_monitoring/db/stores/__init__.py,sha256=ZScmxeZZ3yZ84MocdDGRtvVIixSo
235
233
  mlrun/model_monitoring/db/stores/base/__init__.py,sha256=JufJETW3BXzPhFwbRa8dMf7BFGGZKceIWIMgr5x9n9c,599
236
234
  mlrun/model_monitoring/db/stores/base/store.py,sha256=cUXEA0HKiwIE3FzuUuH40kIzJMgJuiuOMrKbfIzR4Ig,7386
237
235
  mlrun/model_monitoring/db/stores/sqldb/__init__.py,sha256=6CsTXAxeLbbf8yfCADTaxmiavqwrLEdYFJ-qc5kgDAY,569
238
- mlrun/model_monitoring/db/stores/sqldb/sql_store.py,sha256=iel2aXAMsaFmZJVraCTmAJrNv-IIbUGejjbo-LWKrgo,25730
236
+ mlrun/model_monitoring/db/stores/sqldb/sql_store.py,sha256=mqLwLUskB9kl5yoToFvFw5XgrK6lqITR-91fOkLRbOo,26074
239
237
  mlrun/model_monitoring/db/stores/sqldb/models/__init__.py,sha256=lCiGw9WKPtHAIgrtNS2jyvM5OZvZvogBh76iurNYblg,2453
240
238
  mlrun/model_monitoring/db/stores/sqldb/models/base.py,sha256=V2B5WdQM0KHKq0FNDq61q7tkNJ9fNRbxfnxrholKgjk,5352
241
239
  mlrun/model_monitoring/db/stores/sqldb/models/mysql.py,sha256=tCzc5ANPxZw7tIPsn9p30woK0_s2HU_FsNzA3hL2wQs,2666
242
240
  mlrun/model_monitoring/db/stores/sqldb/models/sqlite.py,sha256=yJJZppbKj3PsOANS_DXAQFFHKX4cQcm6Pz2DoxRiXMk,1104
243
241
  mlrun/model_monitoring/db/stores/v3io_kv/__init__.py,sha256=6CsTXAxeLbbf8yfCADTaxmiavqwrLEdYFJ-qc5kgDAY,569
244
- mlrun/model_monitoring/db/stores/v3io_kv/kv_store.py,sha256=OfhR5N4tfVkERgkzRQaKx8Y41HnqAaYJ6fJltiJa6lk,26909
242
+ mlrun/model_monitoring/db/stores/v3io_kv/kv_store.py,sha256=Qd37n5F3cBAgjmQJWeERRBps-F3Eo3bq867r0AxBXlk,27158
245
243
  mlrun/model_monitoring/db/tsdb/__init__.py,sha256=_Mfa4gguX86OS1fQCxnt_QSaNh603-zPYAK8NjYk7t8,4040
246
244
  mlrun/model_monitoring/db/tsdb/base.py,sha256=sESs5U71a-iJKI-999sAloYH-mjOR3uSEQG7BxRs6No,13134
247
245
  mlrun/model_monitoring/db/tsdb/helpers.py,sha256=0oUXc4aUkYtP2SGP6jTb3uPPKImIUsVsrb9otX9a7O4,1189
@@ -276,9 +274,9 @@ mlrun/platforms/iguazio.py,sha256=1h5BpdAEQJBg2vIt7ySjUADU0ip5OkaMYr0_VREi9ys,13
276
274
  mlrun/projects/__init__.py,sha256=Lv5rfxyXJrw6WGOWJKhBz66M6t3_zsNMCfUD6waPwx4,1153
277
275
  mlrun/projects/operations.py,sha256=Y-NwrIFXpltUXcDLDQ9b33NY_r4TOPvJgO4F-xSuzoM,19252
278
276
  mlrun/projects/pipelines.py,sha256=Xc9tQSBBPEg1Yxn-b4RseFdfO7SvrYC-ekdw_hAcPH8,40006
279
- mlrun/projects/project.py,sha256=r_7_wPYNxkJUUZ0X_tOKzxTN5kn4vdKXK0Z6FMfGhr8,183253
277
+ mlrun/projects/project.py,sha256=zRw7pFcr6zVbeOzEy7ZuQfnEpECLgIWfYs0bvDLPxp4,184342
280
278
  mlrun/runtimes/__init__.py,sha256=0-tYDkew-Cr4DM-wztvMbzDA5xq385Jjo-GrtO_84Sc,8741
281
- mlrun/runtimes/base.py,sha256=yw5SceU2Js1AOr4f0ByZ3l1VsZUAnKKeC41DRTmNi68,37633
279
+ mlrun/runtimes/base.py,sha256=g716uF0BpL6vLe75bNqpJ2SjtYW_tQqICl46d_4ljHs,37633
282
280
  mlrun/runtimes/daskjob.py,sha256=JfK8rSPY-0SYnLJdtp_ts3oKyad0pA98th-2VntYzK0,19387
283
281
  mlrun/runtimes/funcdoc.py,sha256=CC9cWRPgBiM2sk4NJTqusjc6O9kZ-49vGA5WRPjREKE,9796
284
282
  mlrun/runtimes/function_reference.py,sha256=iWKRe4r2GTc5S8FOIASYUNLwwne8NqIui51PFr8Q4mg,4918
@@ -344,11 +342,11 @@ mlrun/utils/notifications/notification/ipython.py,sha256=ZtVL30B_Ha0VGoo4LxO-voT
344
342
  mlrun/utils/notifications/notification/slack.py,sha256=wqpFGr5BTvFO5KuUSzFfxsgmyU1Ohq7fbrGeNe9TXOk,7006
345
343
  mlrun/utils/notifications/notification/webhook.py,sha256=y8Hc3rlR48M2W76lfI2knEBxlD_T6k9P9kXD_vqFnfg,4472
346
344
  mlrun/utils/version/__init__.py,sha256=7kkrB7hEZ3cLXoWj1kPoDwo4MaswsI2JVOBpbKgPAgc,614
347
- mlrun/utils/version/version.json,sha256=xlFBNbnsq7BOx6HdePGss8ZM1One7QqCiZemT0r2eEQ,89
345
+ mlrun/utils/version/version.json,sha256=CSbhlx7tFTCKt-V8In4483tdV8_sGcxAwjCzZ9B3Cgw,89
348
346
  mlrun/utils/version/version.py,sha256=eEW0tqIAkU9Xifxv8Z9_qsYnNhn3YH7NRAfM-pPLt1g,1878
349
- mlrun-1.7.0rc29.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
350
- mlrun-1.7.0rc29.dist-info/METADATA,sha256=HoHebuF98M2r2vMAVKCKU_UUzvLOYG2-J-tTbI_2KuQ,19534
351
- mlrun-1.7.0rc29.dist-info/WHEEL,sha256=Z4pYXqR_rTB7OWNDYFOm1qRk0RX6GFP2o8LgvP453Hk,91
352
- mlrun-1.7.0rc29.dist-info/entry_points.txt,sha256=1Owd16eAclD5pfRCoJpYC2ZJSyGNTtUr0nCELMioMmU,46
353
- mlrun-1.7.0rc29.dist-info/top_level.txt,sha256=NObLzw3maSF9wVrgSeYBv-fgnHkAJ1kEkh12DLdd5KM,6
354
- mlrun-1.7.0rc29.dist-info/RECORD,,
347
+ mlrun-1.7.0rc31.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
348
+ mlrun-1.7.0rc31.dist-info/METADATA,sha256=sN0pn-ngWYxQP4TOJ7cNZZoFmu7XN0G9KOkKyapg03A,19534
349
+ mlrun-1.7.0rc31.dist-info/WHEEL,sha256=-oYQCr74JF3a37z2nRlQays_SX2MqOANoqVjBBAP2yE,91
350
+ mlrun-1.7.0rc31.dist-info/entry_points.txt,sha256=1Owd16eAclD5pfRCoJpYC2ZJSyGNTtUr0nCELMioMmU,46
351
+ mlrun-1.7.0rc31.dist-info/top_level.txt,sha256=NObLzw3maSF9wVrgSeYBv-fgnHkAJ1kEkh12DLdd5KM,6
352
+ mlrun-1.7.0rc31.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (70.3.0)
2
+ Generator: setuptools (71.0.3)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5