mlrun 1.10.0rc37__py3-none-any.whl → 1.10.0rc41__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 +6 -1
  2. mlrun/common/constants.py +6 -0
  3. mlrun/common/model_monitoring/helpers.py +1 -1
  4. mlrun/common/schemas/model_monitoring/constants.py +0 -2
  5. mlrun/common/secrets.py +22 -1
  6. mlrun/launcher/local.py +2 -0
  7. mlrun/model.py +7 -1
  8. mlrun/model_monitoring/api.py +3 -2
  9. mlrun/model_monitoring/applications/base.py +6 -3
  10. mlrun/model_monitoring/applications/context.py +1 -0
  11. mlrun/model_monitoring/db/tsdb/base.py +2 -4
  12. mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py +17 -11
  13. mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py +154 -76
  14. mlrun/projects/project.py +15 -2
  15. mlrun/run.py +26 -1
  16. mlrun/runtimes/__init__.py +18 -0
  17. mlrun/runtimes/base.py +3 -0
  18. mlrun/runtimes/local.py +5 -2
  19. mlrun/runtimes/mounts.py +5 -0
  20. mlrun/runtimes/nuclio/application/application.py +2 -0
  21. mlrun/runtimes/nuclio/function.py +14 -0
  22. mlrun/runtimes/nuclio/serving.py +67 -4
  23. mlrun/runtimes/pod.py +59 -10
  24. mlrun/serving/server.py +42 -10
  25. mlrun/serving/states.py +75 -26
  26. mlrun/utils/helpers.py +86 -10
  27. mlrun/utils/version/version.json +2 -2
  28. {mlrun-1.10.0rc37.dist-info → mlrun-1.10.0rc41.dist-info}/METADATA +3 -3
  29. {mlrun-1.10.0rc37.dist-info → mlrun-1.10.0rc41.dist-info}/RECORD +33 -33
  30. {mlrun-1.10.0rc37.dist-info → mlrun-1.10.0rc41.dist-info}/WHEEL +0 -0
  31. {mlrun-1.10.0rc37.dist-info → mlrun-1.10.0rc41.dist-info}/entry_points.txt +0 -0
  32. {mlrun-1.10.0rc37.dist-info → mlrun-1.10.0rc41.dist-info}/licenses/LICENSE +0 -0
  33. {mlrun-1.10.0rc37.dist-info → mlrun-1.10.0rc41.dist-info}/top_level.txt +0 -0
mlrun/serving/states.py CHANGED
@@ -522,7 +522,9 @@ class BaseStep(ModelObj):
522
522
 
523
523
  root = self._extract_root_step()
524
524
 
525
- if not isinstance(root, RootFlowStep):
525
+ if not isinstance(root, RootFlowStep) or (
526
+ isinstance(root, RootFlowStep) and root.engine != "async"
527
+ ):
526
528
  raise GraphError(
527
529
  "ModelRunnerStep can be added to 'Flow' topology graph only"
528
530
  )
@@ -589,15 +591,14 @@ class BaseStep(ModelObj):
589
591
  root.get_shared_model_by_artifact_uri(model_artifact_uri)
590
592
  )
591
593
 
592
- if not shared_runnable_name:
593
- if not actual_shared_name:
594
- raise GraphError(
595
- f"Can't find shared model for {name} model endpoint"
596
- )
597
- else:
598
- step.class_args[schemas.ModelRunnerStepData.MODELS][name][
599
- schemas.ModelsData.MODEL_PARAMETERS.value
600
- ]["shared_runnable_name"] = actual_shared_name
594
+ if not actual_shared_name:
595
+ raise GraphError(
596
+ f"Can't find shared model named {shared_runnable_name}"
597
+ )
598
+ elif not shared_runnable_name:
599
+ step.class_args[schemas.ModelRunnerStepData.MODELS][name][
600
+ schemas.ModelsData.MODEL_PARAMETERS.value
601
+ ]["shared_runnable_name"] = actual_shared_name
601
602
  elif actual_shared_name != shared_runnable_name:
602
603
  raise GraphError(
603
604
  f"Model endpoint {name} shared runnable name mismatch: "
@@ -1148,6 +1149,7 @@ class Model(storey.ParallelExecutionRunnable, ModelObj):
1148
1149
  "artifact_uri",
1149
1150
  "shared_runnable_name",
1150
1151
  "shared_proxy_mapping",
1152
+ "execution_mechanism",
1151
1153
  ]
1152
1154
  kind = "model"
1153
1155
 
@@ -1170,6 +1172,7 @@ class Model(storey.ParallelExecutionRunnable, ModelObj):
1170
1172
  self.model_artifact: Optional[ModelArtifact] = None
1171
1173
  self.model_provider: Optional[ModelProvider] = None
1172
1174
  self._artifact_were_loaded = False
1175
+ self._execution_mechanism = None
1173
1176
 
1174
1177
  def __init_subclass__(cls):
1175
1178
  super().__init_subclass__()
@@ -1189,6 +1192,20 @@ class Model(storey.ParallelExecutionRunnable, ModelObj):
1189
1192
  raise_missing_schema_exception=False,
1190
1193
  )
1191
1194
 
1195
+ # Check if the relevant predict method is implemented when trying to initialize the model
1196
+ if self._execution_mechanism == storey.ParallelExecutionMechanisms.asyncio:
1197
+ if self.__class__.predict_async is Model.predict_async:
1198
+ raise mlrun.errors.ModelRunnerError(
1199
+ f"{self.name} is running with {self._execution_mechanism} execution_mechanism but predict_async() "
1200
+ f"is not implemented"
1201
+ )
1202
+ else:
1203
+ if self.__class__.predict is Model.predict:
1204
+ raise mlrun.errors.ModelRunnerError(
1205
+ f"{self.name} is running with {self._execution_mechanism} execution_mechanism but predict() "
1206
+ f"is not implemented"
1207
+ )
1208
+
1192
1209
  def _load_artifacts(self) -> None:
1193
1210
  if not self._artifact_were_loaded:
1194
1211
  artifact = self._get_artifact_object()
@@ -1219,11 +1236,11 @@ class Model(storey.ParallelExecutionRunnable, ModelObj):
1219
1236
 
1220
1237
  def predict(self, body: Any, **kwargs) -> Any:
1221
1238
  """Override to implement prediction logic. If the logic requires asyncio, override predict_async() instead."""
1222
- return body
1239
+ raise NotImplementedError("predict() method not implemented")
1223
1240
 
1224
1241
  async def predict_async(self, body: Any, **kwargs) -> Any:
1225
1242
  """Override to implement prediction logic if the logic requires asyncio."""
1226
- return body
1243
+ raise NotImplementedError("predict_async() method not implemented")
1227
1244
 
1228
1245
  def run(self, body: Any, path: str, origin_name: Optional[str] = None) -> Any:
1229
1246
  return self.predict(body)
@@ -1644,6 +1661,10 @@ class ModelRunnerStep(MonitoredStep):
1644
1661
  Note when ModelRunnerStep is used in a graph, MLRun automatically imports
1645
1662
  the default language model class (LLModel) during function deployment.
1646
1663
 
1664
+ Note ModelRunnerStep can only be added to a graph that has the flow topology and running with async engine.
1665
+
1666
+ Note see config_pool_resource method documentation for default number of max threads and max processes.
1667
+
1647
1668
  :param model_selector: ModelSelector instance whose select() method will be used to select models to run on each
1648
1669
  event. Optional. If not passed, all models will be run.
1649
1670
  :param raise_exception: If True, an error will be raised when model selection fails or if one of the models raised
@@ -1656,7 +1677,12 @@ class ModelRunnerStep(MonitoredStep):
1656
1677
  """
1657
1678
 
1658
1679
  kind = "model_runner"
1659
- _dict_fields = MonitoredStep._dict_fields + ["_shared_proxy_mapping"]
1680
+ _dict_fields = MonitoredStep._dict_fields + [
1681
+ "_shared_proxy_mapping",
1682
+ "max_processes",
1683
+ "max_threads",
1684
+ "pool_factor",
1685
+ ]
1660
1686
 
1661
1687
  def __init__(
1662
1688
  self,
@@ -1667,6 +1693,10 @@ class ModelRunnerStep(MonitoredStep):
1667
1693
  raise_exception: bool = True,
1668
1694
  **kwargs,
1669
1695
  ):
1696
+ self.max_processes = None
1697
+ self.max_threads = None
1698
+ self.pool_factor = None
1699
+
1670
1700
  if isinstance(model_selector, ModelSelector) and model_selector_parameters:
1671
1701
  raise mlrun.errors.MLRunInvalidArgumentError(
1672
1702
  "Cannot provide a model_selector object as argument to `model_selector` and also provide "
@@ -1728,6 +1758,7 @@ class ModelRunnerStep(MonitoredStep):
1728
1758
  2. Create a new model endpoint with the same name and set it to `latest`.
1729
1759
 
1730
1760
  :param override: bool allow override existing model on the current ModelRunnerStep.
1761
+ :raise GraphError: when the shared model is not found in the root flow step shared models.
1731
1762
  """
1732
1763
  model_class, model_params = (
1733
1764
  "mlrun.serving.Model",
@@ -1845,14 +1876,6 @@ class ModelRunnerStep(MonitoredStep):
1845
1876
  otherwise block the main event loop thread.
1846
1877
  * "asyncio" – To run in an asyncio task. This is appropriate for I/O tasks that use asyncio, allowing the
1847
1878
  event loop to continue running while waiting for a response.
1848
- * "shared_executor" – Reuses an external executor (typically managed by the flow or context) to execute the
1849
- runnable. Should be used only if you have multiply `ParallelExecution` in the same flow and especially
1850
- useful when:
1851
- - You want to share a heavy resource like a large model loaded onto a GPU.
1852
- - You want to centralize task scheduling or coordination for multiple lightweight tasks.
1853
- - You aim to minimize overhead from creating new executors or processes/threads per runnable.
1854
- The runnable is expected to be pre-initialized and reused across events, enabling efficient use of
1855
- memory and hardware accelerators.
1856
1879
  * "naive" – To run in the main event loop. This is appropriate only for trivial computation and/or file I/O.
1857
1880
  It means that the runnable will not actually be run in parallel to anything else.
1858
1881
 
@@ -2073,6 +2096,24 @@ class ModelRunnerStep(MonitoredStep):
2073
2096
  "Monitoring data must be a dictionary."
2074
2097
  )
2075
2098
 
2099
+ def configure_pool_resource(
2100
+ self,
2101
+ max_processes: Optional[int] = None,
2102
+ max_threads: Optional[int] = None,
2103
+ pool_factor: Optional[int] = None,
2104
+ ) -> None:
2105
+ """
2106
+ Configure the resource limits for the shared models in the graph.
2107
+
2108
+ :param max_processes: Maximum number of processes to spawn (excluding dedicated processes).
2109
+ Defaults to the number of CPUs or 16 if undetectable.
2110
+ :param max_threads: Maximum number of threads to spawn. Defaults to 32.
2111
+ :param pool_factor: Multiplier to scale the number of process/thread workers per runnable. Defaults to 1.
2112
+ """
2113
+ self.max_processes = max_processes
2114
+ self.max_threads = max_threads
2115
+ self.pool_factor = pool_factor
2116
+
2076
2117
  def init_object(self, context, namespace, mode="sync", reset=False, **extra_kwargs):
2077
2118
  self.context = context
2078
2119
  if not self._is_local_function(context):
@@ -2091,24 +2132,28 @@ class ModelRunnerStep(MonitoredStep):
2091
2132
  )
2092
2133
  model_objects = []
2093
2134
  for model, model_params in models.values():
2135
+ model_name = model_params.get("name")
2094
2136
  model_params[schemas.MonitoringData.INPUT_PATH] = (
2095
2137
  self.class_args.get(
2096
2138
  mlrun.common.schemas.ModelRunnerStepData.MONITORING_DATA, {}
2097
2139
  )
2098
- .get(model_params.get("name"), {})
2140
+ .get(model_name, {})
2099
2141
  .get(schemas.MonitoringData.INPUT_PATH)
2100
2142
  )
2101
2143
  model_params[schemas.MonitoringData.RESULT_PATH] = (
2102
2144
  self.class_args.get(
2103
2145
  mlrun.common.schemas.ModelRunnerStepData.MONITORING_DATA, {}
2104
2146
  )
2105
- .get(model_params.get("name"), {})
2147
+ .get(model_name, {})
2106
2148
  .get(schemas.MonitoringData.RESULT_PATH)
2107
2149
  )
2108
2150
  model = get_class(model, namespace).from_dict(
2109
2151
  model_params, init_with_params=True
2110
2152
  )
2111
2153
  model._raise_exception = False
2154
+ model._execution_mechanism = execution_mechanism_by_model_name.get(
2155
+ model_name
2156
+ )
2112
2157
  model_objects.append(model)
2113
2158
  self._async_object = ModelRunner(
2114
2159
  model_selector=model_selector,
@@ -2117,6 +2162,9 @@ class ModelRunnerStep(MonitoredStep):
2117
2162
  shared_proxy_mapping=self._shared_proxy_mapping or None,
2118
2163
  name=self.name,
2119
2164
  context=context,
2165
+ max_processes=self.max_processes,
2166
+ max_threads=self.max_threads,
2167
+ pool_factor=self.pool_factor,
2120
2168
  )
2121
2169
 
2122
2170
 
@@ -2959,7 +3007,7 @@ class RootFlowStep(FlowStep):
2959
3007
 
2960
3008
  def get_shared_model_by_artifact_uri(
2961
3009
  self, artifact_uri: str
2962
- ) -> Optional[tuple[str, str, dict]]:
3010
+ ) -> Union[tuple[str, str, dict], tuple[None, None, None]]:
2963
3011
  """
2964
3012
  Get a shared model by its artifact URI.
2965
3013
  :param artifact_uri: The artifact URI of the model.
@@ -2968,9 +3016,9 @@ class RootFlowStep(FlowStep):
2968
3016
  for model_name, (model_class, model_params) in self.shared_models.items():
2969
3017
  if model_params.get("artifact_uri") == artifact_uri:
2970
3018
  return model_name, model_class, model_params
2971
- return None
3019
+ return None, None, None
2972
3020
 
2973
- def config_pool_resource(
3021
+ def configure_shared_pool_resource(
2974
3022
  self,
2975
3023
  max_processes: Optional[int] = None,
2976
3024
  max_threads: Optional[int] = None,
@@ -3018,6 +3066,7 @@ class RootFlowStep(FlowStep):
3018
3066
  model_params, init_with_params=True
3019
3067
  )
3020
3068
  model._raise_exception = False
3069
+ model._execution_mechanism = self._shared_models_mechanism[model.name]
3021
3070
  self.context.executor.add_runnable(
3022
3071
  model, self._shared_models_mechanism[model.name]
3023
3072
  )
mlrun/utils/helpers.py CHANGED
@@ -253,6 +253,40 @@ def verify_field_regex(
253
253
  return False
254
254
 
255
255
 
256
+ def validate_function_name(name: str) -> None:
257
+ """
258
+ Validate that a function name conforms to Kubernetes DNS-1123 label requirements.
259
+
260
+ Function names for Kubernetes resources must:
261
+ - Be lowercase alphanumeric characters or '-'
262
+ - Start and end with an alphanumeric character
263
+ - Be at most 63 characters long
264
+
265
+ This validation should be called AFTER normalize_name() has been applied.
266
+
267
+ Refer to https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names
268
+
269
+ :param name: The function name to validate (after normalization)
270
+ :raises MLRunInvalidArgumentError: If the function name is invalid for Kubernetes
271
+ """
272
+ if not name:
273
+ return
274
+
275
+ verify_field_regex(
276
+ "function.metadata.name",
277
+ name,
278
+ mlrun.utils.regex.dns_1123_label,
279
+ raise_on_failure=True,
280
+ log_message=(
281
+ f"Function name '{name}' is invalid. "
282
+ "Kubernetes function names must be DNS-1123 labels: "
283
+ "lowercase alphanumeric characters or '-', "
284
+ "starting and ending with an alphanumeric character, "
285
+ "and at most 63 characters long."
286
+ ),
287
+ )
288
+
289
+
256
290
  def validate_builder_source(
257
291
  source: str, pull_at_runtime: bool = False, workdir: Optional[str] = None
258
292
  ):
@@ -476,6 +510,40 @@ def normalize_name(name: str):
476
510
  return name.lower()
477
511
 
478
512
 
513
+ def ensure_batch_job_suffix(
514
+ function_name: typing.Optional[str],
515
+ ) -> tuple[typing.Optional[str], bool, str]:
516
+ """
517
+ Ensure that a function name has the batch job suffix appended to prevent database collision.
518
+
519
+ This helper is used by to_job() methods in runtimes that convert online functions (serving, local)
520
+ to batch processing jobs. The suffix prevents the job from overwriting the original function in
521
+ the database when both are stored with the same (project, name) key.
522
+
523
+ :param function_name: The original function name (can be None or empty string)
524
+
525
+ :return: A tuple of (modified_name, was_renamed, suffix) where:
526
+ - modified_name: The function name with the batch suffix (if not already present),
527
+ or empty string if input was empty
528
+ - was_renamed: True if the suffix was added, False if it was already present or if name was empty/None
529
+ - suffix: The suffix value that was used (or would have been used)
530
+
531
+ """
532
+ suffix = mlrun_constants.RESERVED_BATCH_JOB_SUFFIX
533
+
534
+ # Handle None or empty string
535
+ if not function_name:
536
+ return function_name, False, suffix
537
+
538
+ if not function_name.endswith(suffix):
539
+ return (
540
+ f"{function_name}{suffix}",
541
+ True,
542
+ suffix,
543
+ )
544
+ return function_name, False, suffix
545
+
546
+
479
547
  class LogBatchWriter:
480
548
  def __init__(self, func, batch=16, maxtime=5):
481
549
  self.batch = batch
@@ -970,8 +1038,15 @@ def enrich_image_url(
970
1038
  else:
971
1039
  image_url = "mlrun/mlrun"
972
1040
 
973
- if is_mlrun_image and tag and ":" not in image_url:
974
- image_url = f"{image_url}:{tag}"
1041
+ if is_mlrun_image and tag:
1042
+ if ":" not in image_url:
1043
+ image_url = f"{image_url}:{tag}"
1044
+ elif enrich_kfp_python_version:
1045
+ # For mlrun-kfp >= 1.10.0-rc0, append python suffix to existing tag
1046
+ python_suffix = resolve_image_tag_suffix(
1047
+ mlrun_version, client_python_version
1048
+ )
1049
+ image_url = f"{image_url}{python_suffix}" if python_suffix else image_url
975
1050
 
976
1051
  registry = (
977
1052
  config.images_registry if is_mlrun_image else config.vendor_images_registry
@@ -2464,15 +2539,16 @@ def merge_requirements(
2464
2539
  return [str(req) for req in merged.values()]
2465
2540
 
2466
2541
 
2467
- def get_module_name_from_path(source_file_path: str) -> str:
2542
+ def get_source_and_working_dir_paths(source_file_path) -> (pathlib.Path, pathlib.Path):
2468
2543
  source_file_path_object = pathlib.Path(source_file_path).resolve()
2469
- current_dir_path_object = pathlib.Path(".").resolve()
2470
- if not source_file_path_object.is_relative_to(current_dir_path_object):
2471
- raise mlrun.errors.MLRunRuntimeError(
2472
- f"Source file path '{source_file_path}' is not under the current working directory "
2473
- f"(which is required when running with local=True)"
2474
- )
2544
+ working_dir_path_object = pathlib.Path(".").resolve()
2545
+ return source_file_path_object, working_dir_path_object
2546
+
2547
+
2548
+ def get_relative_module_name_from_path(
2549
+ source_file_path_object, working_dir_path_object
2550
+ ) -> str:
2475
2551
  relative_path_to_source_file = source_file_path_object.relative_to(
2476
- current_dir_path_object
2552
+ working_dir_path_object
2477
2553
  )
2478
2554
  return ".".join(relative_path_to_source_file.with_suffix("").parts)
@@ -1,4 +1,4 @@
1
1
  {
2
- "git_commit": "5c0bf44084e089850e98e6255745822c5107d001",
3
- "version": "1.10.0-rc37"
2
+ "git_commit": "09d6e7ada4324bf80961e0d54f9fd9857852fe53",
3
+ "version": "1.10.0-rc41"
4
4
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mlrun
3
- Version: 1.10.0rc37
3
+ Version: 1.10.0rc41
4
4
  Summary: Tracking and config of machine learning runs
5
5
  Home-page: https://github.com/mlrun/mlrun
6
6
  Author: Yaron Haviv
@@ -113,7 +113,7 @@ Requires-Dist: apscheduler<4,>=3.11; extra == "api"
113
113
  Requires-Dist: objgraph~=3.6; extra == "api"
114
114
  Requires-Dist: igz-mgmt~=0.4.1; extra == "api"
115
115
  Requires-Dist: humanfriendly~=10.0; extra == "api"
116
- Requires-Dist: fastapi~=0.116.0; extra == "api"
116
+ Requires-Dist: fastapi~=0.120.0; extra == "api"
117
117
  Requires-Dist: sqlalchemy~=2.0; extra == "api"
118
118
  Requires-Dist: sqlalchemy-utils~=0.41.2; extra == "api"
119
119
  Requires-Dist: pymysql~=1.1; extra == "api"
@@ -203,7 +203,7 @@ Requires-Dist: dask~=2023.12.1; python_version < "3.11" and extra == "complete-a
203
203
  Requires-Dist: databricks-sdk~=0.20.0; extra == "complete-api"
204
204
  Requires-Dist: distributed==2024.8; python_version >= "3.11" and extra == "complete-api"
205
205
  Requires-Dist: distributed~=2023.12.1; python_version < "3.11" and extra == "complete-api"
206
- Requires-Dist: fastapi~=0.116.0; extra == "complete-api"
206
+ Requires-Dist: fastapi~=0.120.0; extra == "complete-api"
207
207
  Requires-Dist: gcsfs<=2025.7.0,>=2025.5.1; extra == "complete-api"
208
208
  Requires-Dist: google-cloud-bigquery-storage~=2.17; extra == "complete-api"
209
209
  Requires-Dist: google-cloud-bigquery[bqstorage,pandas]==3.14.1; extra == "complete-api"
@@ -6,25 +6,25 @@ mlrun/execution.py,sha256=Ozu8SjO-nQ6l5vHwqrTQjmP6koMpUqNQpp6qn6jvhVE,58802
6
6
  mlrun/features.py,sha256=jMEXo6NB36A6iaxNEJWzdtYwUmglYD90OIKTIEeWhE8,15841
7
7
  mlrun/k8s_utils.py,sha256=zIacVyvsXrXVO-DdxAoGQOGEDWOGJEFJzYPhPVnn3z8,24548
8
8
  mlrun/lists.py,sha256=OlaV2QIFUzmenad9kxNJ3k4whlDyxI3zFbGwr6vpC5Y,8561
9
- mlrun/model.py,sha256=JxYWYfMvRMloVEsxfghjH8gq5vsVCVk-OJmHGhbPJuU,88954
9
+ mlrun/model.py,sha256=flea-6ktoUqHp5HtMV8HZVotUl6Mm2kIcPHtVNLHXKk,89287
10
10
  mlrun/render.py,sha256=5DlhD6JtzHgmj5RVlpaYiHGhX84Q7qdi4RCEUj2UMgw,13195
11
- mlrun/run.py,sha256=eXmu2C2Z-iWWRkyraYjOoM22lRfnyavOnskylHwPeV8,48948
11
+ mlrun/run.py,sha256=BA0CPJqtcM3c-hMmnGl6AccRMyIejJxvCcrSXTwcRwU,49841
12
12
  mlrun/secrets.py,sha256=VFETVDJFZ0AGDivYjhYscO_YHnzeBnAebxlio7Svkq0,9633
13
13
  mlrun/alerts/__init__.py,sha256=0gtG1BG0DXxFrXegIkjbM1XEN4sP9ODo0ucXrNld1hU,601
14
14
  mlrun/alerts/alert.py,sha256=QQFZGydQbx9RvAaSiaH-ALQZVcDKQX5lgizqj_rXW2k,15948
15
15
  mlrun/artifacts/__init__.py,sha256=ZrEUNto7tGdnBGteCp9zOyO8b78z7O3xgcpzUt9UHE4,1240
16
16
  mlrun/artifacts/base.py,sha256=6x_2KPMNOciiNNUsiKgJ-b6ejxAHm_Ro22xODLoTc44,28559
17
17
  mlrun/artifacts/dataset.py,sha256=bhb5Kfbs8P28yjnpN76th5lLEUl5nAqD4VqVzHEVPrM,16421
18
- mlrun/artifacts/document.py,sha256=p5HsWdmIIJ0NahS7y3EEQN2tfHtUrUmUG-8BEEyi_Jc,17373
18
+ mlrun/artifacts/document.py,sha256=VYoWcFUB45B-z_nhbedFCpiorZsDBxkTNRLWjYvri0Q,17585
19
19
  mlrun/artifacts/helpers.py,sha256=ejTEC9vkI2w5FHn5Gopw3VEIxuni0bazWUnR6BBWZfU,1662
20
20
  mlrun/artifacts/llm_prompt.py,sha256=pshXzYXPDBAe6C0vecn9MyRNyPdxrah3c80oZUKkYWA,9840
21
21
  mlrun/artifacts/manager.py,sha256=_cDNCS7wwmFIsucJ2uOgHxZQECmIGb8Wye64b6oLgKU,16642
22
22
  mlrun/artifacts/model.py,sha256=9yU9NZlxxY_ifSyXOgMnPi_RMDmawY9A-rLi-_VJs4c,25662
23
23
  mlrun/artifacts/plots.py,sha256=wmaxVXiAPSCyn3M7pIlcBu9pP3O8lrq0Ewx6iHRDF9s,4238
24
24
  mlrun/common/__init__.py,sha256=kXGBqhLN0rlAx0kTXhozGzFsIdSqW0uTSKMmsLgq_is,569
25
- mlrun/common/constants.py,sha256=H2Qh65elADGD1vgMzI6gYT5RAA2q8uFL6UByIwYBV34,4173
25
+ mlrun/common/constants.py,sha256=BbKFJN6EoFSOmUmvos20ZAty8hWtwG0quTrfbLzrWO4,4294
26
26
  mlrun/common/helpers.py,sha256=DIdqs_eN3gO5bZ8iFobIvx8cEiOxYxhFIyut6-O69T0,1385
27
- mlrun/common/secrets.py,sha256=8g9xtIw-9DGcwiZRT62a5ozSQM-aYo8yK5Ghey9WM0g,5179
27
+ mlrun/common/secrets.py,sha256=VdvEg2r_DwqdLGfNxkSRLhQqH_yI88xi7rE7GsaH3UY,5941
28
28
  mlrun/common/types.py,sha256=1gxThbmC0Vd0U1ffIkEwz4T4S7JOgHt70rvw8TCO21c,1073
29
29
  mlrun/common/db/__init__.py,sha256=kXGBqhLN0rlAx0kTXhozGzFsIdSqW0uTSKMmsLgq_is,569
30
30
  mlrun/common/db/dialects.py,sha256=QN9bx7CTo32IIdJ2J3ZrsX8IUdp_BPxBtl0LyjMEC9g,868
@@ -38,7 +38,7 @@ mlrun/common/formatters/pipeline.py,sha256=bMjW0lDZWozuq4B3WtzZtXncvKHcPF7cdN_Ym
38
38
  mlrun/common/formatters/project.py,sha256=4cxC5B6PKvpL2SYxxqg9vpEhoaWtart6iCIr2A85lE0,2100
39
39
  mlrun/common/formatters/run.py,sha256=LlqhhVY4dAp5y17k_sWBtHaJogdNdtJWF0iO9sX-bUw,1059
40
40
  mlrun/common/model_monitoring/__init__.py,sha256=kXGBqhLN0rlAx0kTXhozGzFsIdSqW0uTSKMmsLgq_is,569
41
- mlrun/common/model_monitoring/helpers.py,sha256=DZ1xAtqHNswKY5rrZo2cVTmQLsfS-M7fSF4XsV-FIYE,6237
41
+ mlrun/common/model_monitoring/helpers.py,sha256=lrUw6UKUbCh17f7aOOFljDHFfxYN5ih8nW5sz_90IHk,6237
42
42
  mlrun/common/runtimes/constants.py,sha256=CGMHE2gdsNHXNsa-u3eL0o8sQmDs6PN5FLpMlCDClns,12218
43
43
  mlrun/common/schemas/__init__.py,sha256=oEG9cIcDxzrTVrjDRuYBTSsEOK0ifFVdQp-D1EUkIDY,5517
44
44
  mlrun/common/schemas/alert.py,sha256=u6INAHBhQIfm-mMsGqDJo1_JDN6gOuWZa-8fOU-aOUE,10182
@@ -74,7 +74,7 @@ mlrun/common/schemas/serving.py,sha256=4ek9JZDagkdeXyfkX6P6xp4deUNSf_kqXUaXcKSuv
74
74
  mlrun/common/schemas/tag.py,sha256=1wqEiAujsElojWb3qmuyfcaLFjXSNAAQdafkDx7fkn0,891
75
75
  mlrun/common/schemas/workflow.py,sha256=Y-FHJnxs5c86yetuOAPdEJPkne__tLPCxjSXSb4lrjo,2541
76
76
  mlrun/common/schemas/model_monitoring/__init__.py,sha256=ndeGXCJTE_GvMSb1FfQ5fXvhs0I8nO_yWy1UBSZIifY,1956
77
- mlrun/common/schemas/model_monitoring/constants.py,sha256=uQ3ataL-tAcwGY1GQLEvu05gGgMb2kBr6YRzjJS6yYs,13953
77
+ mlrun/common/schemas/model_monitoring/constants.py,sha256=GimtHVQmMkCh4e5Fy0YLeeMWP8D5uCvVcWdpM63SPJg,13906
78
78
  mlrun/common/schemas/model_monitoring/functions.py,sha256=Ej8ChjmMZq1HP32THNABoktQHN1mdlkSqKbofxu10i4,2536
79
79
  mlrun/common/schemas/model_monitoring/grafana.py,sha256=THQlLfPBevBksta8p5OaIsBaJtsNSXexLvHrDxOaVns,2095
80
80
  mlrun/common/schemas/model_monitoring/model_endpoints.py,sha256=aevkfKWRbRj2cxabeUrVka49lJ2SRDA7I8rD-Fihr2Q,13648
@@ -225,10 +225,10 @@ mlrun/launcher/__init__.py,sha256=JL8qkT1lLr1YvW6iP0hmwDTaSR2RfrMDx0-1gWRhTOE,57
225
225
  mlrun/launcher/base.py,sha256=IgBE-ZS1ZiGzucg5SElGtO4qOB0cqYQfGtZTcRc2S3Y,17378
226
226
  mlrun/launcher/client.py,sha256=cl40ZdF2fU1QbUKdl4Xnucb1u2h-8_dn095qIUyxbuM,6402
227
227
  mlrun/launcher/factory.py,sha256=RW7mfzEFi8fR0M-4W1JQg1iq3_muUU6OTqT_3l4Ubrk,2338
228
- mlrun/launcher/local.py,sha256=3gv-IQYoIChSmRaZ0vLUh0Tu26oLMCx9GbBYh4fWygQ,12161
228
+ mlrun/launcher/local.py,sha256=sBpVxNoVLiPGDam_PFLJUb0vvKAWjMgqNY0A_RiR0hQ,12218
229
229
  mlrun/launcher/remote.py,sha256=zFXE52Cq_7EkC8lfNKT0ceIbye0CfFiundF7O1YU4Xw,7810
230
230
  mlrun/model_monitoring/__init__.py,sha256=qDQnncjya9XPTlfvGyfWsZWiXc-glGZrrNja-5QmCZk,782
231
- mlrun/model_monitoring/api.py,sha256=g9st30YgcApT42ZU-aSlnLiLdDwATkujXg_5UrAFt1M,27738
231
+ mlrun/model_monitoring/api.py,sha256=yxADX4V7rNPgh2Zh95hIDtWuhkinItay-SfMwm9bqGY,27783
232
232
  mlrun/model_monitoring/controller.py,sha256=2XOkOZRB03K9ph6TH-ICspHga-GQOURL0C8-0GTHaTY,43961
233
233
  mlrun/model_monitoring/features_drift_table.py,sha256=c6GpKtpOJbuT1u5uMWDL_S-6N4YPOmlktWMqPme3KFY,25308
234
234
  mlrun/model_monitoring/helpers.py,sha256=50oFqgIc5xFHYPIVgq3M-Gbr7epqAI5NgHmvOeMy52U,24667
@@ -236,8 +236,8 @@ mlrun/model_monitoring/stream_processing.py,sha256=bryYO3D0cC10MAQ-liHxUZ79MrL-V
236
236
  mlrun/model_monitoring/writer.py,sha256=l2D_5Ms5Wq5jfyQRVJbGBBRTMLjMmIAxwPeHWmrc9Kg,16382
237
237
  mlrun/model_monitoring/applications/__init__.py,sha256=BwlmRELlFJf2b2YMyv5kUSHNe8--OyqWhDgRlT8a_8g,779
238
238
  mlrun/model_monitoring/applications/_application_steps.py,sha256=t9LDIqQUGE10cyjyhlg0QqN1yVx0apD1HpERYLJfm8U,7409
239
- mlrun/model_monitoring/applications/base.py,sha256=f3WWMoXinsqzWtYebQnsMCGhi7M50E8LdeYmQl5QXjg,51339
240
- mlrun/model_monitoring/applications/context.py,sha256=3W3AW4oyJgx_nW_5mDsV59Iy5D3frkfYMQSc6DgBc4c,17004
239
+ mlrun/model_monitoring/applications/base.py,sha256=Bd8bD2kJlS4ZaGAkj88o4iwRjXIE76gYdhXqAjXfUCk,51344
240
+ mlrun/model_monitoring/applications/context.py,sha256=oBYtCoMG6jvOowrPPDogZ_IjWaPIZ-Jqj5IdUlSzEzY,17040
241
241
  mlrun/model_monitoring/applications/histogram_data_drift.py,sha256=2qgfFmrpHf-x0_EaHD-0T28piwSQzw-HH71aV1GwbZs,15389
242
242
  mlrun/model_monitoring/applications/results.py,sha256=LfBQOmkpKGvVGNrcj5QiXsRIG2IRgcv_Xqe4QJBmauk,5699
243
243
  mlrun/model_monitoring/applications/evidently/__init__.py,sha256=-DqdPnBSrjZhFvKOu_Ie3MiFvlur9sPTZpZ1u0_1AE8,690
@@ -246,17 +246,17 @@ mlrun/model_monitoring/db/__init__.py,sha256=r47xPGZpIfMuv8J3PQCZTSqVPMhUta4sSJC
246
246
  mlrun/model_monitoring/db/_schedules.py,sha256=CJm4ulHFeE2Jxl4TcDMkvDAFfkb4D9Kd7UEzSAe2PNM,11902
247
247
  mlrun/model_monitoring/db/_stats.py,sha256=aZZqaOV9eRSp9aDrlxmFOiGtYGHejLTGgp3Ff0NGs1Y,6982
248
248
  mlrun/model_monitoring/db/tsdb/__init__.py,sha256=4S86V_Ot_skE16SLkw0WwsaAUB0ECH6SoJdp-TIu6s8,4645
249
- mlrun/model_monitoring/db/tsdb/base.py,sha256=5BHSGoG7I9Tjf0jtpoK4sbg4_-9iAqDlrSWO5JCxdWE,33984
249
+ mlrun/model_monitoring/db/tsdb/base.py,sha256=WLlz2j01OceE6S0JetWIZykZFEhx4tFfl1fnqFWiJx4,33909
250
250
  mlrun/model_monitoring/db/tsdb/helpers.py,sha256=0oUXc4aUkYtP2SGP6jTb3uPPKImIUsVsrb9otX9a7O4,1189
251
251
  mlrun/model_monitoring/db/tsdb/tdengine/__init__.py,sha256=vgBdsKaXUURKqIf3M0y4sRatmSVA4CQiJs7J5dcVBkQ,620
252
252
  mlrun/model_monitoring/db/tsdb/tdengine/schemas.py,sha256=TuWuaCZw8sV1gSwN2BPmW8Gzwe3dsRN__KkJB9lum00,13116
253
253
  mlrun/model_monitoring/db/tsdb/tdengine/stream_graph_steps.py,sha256=Uadj0UvAmln2MxDWod-kAzau1uNlqZh981rPhbUH_5M,2857
254
254
  mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connection.py,sha256=dtkaHaWKWERPXylEWMECeetwrz3rWl0P43AADcTjlls,9330
255
- mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py,sha256=0ltrjvxsPEKeIgK7Lio9T2YXofIPdB_mGMOtdjI6_KY,53947
255
+ mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py,sha256=b9n5f701PmMuvrCueu_jTXLohOHEKq92UP6lZdJqLZ0,54284
256
256
  mlrun/model_monitoring/db/tsdb/tdengine/writer_graph_steps.py,sha256=zMof6hUr0dsyor73pnOWkJP62INAvslHU0nUklbT-3w,2053
257
257
  mlrun/model_monitoring/db/tsdb/v3io/__init__.py,sha256=aL3bfmQsUQ-sbvKGdNihFj8gLCK3mSys0qDcXtYOwgc,616
258
258
  mlrun/model_monitoring/db/tsdb/v3io/stream_graph_steps.py,sha256=sNQFj6qyJx5eSBKRC3gyTc1cfh1l2IkRpPtuZwtzCW0,6844
259
- mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py,sha256=1QPeICQJDWTdr4qMVh09s9urzzW3bdNF41ieknXDNX4,63407
259
+ mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py,sha256=a98w3TX42t7mNuEu6RFNQUdKGN8t4BWwDVthN9AKv3k,66579
260
260
  mlrun/model_monitoring/metrics/__init__.py,sha256=6CsTXAxeLbbf8yfCADTaxmiavqwrLEdYFJ-qc5kgDAY,569
261
261
  mlrun/model_monitoring/metrics/histogram_distance.py,sha256=E9_WIl2vd6qNvoHVHoFcnuQk3ekbFWOdi8aU7sHrfk4,4724
262
262
  mlrun/package/__init__.py,sha256=v7VDyK9kDOOuDvFo4oiGV2fx-vM1KL7fdN9pGLakhUQ,7008
@@ -281,17 +281,17 @@ mlrun/platforms/iguazio.py,sha256=32_o95Ntx9z3ciowt2NcnX7tAiLBwX3VB0mbTQ-KrIQ,13
281
281
  mlrun/projects/__init__.py,sha256=hdCOA6_fp8X4qGGGT7Bj7sPbkM1PayWuaVZL0DkpuZw,1240
282
282
  mlrun/projects/operations.py,sha256=Oo7h0TMztI_RVmj0rQxNS1igS_c94HpQZwMIFjiWt0E,21038
283
283
  mlrun/projects/pipelines.py,sha256=ZOfuIEHOXfuc4qAkuWvbWhCjP6kqpLkv-yBBaY9RXhg,52219
284
- mlrun/projects/project.py,sha256=jSJ65upJ6zYRHly6aOQxBR6414Ypueg2iXE6XBjc-uQ,257695
285
- mlrun/runtimes/__init__.py,sha256=8cqrYKy1a0_87XG7V_p96untQ4t8RocadM4LVEEN1JM,9029
286
- mlrun/runtimes/base.py,sha256=txynS-hiNLR97PBd49mc5q9ZX3gMf3VdJ2rJ-fz5bZU,38913
284
+ mlrun/projects/project.py,sha256=asDcSEVz26DhaeSO8ZK-r-zGHzOfvAhC6sSdk4HJqsY,258178
285
+ mlrun/runtimes/__init__.py,sha256=NSIk1xlUduSY3ZZ2tLmXegw1Z1im5_KjtbmsL874Z6s,9829
286
+ mlrun/runtimes/base.py,sha256=CpIaml8nJbbPt8PQXDzy_AXbJ0LObRWk1lprRBDRYdI,38986
287
287
  mlrun/runtimes/daskjob.py,sha256=IN6gKKrmCIjWooj5FgFm-pAb2i7ra1ERRzClfu_rYGI,20102
288
288
  mlrun/runtimes/funcdoc.py,sha256=zRFHrJsV8rhDLJwoUhcfZ7Cs0j-tQ76DxwUqdXV_Wyc,9810
289
289
  mlrun/runtimes/function_reference.py,sha256=fnMKUEieKgy4JyVLhFpDtr6JvKgOaQP8F_K2H3-Pk9U,5030
290
290
  mlrun/runtimes/generators.py,sha256=X8NDlCEPveDDPOHtOGcSpbl3pAVM3DP7fuPj5xVhxEY,7290
291
291
  mlrun/runtimes/kubejob.py,sha256=wadCzmSgjv9OU_Ax8CQNHfXLo0v-ev9ZGHUFGcNc9Qw,8577
292
- mlrun/runtimes/local.py,sha256=R72VdrXnFdAhLsKJiWPOcfsi4jS-W5E1FnkT2Xllt8M,22150
293
- mlrun/runtimes/mounts.py,sha256=Q6oN1ilVcsFaVM1DAS-mfCD7vGWa7Wa9aEhRrctJPyk,19292
294
- mlrun/runtimes/pod.py,sha256=HtSnhdfaT_rvYwybXjLowl3eOZSrRSyWqW7HYXuUT40,58252
292
+ mlrun/runtimes/local.py,sha256=sbIFQdU-GBfAwESJGU06hiqXUiwjP6IVvbCieIPGQn4,22311
293
+ mlrun/runtimes/mounts.py,sha256=fc3iYXjlnJZbm0PcCTrGBFQJ548WtFGnepK-pc4wSAM,19441
294
+ mlrun/runtimes/pod.py,sha256=HIEG2p5laAjDPlOFS9jcw3lugzddRDuvG0124MPalq4,59891
295
295
  mlrun/runtimes/remotesparkjob.py,sha256=BalAea66GleaKeoYTw6ZL1Qr4wf1yRxfgk1-Fkc9Pqg,7864
296
296
  mlrun/runtimes/utils.py,sha256=b0T5Qm0WmbHk_I4d14ikzhhjymjIVedaifBi-ymKwOc,17733
297
297
  mlrun/runtimes/databricks_job/__init__.py,sha256=kXGBqhLN0rlAx0kTXhozGzFsIdSqW0uTSKMmsLgq_is,569
@@ -303,11 +303,11 @@ mlrun/runtimes/mpijob/abstract.py,sha256=QjAG4OZ6JEQ58w5-qYNd6hUGwvaW8ynLtlr9jNf
303
303
  mlrun/runtimes/mpijob/v1.py,sha256=zSlRkiWHz4B3yht66sVf4mlfDs8YT9EnP9DfBLn5VNs,3372
304
304
  mlrun/runtimes/nuclio/__init__.py,sha256=osOVMN9paIOuUoOTizmkxMb_OXRP-SlPwXHJSSYK_wk,834
305
305
  mlrun/runtimes/nuclio/api_gateway.py,sha256=vH9ClKVP4Mb24rvA67xPuAvAhX-gAv6vVtjVxyplhdc,26969
306
- mlrun/runtimes/nuclio/function.py,sha256=6o9SndAkd-k4FyVr4ms_oWL6MuAWMnsrtrEd_fWfnDw,55488
306
+ mlrun/runtimes/nuclio/function.py,sha256=vcW7IqCeLzxJ9YFBErqtEkp4MbgomFC1qWFTznBbNEY,56078
307
307
  mlrun/runtimes/nuclio/nuclio.py,sha256=sLK8KdGO1LbftlL3HqPZlFOFTAAuxJACZCVl1c0Ha6E,2942
308
- mlrun/runtimes/nuclio/serving.py,sha256=eXffwn6xTvEwC-HEk42DRxywOrin7RMUze3JWjeBxzA,36429
308
+ mlrun/runtimes/nuclio/serving.py,sha256=n2O00NKEfhCv-YCiJtCVPqliitamh8gaN_PD5I_kjD0,39267
309
309
  mlrun/runtimes/nuclio/application/__init__.py,sha256=rRs5vasy_G9IyoTpYIjYDafGoL6ifFBKgBtsXn31Atw,614
310
- mlrun/runtimes/nuclio/application/application.py,sha256=usovOWonpzHQ1B_El7l60y-jpUXyYwppjmrHlP5RMW8,33993
310
+ mlrun/runtimes/nuclio/application/application.py,sha256=eVOdGXZF23VMxRhR_cZYArxxaUKKXtEshtomFf-vp3E,34065
311
311
  mlrun/runtimes/nuclio/application/reverse_proxy.go,sha256=lEHH74vr2PridIHp1Jkc_NjkrWb5b6zawRrNxHQhwGU,2913
312
312
  mlrun/runtimes/sparkjob/__init__.py,sha256=GPP_ekItxiU9Ydn3mJa4Obph02Bg6DO-JYs791_MV58,607
313
313
  mlrun/runtimes/sparkjob/spark3job.py,sha256=3dW7RG2T58F2dsUw0TsRvE3SIFcekx3CerLdcaG1f50,41458
@@ -315,9 +315,9 @@ mlrun/serving/__init__.py,sha256=nriJAcVn5aatwU03T7SsE6ngJEGTxr3wIGt4WuvCCzY,139
315
315
  mlrun/serving/merger.py,sha256=pfOQoozUyObCTpqXAMk94PmhZefn4bBrKufO3MKnkAc,6193
316
316
  mlrun/serving/remote.py,sha256=p29CBtKwbW_l8BzmNg3Uy__0eMf7_OubTMzga_S3EOA,22089
317
317
  mlrun/serving/routers.py,sha256=pu5jlSLI4Ml68YP_FMFDhhwPfLcT6lRu5yL5QDgXPHQ,52889
318
- mlrun/serving/server.py,sha256=7RiXZ1Nf6I_rwZUyTNqVaNEzQmYUTqKLjXXZEM1OwEc,40993
318
+ mlrun/serving/server.py,sha256=UIQON9ytG_4VUa4cMWZ8AxxBzGjBrhFhkC-FrvAHa_o,42593
319
319
  mlrun/serving/serving_wrapper.py,sha256=UL9hhWCfMPcTJO_XrkvNaFvck1U1E7oS8trTZyak0cA,835
320
- mlrun/serving/states.py,sha256=Q2Q7o0eJCvnonXd2-sfiv7zhCiyC6xthfW25nzf61KM,138976
320
+ mlrun/serving/states.py,sha256=jjkh1cOm66dIpBdRg4ZV8tcCOYEXSu0eJr64pewT78M,140919
321
321
  mlrun/serving/steps.py,sha256=zbMgJnu-m4n7vhFRgZkCMMifIsCya-TzAj3Gjc-Fgnc,2193
322
322
  mlrun/serving/system_steps.py,sha256=BDCJn73h7cUT5AoSSm25Fjg4WwzcEpMQp-ZjMw9ogEc,20025
323
323
  mlrun/serving/utils.py,sha256=Zbfqm8TKNcTE8zRBezVBzpvR2WKeKeIRN7otNIaiYEc,4170
@@ -333,7 +333,7 @@ mlrun/utils/async_http.py,sha256=8Olx8TNNeXB07nEGwlqhEgFgnFAD71vBU_bqaA9JW-w,122
333
333
  mlrun/utils/azure_vault.py,sha256=IEFizrDGDbAaoWwDr1WoA88S_EZ0T--vjYtY-i0cvYQ,3450
334
334
  mlrun/utils/clones.py,sha256=qbAGyEbSvlewn3Tw_DpQZP9z6MGzFhSaZfI1CblX8Fg,7515
335
335
  mlrun/utils/condition_evaluator.py,sha256=-nGfRmZzivn01rHTroiGY4rqEv8T1irMyhzxEei-sKc,1897
336
- mlrun/utils/helpers.py,sha256=Cz3VR5aq3N6DinKd16HI9HGZSLqSmN9h4-EmnNyYGqQ,84369
336
+ mlrun/utils/helpers.py,sha256=95nTQRqqsWeDzt19AEvz2pAkbEOfamvWg1es4cC6_us,87120
337
337
  mlrun/utils/http.py,sha256=5ZU2VpokaUM_DT3HBSqTm8xjUqTPjZN5fKkSIvKlTl0,8704
338
338
  mlrun/utils/logger.py,sha256=uaCgI_ezzaXf7nJDCy-1Nrjds8vSXqDbzmjmb3IyCQo,14864
339
339
  mlrun/utils/regex.py,sha256=FcRwWD8x9X3HLhCCU2F0AVKTFah784Pr7ZAe3a02jw8,5199
@@ -352,11 +352,11 @@ mlrun/utils/notifications/notification/mail.py,sha256=ZyJ3eqd8simxffQmXzqd3bgbAq
352
352
  mlrun/utils/notifications/notification/slack.py,sha256=wSu_7W0EnGLBNwIgWCYEeTP8j9SPAMPDBnfUcPnVZYA,7299
353
353
  mlrun/utils/notifications/notification/webhook.py,sha256=FM5-LQAKAVJKp37MRzR3SsejalcnpM6r_9Oe7znxZEA,5313
354
354
  mlrun/utils/version/__init__.py,sha256=YnzE6tlf24uOQ8y7Z7l96QLAI6-QEii7-77g8ynmzy0,613
355
- mlrun/utils/version/version.json,sha256=XVTb8THn_xGwKwbjV7Mu2mVTg-z6fmV6gXnUhrvfT6s,90
355
+ mlrun/utils/version/version.json,sha256=2aCJ-nYvcci3gSGlj1aNj8zNsFetEd1KN95VOXJvAKw,90
356
356
  mlrun/utils/version/version.py,sha256=M2hVhRrgkN3SxacZHs3ZqaOsqAA7B6a22ne324IQ1HE,1877
357
- mlrun-1.10.0rc37.dist-info/licenses/LICENSE,sha256=zTiv1CxWNkOk1q8eJS1G_8oD4gWpWLwWxj_Agcsi8Os,11337
358
- mlrun-1.10.0rc37.dist-info/METADATA,sha256=mZhr0TYnjpEVjpPTy6JYYXqs4dnp0q4X7Hu7TPQ5R8M,26104
359
- mlrun-1.10.0rc37.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
360
- mlrun-1.10.0rc37.dist-info/entry_points.txt,sha256=1Owd16eAclD5pfRCoJpYC2ZJSyGNTtUr0nCELMioMmU,46
361
- mlrun-1.10.0rc37.dist-info/top_level.txt,sha256=NObLzw3maSF9wVrgSeYBv-fgnHkAJ1kEkh12DLdd5KM,6
362
- mlrun-1.10.0rc37.dist-info/RECORD,,
357
+ mlrun-1.10.0rc41.dist-info/licenses/LICENSE,sha256=zTiv1CxWNkOk1q8eJS1G_8oD4gWpWLwWxj_Agcsi8Os,11337
358
+ mlrun-1.10.0rc41.dist-info/METADATA,sha256=nm4Rr7bTUHzURoC74qlRN7kFbY-dzVd8MJEszynnHHE,26104
359
+ mlrun-1.10.0rc41.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
360
+ mlrun-1.10.0rc41.dist-info/entry_points.txt,sha256=1Owd16eAclD5pfRCoJpYC2ZJSyGNTtUr0nCELMioMmU,46
361
+ mlrun-1.10.0rc41.dist-info/top_level.txt,sha256=NObLzw3maSF9wVrgSeYBv-fgnHkAJ1kEkh12DLdd5KM,6
362
+ mlrun-1.10.0rc41.dist-info/RECORD,,