mlrun 1.10.0rc9__py3-none-any.whl → 1.10.0rc10__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mlrun might be problematic. Click here for more details.

mlrun/common/constants.py CHANGED
@@ -76,6 +76,7 @@ class MLRunInternalLabels:
76
76
  kind = "kind"
77
77
  component = "component"
78
78
  mlrun_type = "mlrun__type"
79
+ original_workflow_id = "original-workflow-id"
79
80
 
80
81
  owner = "owner"
81
82
  v3io_user = "v3io_user"
@@ -218,6 +218,7 @@ from .serving import ModelRunnerStepData, MonitoringData
218
218
  from .tag import Tag, TagObjects
219
219
  from .workflow import (
220
220
  GetWorkflowResponse,
221
+ RerunWorkflowRequest,
221
222
  WorkflowRequest,
222
223
  WorkflowResponse,
223
224
  WorkflowSpec,
@@ -46,6 +46,13 @@ class WorkflowRequest(pydantic.v1.BaseModel):
46
46
  notifications: typing.Optional[list[Notification]] = None
47
47
 
48
48
 
49
+ class RerunWorkflowRequest(pydantic.v1.BaseModel):
50
+ run_name: typing.Optional[str] = (None,)
51
+ run_id: typing.Optional[str] = (None,)
52
+ notifications: typing.Optional[list[Notification]] = None
53
+ workflow_runner_node_selector: typing.Optional[dict[str, str]] = None
54
+
55
+
49
56
  class WorkflowResponse(pydantic.v1.BaseModel):
50
57
  project: str = None
51
58
  name: str = None
mlrun/db/base.py CHANGED
@@ -638,6 +638,16 @@ class RunDBInterface(ABC):
638
638
  ):
639
639
  pass
640
640
 
641
+ @abstractmethod
642
+ def retry_pipeline(
643
+ self,
644
+ run_id: str,
645
+ project: str,
646
+ namespace: Optional[str] = None,
647
+ timeout: int = 30,
648
+ ):
649
+ pass
650
+
641
651
  @abstractmethod
642
652
  def list_project_secrets(
643
653
  self,
@@ -1034,6 +1044,13 @@ class RunDBInterface(ABC):
1034
1044
  ):
1035
1045
  pass
1036
1046
 
1047
+ def get_project_background_task(
1048
+ self,
1049
+ project: str,
1050
+ name: str,
1051
+ ) -> mlrun.common.schemas.BackgroundTask:
1052
+ pass
1053
+
1037
1054
  @abstractmethod
1038
1055
  def submit_workflow(
1039
1056
  self,
mlrun/db/nopdb.py CHANGED
@@ -524,6 +524,15 @@ class NopDB(RunDBInterface):
524
524
  ):
525
525
  pass
526
526
 
527
+ def retry_pipeline(
528
+ self,
529
+ run_id: str,
530
+ project: str,
531
+ namespace: Optional[str] = None,
532
+ timeout: int = 30,
533
+ ):
534
+ pass
535
+
527
536
  def list_pipelines(
528
537
  self,
529
538
  project: str,
@@ -280,7 +280,7 @@ class TFKerasMLRunInterface(MLRunInterface, ABC):
280
280
  print(f"Horovod worker #{self._hvd.rank()} is using CPU")
281
281
 
282
282
  # Adjust learning rate based on the number of GPUs:
283
- if hasattr(self.optimizer, "lr"):
283
+ if hasattr(optimizer, "lr"):
284
284
  optimizer.lr *= self._hvd.size()
285
285
  else:
286
286
  optimizer.learning_rate *= self._hvd.size()
@@ -518,7 +518,6 @@ class TFKerasModelHandler(DLModelHandler):
518
518
  )
519
519
 
520
520
  # Read additional files according to the model format used:
521
- # # ModelFormats.SAVED_MODEL - Unzip the SavedModel archive:
522
521
  if self._model_format == TFKerasModelHandler.ModelFormats.SAVED_MODEL:
523
522
  # Unzip the SavedModel directory:
524
523
  with zipfile.ZipFile(self._model_file, "r") as zip_file:
@@ -528,21 +527,17 @@ class TFKerasModelHandler(DLModelHandler):
528
527
  os.path.dirname(self._model_file), self._model_name
529
528
  )
530
529
  elif self._model_format == TFKerasModelHandler.ModelFormats.KERAS:
531
- # When keras tried to load it, it validates the suffix. The `artifacts.model.get_model` function is
532
- # downloading the keras file to a temp file with a `pkl` suffix, so it needs to be replaced:
533
- self._model_file = self._model_file.rsplit(".pkl", 1)[0] + ".keras"
530
+ # Rename the model file suffix:
531
+ self._rename_model_file_suffix(suffix="keras")
534
532
  elif self._model_format == TFKerasModelHandler.ModelFormats.H5:
535
- # When keras tried to load it, it validates the suffix. The `artifacts.model.get_model` function is
536
- # downloading the keras file to a temp file with a `pkl` suffix, so it needs to be replaced:
537
- self._model_file = self._model_file.rsplit(".pkl", 1)[0] + ".h5"
538
- # # ModelFormats.JSON_ARCHITECTURE_H5_WEIGHTS - Get the weights file:
539
- elif (
533
+ # Rename the model file suffix:
534
+ self._rename_model_file_suffix(suffix="h5")
535
+ elif ( # ModelFormats.JSON_ARCHITECTURE_H5_WEIGHTS
540
536
  self._model_format
541
537
  == TFKerasModelHandler.ModelFormats.JSON_ARCHITECTURE_H5_WEIGHTS
542
538
  ):
543
- # When keras tried to load it, it validates the suffix. The `artifacts.model.get_model` function is
544
- # downloading the keras file to a temp file with a `pkl` suffix, so it needs to be replaced:
545
- self._model_file = self._model_file.rsplit(".pkl", 1)[0] + ".json"
539
+ # Rename the model file suffix:
540
+ self._rename_model_file_suffix(suffix="json")
546
541
  # Get the weights file:
547
542
  self._weights_file = self._extra_data[
548
543
  self._get_weights_file_artifact_name()
@@ -551,6 +546,20 @@ class TFKerasModelHandler(DLModelHandler):
551
546
  # Continue collecting from abstract class:
552
547
  super()._collect_files_from_store_object()
553
548
 
549
+ def _rename_model_file_suffix(self, suffix: str):
550
+ """
551
+ Rename the model file suffix to the given one.
552
+
553
+ This is used for the case of loading a model from a store object that was saved with a different suffix as when
554
+ keras tries to load it, it validates the suffix. The `artifacts.model.get_model` function is downloading the
555
+ file to a temp file with a `pkl` suffix, so it needs to be replaced:than the one keras expects.
556
+
557
+ :param suffix: The suffix to rename the model file to (without the trailing dot).
558
+ """
559
+ new_name = self._model_file.rsplit(".", 1)[0] + f".{suffix}"
560
+ os.rename(self._model_file, new_name)
561
+ self._model_file = new_name
562
+
554
563
  def _collect_files_from_local_path(self):
555
564
  """
556
565
  If the model path given is of a local path, search for the needed model files and collect them into this handler
@@ -32,6 +32,7 @@ from .pipelines import (
32
32
  load_and_run_workflow,
33
33
  load_and_run,
34
34
  pipeline_context,
35
+ rerun_workflow,
35
36
  ) # noqa
36
37
  from .project import (
37
38
  MlrunProject,
@@ -1070,6 +1070,40 @@ def github_webhook(request):
1070
1070
  return {"msg": "pushed"}
1071
1071
 
1072
1072
 
1073
+ def rerun_workflow(
1074
+ context: mlrun.execution.MLClientCtx, run_uid: str, project_name: str
1075
+ ):
1076
+ """
1077
+ Re-run a workflow by retrying a previously failed KFP pipeline.
1078
+
1079
+ :param context: MLRun context.
1080
+ :param run_uid: The run UID of the original workflow to retry.
1081
+ :param project_name: The project name.
1082
+ """
1083
+
1084
+ try:
1085
+ # TODO in followups: handle start and running notifications
1086
+
1087
+ # Retry the pipeline - TODO: add submit-direct flag when created
1088
+ db = mlrun.get_run_db()
1089
+ new_pipeline_id = db.retry_pipeline(run_uid, project_name)
1090
+
1091
+ # Store result for observability
1092
+ context.set_label("workflow-id", new_pipeline_id)
1093
+ context.log_result("workflow_id", new_pipeline_id)
1094
+
1095
+ # wait for pipeline completion so monitor will push terminal notifications
1096
+ wait_for_pipeline_completion(
1097
+ new_pipeline_id,
1098
+ project=project_name,
1099
+ )
1100
+
1101
+ # Temporary exception
1102
+ except Exception as exc:
1103
+ context.logger.error("Failed to rerun workflow", exc=err_to_str(exc))
1104
+ raise
1105
+
1106
+
1073
1107
  def load_and_run(context, *args, **kwargs):
1074
1108
  """
1075
1109
  This function serves as an alias to `load_and_run_workflow`,
mlrun/serving/routers.py CHANGED
@@ -80,10 +80,16 @@ class BaseModelRouter(RouterToDict):
80
80
  self._input_path = input_path
81
81
  self._result_path = result_path
82
82
  self._background_task_check_timestamp = None
83
- self._background_task_terminate = False
84
83
  self._background_task_current_state = None
85
84
  self.kwargs = kwargs
86
85
 
86
+ @property
87
+ def background_task_reached_terminal_state(self):
88
+ return (
89
+ self._background_task_current_state
90
+ and self._background_task_current_state != "running"
91
+ )
92
+
87
93
  def parse_event(self, event):
88
94
  parsed_event = {}
89
95
  try:
@@ -185,35 +191,33 @@ class BaseModelRouter(RouterToDict):
185
191
  background_task.status.state
186
192
  in mlrun.common.schemas.BackgroundTaskState.terminal_states()
187
193
  ):
188
- logger.debug(
194
+ logger.info(
189
195
  f"Model endpoint creation task completed with state {background_task.status.state}"
190
196
  )
191
- self._background_task_terminate = True
192
197
  else: # in progress
193
- logger.debug(
198
+ logger.info(
194
199
  f"Model endpoint creation task is still in progress with the current state: "
195
- f"{background_task.status.state}. Events will not be monitored for the next 15 seconds",
200
+ f"{background_task.status.state}. Events will not be monitored for the next "
201
+ f"{mlrun.mlconf.model_endpoint_monitoring.model_endpoint_creation_check_period} seconds",
196
202
  name=self.name,
197
203
  background_task_check_timestamp=self._background_task_check_timestamp.isoformat(),
198
204
  )
199
205
  return background_task.status.state
200
206
  else:
201
- logger.debug(
202
- "Model endpoint creation task name not provided",
207
+ logger.error(
208
+ "Model endpoint creation task name not provided. This function is not being monitored.",
203
209
  )
204
210
  elif self.context.monitoring_mock:
205
- self._background_task_terminate = (
206
- True # If mock monitoring we return success and terminate task check.
207
- )
208
211
  return mlrun.common.schemas.BackgroundTaskState.succeeded
209
- self._background_task_terminate = True # If mock without monitoring we return failed and terminate task check.
210
212
  return mlrun.common.schemas.BackgroundTaskState.failed
211
213
 
212
214
  def _update_background_task_state(self, event):
213
- if not self._background_task_terminate and (
215
+ if not self.background_task_reached_terminal_state and (
214
216
  self._background_task_check_timestamp is None
215
217
  or now_date() - self._background_task_check_timestamp
216
- >= timedelta(seconds=15)
218
+ >= timedelta(
219
+ seconds=mlrun.mlconf.model_endpoint_monitoring.model_endpoint_creation_check_period
220
+ )
217
221
  ):
218
222
  self._background_task_current_state = self._get_background_task_status()
219
223
  if event.body:
@@ -314,7 +314,8 @@ class BackgroundTaskStatus(storey.MapClass):
314
314
  else: # in progress
315
315
  logger.info(
316
316
  f"Model endpoint creation task is still in progress with the current state: "
317
- f"{background_task_state}. Events will not be monitored for the next 15 seconds",
317
+ f"{background_task_state}. Events will not be monitored for the next "
318
+ f"{mlrun.mlconf.model_endpoint_monitoring.model_endpoint_creation_check_period} seconds",
318
319
  name=self.name,
319
320
  background_task_check_timestamp=self._background_task_check_timestamp.isoformat(),
320
321
  )
@@ -508,8 +508,8 @@ class V2ModelServer(StepToDict):
508
508
  name=self.name,
509
509
  )
510
510
  else:
511
- logger.debug(
512
- "Model endpoint creation task name not provided",
511
+ logger.error(
512
+ "Model endpoint creation task name not provided. This function is not being monitored.",
513
513
  )
514
514
 
515
515
 
@@ -1,4 +1,4 @@
1
1
  {
2
- "git_commit": "15a29118a80d3da0d4438ad82c31f14af981fccc",
3
- "version": "1.10.0-rc9"
2
+ "git_commit": "7711525d2af418d6991128a0d3253094584ddedc",
3
+ "version": "1.10.0-rc10"
4
4
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mlrun
3
- Version: 1.10.0rc9
3
+ Version: 1.10.0rc10
4
4
  Summary: Tracking and config of machine learning runs
5
5
  Home-page: https://github.com/mlrun/mlrun
6
6
  Author: Yaron Haviv
@@ -9,7 +9,6 @@ License: Apache License 2.0
9
9
  Keywords: mlrun,mlops,data-science,machine-learning,experiment-tracking
10
10
  Classifier: Development Status :: 4 - Beta
11
11
  Classifier: Intended Audience :: Developers
12
- Classifier: License :: OSI Approved :: Apache Software License
13
12
  Classifier: Operating System :: POSIX :: Linux
14
13
  Classifier: Operating System :: Microsoft :: Windows
15
14
  Classifier: Operating System :: MacOS
@@ -23,7 +23,7 @@ mlrun/artifacts/manager.py,sha256=ylCmwTSDxPWYTBBW7v90XLYy7CYS7xVydj-D-kWY7bU,16
23
23
  mlrun/artifacts/model.py,sha256=YlhD0zX8UhuEjTWD7NNnWcRCpjF1S2_6IpE0a1VHEHM,25589
24
24
  mlrun/artifacts/plots.py,sha256=wmaxVXiAPSCyn3M7pIlcBu9pP3O8lrq0Ewx6iHRDF9s,4238
25
25
  mlrun/common/__init__.py,sha256=kXGBqhLN0rlAx0kTXhozGzFsIdSqW0uTSKMmsLgq_is,569
26
- mlrun/common/constants.py,sha256=Yj5YHANbpKHDKxZ1y5bV1wifvV3UQZ2QuvECUuYhrpM,3594
26
+ mlrun/common/constants.py,sha256=L8mRIFpaob5kw0PVvWqQjvdbXDVweaRZOR187PnAiOc,3644
27
27
  mlrun/common/helpers.py,sha256=DIdqs_eN3gO5bZ8iFobIvx8cEiOxYxhFIyut6-O69T0,1385
28
28
  mlrun/common/secrets.py,sha256=8g9xtIw-9DGcwiZRT62a5ozSQM-aYo8yK5Ghey9WM0g,5179
29
29
  mlrun/common/types.py,sha256=1gxThbmC0Vd0U1ffIkEwz4T4S7JOgHt70rvw8TCO21c,1073
@@ -41,7 +41,7 @@ mlrun/common/formatters/run.py,sha256=LlqhhVY4dAp5y17k_sWBtHaJogdNdtJWF0iO9sX-bU
41
41
  mlrun/common/model_monitoring/__init__.py,sha256=kXGBqhLN0rlAx0kTXhozGzFsIdSqW0uTSKMmsLgq_is,569
42
42
  mlrun/common/model_monitoring/helpers.py,sha256=AkuHz4u318MEP4ebxmNWlNXh6HiNLrI5oF7QvJiJkYc,2707
43
43
  mlrun/common/runtimes/constants.py,sha256=IkKwNHb-PQrpOZvekP4HzxCP5L4ZuIxPYVEzqK6Tegc,11976
44
- mlrun/common/schemas/__init__.py,sha256=6f5oAznWONwTb0oxEwdBomdQrv-pfymwPWu85JOWqBc,5400
44
+ mlrun/common/schemas/__init__.py,sha256=wRt0dNWTnews4loHWn5feRegy7QdfNqwzUP56BmlxSU,5426
45
45
  mlrun/common/schemas/alert.py,sha256=u6INAHBhQIfm-mMsGqDJo1_JDN6gOuWZa-8fOU-aOUE,10182
46
46
  mlrun/common/schemas/api_gateway.py,sha256=bgC3vXbyb1SVwsSZkLXtEoQLCe_QDKpIhAVX3X_HWW4,7126
47
47
  mlrun/common/schemas/artifact.py,sha256=JojMRRa4n0Rge2olGOpUyp348hkTGsMEnvUBRSoo4oE,4310
@@ -73,7 +73,7 @@ mlrun/common/schemas/schedule.py,sha256=L7z9Lp06-xmFmdp0q5PypCU_DCl6zZIyQTVoJa01
73
73
  mlrun/common/schemas/secret.py,sha256=Td2UAeWHSAdA4nIP3rQv_PIVKVqcBnCnK6xjr528tS8,1486
74
74
  mlrun/common/schemas/serving.py,sha256=u_jfGmUB5kTqTR6pGtn7mQvr8wRsoaDrfZz672F1nRE,1199
75
75
  mlrun/common/schemas/tag.py,sha256=1wqEiAujsElojWb3qmuyfcaLFjXSNAAQdafkDx7fkn0,891
76
- mlrun/common/schemas/workflow.py,sha256=iZySnpro7UatEePH6S542c7xy9H2v1h6mx5n-gz9Oeg,2107
76
+ mlrun/common/schemas/workflow.py,sha256=tFBFhh70cTr2mXcgVoNL2GYzhl4aGWQwqtDU59T7LWQ,2384
77
77
  mlrun/common/schemas/model_monitoring/__init__.py,sha256=Hx3IxW63edOSLxMnbQpY3Yv4f-eNnBu4EuVw5bihP8w,1819
78
78
  mlrun/common/schemas/model_monitoring/constants.py,sha256=yjTaSGiRs0zYIE20QSuJuMNnS5iuJpnV1wBiq7leVpg,13238
79
79
  mlrun/common/schemas/model_monitoring/functions.py,sha256=OKBt029ap6dD-1pFTN4z1u7IkRpiH0HCjbrJoAWUFnE,2123
@@ -111,10 +111,10 @@ mlrun/datastore/wasbfs/__init__.py,sha256=s5Ul-0kAhYqFjKDR2X0O2vDGDbLQQduElb32Ev
111
111
  mlrun/datastore/wasbfs/fs.py,sha256=ge8NK__5vTcFT-krI155_8RDUywQw4SIRX6BWATXy9Q,6299
112
112
  mlrun/db/__init__.py,sha256=K8Cy-MF7gasYnT7gfE9zP5eOAQV-USsJtuVJRXYQI6s,1187
113
113
  mlrun/db/auth_utils.py,sha256=hpg8D2r82oN0BWabuWN04BTNZ7jYMAF242YSUpK7LFM,5211
114
- mlrun/db/base.py,sha256=koY7QLXBOtpkAphllC3z5wIVJ1EtHcXRTdvQ0uzIxko,30734
114
+ mlrun/db/base.py,sha256=Kx9ELU06DdsyMGbkRakHF9J6_KOlHcWgkjEivgxaupk,31076
115
115
  mlrun/db/factory.py,sha256=yP2vVmveUE7LYTCHbS6lQIxP9rW--zdISWuPd_I3d_4,2111
116
116
  mlrun/db/httpdb.py,sha256=8OCLIp--B1Z_AH98XhCm84Ls22IqXLO4OWkd7oQ4UQc,234747
117
- mlrun/db/nopdb.py,sha256=vKYszH4G3Fn5zBx3ri_e7r89k95obDtQfEAi2tDDF1w,27308
117
+ mlrun/db/nopdb.py,sha256=YcPbAutLcd7-CklMR60cckB5tkoAEGwESlD5cDJWHoM,27478
118
118
  mlrun/db/sql_types.py,sha256=g-gmiRNr0SpFyV0wPFfvLpB7hB0jdW-WFkt-aoQ_qIU,5399
119
119
  mlrun/feature_store/__init__.py,sha256=SlI845bWt6xX34SXunHHqhmFAR9-5v2ak8N-qpcAPGo,1328
120
120
  mlrun/feature_store/api.py,sha256=qKj5Tk6prTab6XWatWhBuPRVp0eJEctoxRMN2wz48vA,32168
@@ -203,8 +203,8 @@ mlrun/frameworks/sklearn/mlrun_interface.py,sha256=Lk1MKzP7d72R6_1PTWO5pKY1VUEHc
203
203
  mlrun/frameworks/sklearn/model_handler.py,sha256=m7ohGO8sphuVU0vZAzVNBATY0WNUpQb_SmaO6xkZx8U,4752
204
204
  mlrun/frameworks/sklearn/utils.py,sha256=OPyuXOwod6Tjs5PcIStwtwZfIaQk-hL9wzNbjQ29LuU,1208
205
205
  mlrun/frameworks/tf_keras/__init__.py,sha256=M2sMbYHLrlF-KFR5kvA9mevRo3Nf8U0B5a_DM9rzwCY,10484
206
- mlrun/frameworks/tf_keras/mlrun_interface.py,sha256=Rd4DY-TRGh3ZErmT9vzwDsXUjeetb3vgUWmXdyG77Mc,16718
207
- mlrun/frameworks/tf_keras/model_handler.py,sha256=4Ri5SLL0Xl_9I4faYYq9yxSOhDxNKzBz6SmuqKX1v7o,32135
206
+ mlrun/frameworks/tf_keras/mlrun_interface.py,sha256=DDBbcGAZh9h5UKDIQJCnSrliJDNNjVVpauBdmEV373o,16713
207
+ mlrun/frameworks/tf_keras/model_handler.py,sha256=jBTBAS8CtftwFkXwt7mLbJNw_Lbfw3FMgGxoStYoXcA,32169
208
208
  mlrun/frameworks/tf_keras/model_server.py,sha256=60iJRl_9ZYPCzxdfiJM_-BtECKZZTOKWBJ36O-GLjEc,9652
209
209
  mlrun/frameworks/tf_keras/utils.py,sha256=Z8hA1CgpSJWLC_T6Ay7xZKVyWlX9B85MSmQr2biXRag,4582
210
210
  mlrun/frameworks/tf_keras/callbacks/__init__.py,sha256=sd8aWG2jO9mO_noZca0ReVf8X6fSCqO_di1Z-mT8FH8,742
@@ -271,9 +271,9 @@ mlrun/package/utils/log_hint_utils.py,sha256=oFUrzcJ-AHocXSGIiMP6Yq3IYBgUfnrB-ri
271
271
  mlrun/package/utils/type_hint_utils.py,sha256=Ic3A7C9KnbfdLe-nUgzGoefBnsvOJJP9ipfuscA8MLU,14694
272
272
  mlrun/platforms/__init__.py,sha256=ZuyeHCHHUxYEoZRmaJqzFSfwhaTyUdBZXMeVp75ql1w,3551
273
273
  mlrun/platforms/iguazio.py,sha256=6VBTq8eQ3mzT96tzjYhAtcMQ2VjF4x8LpIPW5DAcX2Q,13749
274
- mlrun/projects/__init__.py,sha256=0Krf0WIKfnZa71WthYOg0SoaTodGg3sV_hK3f_OlTPI,1220
274
+ mlrun/projects/__init__.py,sha256=hdCOA6_fp8X4qGGGT7Bj7sPbkM1PayWuaVZL0DkpuZw,1240
275
275
  mlrun/projects/operations.py,sha256=Aa3qDjEOLI1JTvm3t3VaESeJ4511e_vOR-GqVaEy-yI,20237
276
- mlrun/projects/pipelines.py,sha256=qNWB6_E-cLp7S2kWUmPQRom9dnF5MHW5ybRX4-m6qd0,49445
276
+ mlrun/projects/pipelines.py,sha256=Q92dIzs-9zVpFhsWxrtppxqeMlXZE4NMF-6k_2MjBw8,50538
277
277
  mlrun/projects/project.py,sha256=UT4DUC2qbJz3lrMykLc_UwtnpXgCZXbCFY_2Ym_qfJM,249447
278
278
  mlrun/runtimes/__init__.py,sha256=J9Sy2HiyMlztNv6VUurMzF5H2XzttNil8nRsWDsqLyg,8923
279
279
  mlrun/runtimes/base.py,sha256=FmjyXA5MhOUOe8TxNpC3p8nc_IwGGaC2ZPrgTylzFXk,37325
@@ -307,14 +307,14 @@ mlrun/runtimes/sparkjob/spark3job.py,sha256=FmrfR1lTVeH_F3YOx8vj16QsvN3b7veUS00_
307
307
  mlrun/serving/__init__.py,sha256=1MjUInuyxsF-dTHZuKelq2XLhg2GInH9LjAY3PcWEzs,1364
308
308
  mlrun/serving/merger.py,sha256=pfOQoozUyObCTpqXAMk94PmhZefn4bBrKufO3MKnkAc,6193
309
309
  mlrun/serving/remote.py,sha256=Igha2FipK3-6rV_PZ1K464kTbiTu8rhc6SMm-HiEJ6o,18817
310
- mlrun/serving/routers.py,sha256=SY6AsaiSnh8ssXq8hQE2z9MYapOxFOFJBx9QomiZMO8,53915
310
+ mlrun/serving/routers.py,sha256=SmBOlHn7rT2gWTa-W8f16UB0UthgIFc4D1cPOZAA9ss,54003
311
311
  mlrun/serving/server.py,sha256=WCJqggfZHTa4qbw1UopoZq_X2g-LutPjp35wGfxDsyI,29790
312
312
  mlrun/serving/serving_wrapper.py,sha256=UL9hhWCfMPcTJO_XrkvNaFvck1U1E7oS8trTZyak0cA,835
313
313
  mlrun/serving/states.py,sha256=mSj9n7BT0CWBD02MTXWBzGr4hwj0Zef9dFUkQY5aXWg,91248
314
- mlrun/serving/system_steps.py,sha256=lVdv6OVInLxKO1RgMLuKw0zeeMAlLWcgNtKW_tYw9jY,16334
314
+ mlrun/serving/system_steps.py,sha256=s3Grs8DPaQ2CI8EY1IB4IOg-8y-6gRIewQZHkFVFNwg,16429
315
315
  mlrun/serving/utils.py,sha256=Zbfqm8TKNcTE8zRBezVBzpvR2WKeKeIRN7otNIaiYEc,4170
316
316
  mlrun/serving/v1_serving.py,sha256=c6J_MtpE-Tqu00-6r4eJOCO6rUasHDal9W2eBIcrl50,11853
317
- mlrun/serving/v2_serving.py,sha256=BHQMhTQjjhXgUJIAjfRmjkcYUCXrJJn_6EZip2v3xw4,25395
317
+ mlrun/serving/v2_serving.py,sha256=257LVOvWxV0KjeY0-Kxro6YgKmPu2QzNne2IORlXi5E,25434
318
318
  mlrun/track/__init__.py,sha256=yVXbT52fXvGKRlc_ByHqIVt7-9L3DRE634RSeQwgXtU,665
319
319
  mlrun/track/tracker.py,sha256=CyTU6Qd3_5GGEJ_hpocOj71wvV65EuFYUjaYEUKAL6Q,3575
320
320
  mlrun/track/tracker_manager.py,sha256=IYBl99I62IC6VCCmG1yt6JoHNOQXa53C4DURJ2sWgio,5726
@@ -345,11 +345,11 @@ mlrun/utils/notifications/notification/mail.py,sha256=ZyJ3eqd8simxffQmXzqd3bgbAq
345
345
  mlrun/utils/notifications/notification/slack.py,sha256=kfhogR5keR7Zjh0VCjJNK3NR5_yXT7Cv-x9GdOUW4Z8,7294
346
346
  mlrun/utils/notifications/notification/webhook.py,sha256=zxh8CAlbPnTazsk6r05X5TKwqUZVOH5KBU2fJbzQlG4,5330
347
347
  mlrun/utils/version/__init__.py,sha256=YnzE6tlf24uOQ8y7Z7l96QLAI6-QEii7-77g8ynmzy0,613
348
- mlrun/utils/version/version.json,sha256=un2xBgcuKWkNshBYY5GPOv_fh0i0DOb22tFDow1dBx0,89
348
+ mlrun/utils/version/version.json,sha256=hp-Ml2C1P4UaX8zx2xwNmoAElsJkrIFnTkHAlazKnDo,90
349
349
  mlrun/utils/version/version.py,sha256=M2hVhRrgkN3SxacZHs3ZqaOsqAA7B6a22ne324IQ1HE,1877
350
- mlrun-1.10.0rc9.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
351
- mlrun-1.10.0rc9.dist-info/METADATA,sha256=4UfqJ9LgtS6kt03USPp2kEAuiROPdk7BI0cYQaCVSoE,26150
352
- mlrun-1.10.0rc9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
353
- mlrun-1.10.0rc9.dist-info/entry_points.txt,sha256=1Owd16eAclD5pfRCoJpYC2ZJSyGNTtUr0nCELMioMmU,46
354
- mlrun-1.10.0rc9.dist-info/top_level.txt,sha256=NObLzw3maSF9wVrgSeYBv-fgnHkAJ1kEkh12DLdd5KM,6
355
- mlrun-1.10.0rc9.dist-info/RECORD,,
350
+ mlrun-1.10.0rc10.dist-info/licenses/LICENSE,sha256=zTiv1CxWNkOk1q8eJS1G_8oD4gWpWLwWxj_Agcsi8Os,11337
351
+ mlrun-1.10.0rc10.dist-info/METADATA,sha256=CZ-2JeUcsZRPjlGlC4sfYSX76Q-UGkWFXZHsyWT0kfw,26088
352
+ mlrun-1.10.0rc10.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
353
+ mlrun-1.10.0rc10.dist-info/entry_points.txt,sha256=1Owd16eAclD5pfRCoJpYC2ZJSyGNTtUr0nCELMioMmU,46
354
+ mlrun-1.10.0rc10.dist-info/top_level.txt,sha256=NObLzw3maSF9wVrgSeYBv-fgnHkAJ1kEkh12DLdd5KM,6
355
+ mlrun-1.10.0rc10.dist-info/RECORD,,
@@ -186,7 +186,7 @@
186
186
  same "printed page" as the copyright notice for easier
187
187
  identification within third-party archives.
188
188
 
189
- Copyright [yyyy] [name of copyright owner]
189
+ Copyright 2020 Iguazio
190
190
 
191
191
  Licensed under the Apache License, Version 2.0 (the "License");
192
192
  you may not use this file except in compliance with the License.