mlrun 1.7.0rc7__py3-none-any.whl → 1.7.0rc8__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/__main__.py CHANGED
@@ -505,6 +505,8 @@ def build(
505
505
  if kfp:
506
506
  print("Runtime:")
507
507
  pprint(runtime)
508
+ # use kind = "job" by default if not specified
509
+ runtime.setdefault("kind", "job")
508
510
  func = new_function(runtime=runtime)
509
511
 
510
512
  elif func_url:
@@ -21,6 +21,7 @@ from .api_gateway import (
21
21
  APIGatewayMetadata,
22
22
  APIGatewaysOutput,
23
23
  APIGatewaySpec,
24
+ APIGatewayState,
24
25
  APIGatewayStatus,
25
26
  APIGatewayUpstream,
26
27
  )
@@ -36,6 +36,13 @@ class APIGatewayAuthenticationMode(mlrun.common.types.StrEnum):
36
36
  )
37
37
 
38
38
 
39
+ class APIGatewayState(mlrun.common.types.StrEnum):
40
+ none = ""
41
+ ready = "ready"
42
+ error = "error"
43
+ waiting_for_provisioning = "waitingForProvisioning"
44
+
45
+
39
46
  class _APIGatewayBaseModel(pydantic.BaseModel):
40
47
  class Config:
41
48
  extra = pydantic.Extra.allow
@@ -72,7 +79,7 @@ class APIGatewaySpec(_APIGatewayBaseModel):
72
79
 
73
80
  class APIGatewayStatus(_APIGatewayBaseModel):
74
81
  name: Optional[str]
75
- state: Optional[str]
82
+ state: Optional[APIGatewayState]
76
83
 
77
84
 
78
85
  class APIGateway(_APIGatewayBaseModel):
mlrun/config.py CHANGED
@@ -481,10 +481,13 @@ default_config = {
481
481
  # if set to true, will log a warning for trying to use run db functionality while in nop db mode
482
482
  "verbose": True,
483
483
  },
484
- "pagination_cache": {
485
- "interval": 60,
486
- "ttl": 3600,
487
- "max_size": 10000,
484
+ "pagination": {
485
+ "default_page_size": 20,
486
+ "pagination_cache": {
487
+ "interval": 60,
488
+ "ttl": 3600,
489
+ "max_size": 10000,
490
+ },
488
491
  },
489
492
  },
490
493
  "model_endpoint_monitoring": {
@@ -548,6 +551,7 @@ default_config = {
548
551
  "nosql": "v3io:///projects/{project}/FeatureStore/{name}/{kind}",
549
552
  # "authority" is optional and generalizes [userinfo "@"] host [":" port]
550
553
  "redisnosql": "redis://{authority}/projects/{project}/FeatureStore/{name}/{kind}",
554
+ "dsnosql": "ds://{ds_profile_name}/projects/{project}/FeatureStore/{name}/{kind}",
551
555
  },
552
556
  "default_targets": "parquet,nosql",
553
557
  "default_job_image": "mlrun/mlrun",
@@ -1073,7 +1077,7 @@ class Config:
1073
1077
  target: str = "online",
1074
1078
  artifact_path: str = None,
1075
1079
  function_name: str = None,
1076
- ) -> str:
1080
+ ) -> typing.Union[str, list[str]]:
1077
1081
  """Get the full path from the configuration based on the provided project and kind.
1078
1082
 
1079
1083
  :param project: Project name.
@@ -1089,7 +1093,8 @@ class Config:
1089
1093
  relative artifact path will be taken from the global MLRun artifact path.
1090
1094
  :param function_name: Application name, None for model_monitoring_stream.
1091
1095
 
1092
- :return: Full configured path for the provided kind.
1096
+ :return: Full configured path for the provided kind. Can be either a single path
1097
+ or a list of paths in the case of the online model monitoring stream path.
1093
1098
  """
1094
1099
 
1095
1100
  if target != "offline":
@@ -1111,10 +1116,22 @@ class Config:
1111
1116
  if function_name is None
1112
1117
  else f"{kind}-{function_name.lower()}",
1113
1118
  )
1114
- return mlrun.mlconf.model_endpoint_monitoring.store_prefixes.default.format(
1115
- project=project,
1116
- kind=kind,
1117
- )
1119
+ elif kind == "stream": # return list for mlrun<1.6.3 BC
1120
+ return [
1121
+ mlrun.mlconf.model_endpoint_monitoring.store_prefixes.default.format(
1122
+ project=project,
1123
+ kind=kind,
1124
+ ), # old stream uri (pipelines) for BC ML-6043
1125
+ mlrun.mlconf.model_endpoint_monitoring.store_prefixes.user_space.format(
1126
+ project=project,
1127
+ kind=kind,
1128
+ ), # new stream uri (projects)
1129
+ ]
1130
+ else:
1131
+ return mlrun.mlconf.model_endpoint_monitoring.store_prefixes.default.format(
1132
+ project=project,
1133
+ kind=kind,
1134
+ )
1118
1135
 
1119
1136
  # Get the current offline path from the configuration
1120
1137
  file_path = mlrun.mlconf.model_endpoint_monitoring.offline_storage_path.format(
@@ -68,6 +68,9 @@ class TemporaryClientDatastoreProfiles(metaclass=mlrun.utils.singleton.Singleton
68
68
  def get(self, key):
69
69
  return self._data.get(key, None)
70
70
 
71
+ def remove(self, key):
72
+ self._data.pop(key, None)
73
+
71
74
 
72
75
  class DatastoreProfileBasic(DatastoreProfile):
73
76
  type: str = pydantic.Field("basic")
@@ -460,3 +463,7 @@ def register_temporary_client_datastore_profile(profile: DatastoreProfile):
460
463
  It's beneficial for testing purposes.
461
464
  """
462
465
  TemporaryClientDatastoreProfiles().add(profile)
466
+
467
+
468
+ def remove_temporary_client_datastore_profile(profile_name: str):
469
+ TemporaryClientDatastoreProfiles().remove(profile_name)
@@ -524,7 +524,12 @@ class BaseStoreTarget(DataTargetBase):
524
524
  store, path_in_store, target_path = self._get_store_and_path()
525
525
  target_path = generate_path_with_chunk(self, chunk_id, target_path)
526
526
  file_system = store.filesystem
527
- if file_system.protocol == "file":
527
+ if (
528
+ file_system.protocol == "file"
529
+ # fsspec 2023.10.0 changed protocol from "file" to ("file", "local")
530
+ or isinstance(file_system.protocol, (tuple, list))
531
+ and "file" in file_system.protocol
532
+ ):
528
533
  dir = os.path.dirname(target_path)
529
534
  if dir:
530
535
  os.makedirs(dir, exist_ok=True)
@@ -15,9 +15,14 @@
15
15
  from typing import Callable, Union
16
16
 
17
17
  import numpy as np
18
+ import semver
18
19
  import tensorflow as tf
19
20
  from tensorflow import Tensor, Variable
20
- from tensorflow.keras.callbacks import Callback
21
+
22
+ if semver.VersionInfo.parse(tf.__version__) < semver.VersionInfo(2, 6):
23
+ from tensorflow.keras.callbacks import Callback
24
+ else:
25
+ from keras.callbacks import Callback
21
26
 
22
27
  import mlrun
23
28
 
@@ -17,18 +17,30 @@ import os
17
17
  from abc import ABC
18
18
  from typing import Union
19
19
 
20
+ import semver
20
21
  import tensorflow as tf
21
22
  from tensorflow import keras
22
- from tensorflow.keras.callbacks import (
23
- BaseLogger,
24
- Callback,
25
- CSVLogger,
26
- ModelCheckpoint,
27
- ProgbarLogger,
28
- TensorBoard,
29
- )
30
23
  from tensorflow.keras.optimizers import Optimizer
31
24
 
25
+ if semver.VersionInfo.parse(tf.__version__) < semver.VersionInfo(2, 6):
26
+ from tensorflow.keras.callbacks import (
27
+ BaseLogger,
28
+ Callback,
29
+ CSVLogger,
30
+ ModelCheckpoint,
31
+ ProgbarLogger,
32
+ TensorBoard,
33
+ )
34
+ else:
35
+ from keras.callbacks import (
36
+ BaseLogger,
37
+ Callback,
38
+ CSVLogger,
39
+ ModelCheckpoint,
40
+ ProgbarLogger,
41
+ TensorBoard,
42
+ )
43
+
32
44
  import mlrun
33
45
 
34
46
  from .._common import MLRunInterface
mlrun/kfpops.py CHANGED
@@ -103,7 +103,7 @@ def write_kfpmeta(struct):
103
103
  with open(path, "w") as fp:
104
104
  fp.write(str(val))
105
105
  except Exception as exc:
106
- logger.warning("Failed writing to temp file. Ignoring", exc=repr(exc))
106
+ logger.warning("Failed writing to temp file. Ignoring", exc=err_to_str(exc))
107
107
  pass
108
108
 
109
109
  text = "# Run Report\n"
@@ -112,10 +112,7 @@ def write_kfpmeta(struct):
112
112
 
113
113
  text += "## Metadata\n```yaml\n" + dict_to_yaml(struct) + "```\n"
114
114
 
115
- metadata = {
116
- "outputs": output_artifacts
117
- + [{"type": "markdown", "storage": "inline", "source": text}]
118
- }
115
+ metadata = {"outputs": [{"type": "markdown", "storage": "inline", "source": text}]}
119
116
  with open(os.path.join(KFPMETA_DIR, "mlpipeline-ui-metadata.json"), "w") as f:
120
117
  json.dump(metadata, f)
121
118
 
@@ -42,7 +42,7 @@ class _BatchDict(typing.TypedDict):
42
42
  def get_stream_path(
43
43
  project: str = None,
44
44
  function_name: str = mm_constants.MonitoringFunctionNames.STREAM,
45
- ):
45
+ ) -> str:
46
46
  """
47
47
  Get stream path from the project secret. If wasn't set, take it from the system configurations
48
48
 
@@ -61,6 +61,8 @@ def get_stream_path(
61
61
  function_name=function_name,
62
62
  )
63
63
 
64
+ if isinstance(stream_uri, list): # ML-6043 - user side gets only the new stream uri
65
+ stream_uri = stream_uri[1] # get new stream path, under projects
64
66
  return mlrun.common.model_monitoring.helpers.parse_monitoring_stream_path(
65
67
  stream_uri=stream_uri, project=project, function_name=function_name
66
68
  )
@@ -1071,7 +1071,7 @@ def load_and_run(
1071
1071
  )
1072
1072
 
1073
1073
  except Exception as exc:
1074
- logger.error("Failed to send slack notification", exc=exc)
1074
+ logger.error("Failed to send slack notification", exc=err_to_str(exc))
1075
1075
 
1076
1076
  raise error
1077
1077
 
mlrun/projects/project.py CHANGED
@@ -129,6 +129,7 @@ def new_project(
129
129
  save: bool = True,
130
130
  overwrite: bool = False,
131
131
  parameters: dict = None,
132
+ default_function_node_selector: dict = None,
132
133
  ) -> "MlrunProject":
133
134
  """Create a new MLRun project, optionally load it from a yaml/zip/git template
134
135
 
@@ -182,6 +183,7 @@ def new_project(
182
183
  :param overwrite: overwrite project using 'cascade' deletion strategy (deletes project resources)
183
184
  if project with name exists
184
185
  :param parameters: key/value pairs to add to the project.spec.params
186
+ :param default_function_node_selector: defines the default node selector for scheduling functions within the project
185
187
 
186
188
  :returns: project object
187
189
  """
@@ -228,6 +230,11 @@ def new_project(
228
230
  project.spec.origin_url = url
229
231
  if description:
230
232
  project.spec.description = description
233
+
234
+ if default_function_node_selector:
235
+ for key, val in default_function_node_selector.items():
236
+ project.spec.default_function_node_selector[key] = val
237
+
231
238
  if parameters:
232
239
  # Enable setting project parameters at load time, can be used to customize the project_setup
233
240
  for key, val in parameters.items():
@@ -2086,7 +2093,7 @@ class MlrunProject(ModelObj):
2086
2093
  self,
2087
2094
  func: typing.Union[str, mlrun.runtimes.BaseRuntime] = None,
2088
2095
  name: str = "",
2089
- kind: str = "",
2096
+ kind: str = "job",
2090
2097
  image: str = None,
2091
2098
  handler: str = None,
2092
2099
  with_repo: bool = None,
@@ -3340,7 +3347,7 @@ class MlrunProject(ModelObj):
3340
3347
  logger.warning(
3341
3348
  f"Image was successfully built, but failed to delete temporary function {function.metadata.name}."
3342
3349
  " To remove the function, attempt to manually delete it.",
3343
- exc=repr(exc),
3350
+ exc=mlrun.errors.err_to_str(exc),
3344
3351
  )
3345
3352
 
3346
3353
  return result
mlrun/run.py CHANGED
@@ -389,6 +389,8 @@ def import_function_to_dict(url, secrets=None):
389
389
  code = get_in(runtime, "spec.build.functionSourceCode")
390
390
  update_in(runtime, "metadata.build.code_origin", url)
391
391
  cmd = code_file = get_in(runtime, "spec.command", "")
392
+ # use kind = "job" by default if not specified
393
+ runtime.setdefault("kind", "job")
392
394
  if " " in cmd:
393
395
  code_file = cmd[: cmd.find(" ")]
394
396
  if runtime["kind"] in ["", "local"]:
@@ -85,7 +85,7 @@ class BasicAuth(APIGatewayAuthenticator):
85
85
  self,
86
86
  ) -> Optional[dict[str, Optional[mlrun.common.schemas.APIGatewayBasicAuth]]]:
87
87
  return {
88
- "authentication": mlrun.common.schemas.APIGatewayBasicAuth(
88
+ "basicAuth": mlrun.common.schemas.APIGatewayBasicAuth(
89
89
  username=self._username, password=self._password
90
90
  )
91
91
  }
@@ -147,6 +147,7 @@ class APIGateway:
147
147
  self.description = description
148
148
  self.canary = canary
149
149
  self.authentication = authentication
150
+ self.state = ""
150
151
 
151
152
  def invoke(
152
153
  self,
@@ -172,6 +173,11 @@ class APIGateway:
172
173
  raise mlrun.errors.MLRunInvalidArgumentError(
173
174
  "Invocation url is not set. Set up gateway's `invoke_url` attribute."
174
175
  )
176
+ if not self.is_ready():
177
+ raise mlrun.errors.MLRunPreconditionFailedError(
178
+ f"API gateway is not ready. " f"Current state: {self.state}"
179
+ )
180
+
175
181
  if (
176
182
  self.authentication.authentication_mode
177
183
  == NUCLIO_API_GATEWAY_AUTHENTICATION_MODE_BASIC_AUTH
@@ -188,6 +194,12 @@ class APIGateway:
188
194
  auth=HTTPBasicAuth(*auth) if auth else None,
189
195
  )
190
196
 
197
+ def is_ready(self):
198
+ if self.state is not mlrun.common.schemas.api_gateway.APIGatewayState.ready:
199
+ # try to sync the state
200
+ self.sync()
201
+ return self.state == mlrun.common.schemas.api_gateway.APIGatewayState.ready
202
+
191
203
  def sync(self):
192
204
  """
193
205
  Synchronize the API gateway from the server.
@@ -201,6 +213,7 @@ class APIGateway:
201
213
  self.functions = synced_gateway.functions
202
214
  self.canary = synced_gateway.canary
203
215
  self.description = synced_gateway.description
216
+ self.state = synced_gateway.state
204
217
 
205
218
  def with_basic_auth(self, username: str, password: str):
206
219
  """
@@ -247,7 +260,12 @@ class APIGateway:
247
260
  def from_scheme(cls, api_gateway: mlrun.common.schemas.APIGateway):
248
261
  project = api_gateway.metadata.labels.get(PROJECT_NAME_LABEL)
249
262
  functions, canary = cls._resolve_canary(api_gateway.spec.upstreams)
250
- return cls(
263
+ state = (
264
+ api_gateway.status.state
265
+ if api_gateway.status
266
+ else mlrun.common.schemas.APIGatewayState.none
267
+ )
268
+ api_gateway = cls(
251
269
  project=project,
252
270
  description=api_gateway.spec.description,
253
271
  name=api_gateway.spec.name,
@@ -257,15 +275,21 @@ class APIGateway:
257
275
  functions=functions,
258
276
  canary=canary,
259
277
  )
278
+ api_gateway.state = state
279
+ return api_gateway
260
280
 
261
281
  def to_scheme(self) -> mlrun.common.schemas.APIGateway:
262
282
  upstreams = (
263
283
  [
264
284
  mlrun.common.schemas.APIGatewayUpstream(
265
- nucliofunction={"name": function_name},
266
- percentage=percentage,
267
- )
268
- for function_name, percentage in zip(self.functions, self.canary)
285
+ nucliofunction={"name": self.functions[0]},
286
+ percentage=self.canary[0],
287
+ ),
288
+ mlrun.common.schemas.APIGatewayUpstream(
289
+ # do not set percent for the second function,
290
+ # so we can define which function to display as a primary one in UI
291
+ nucliofunction={"name": self.functions[1]},
292
+ ),
269
293
  ]
270
294
  if self.canary
271
295
  else [
@@ -300,6 +324,8 @@ class APIGateway:
300
324
 
301
325
  :return: (str) The invoke URL.
302
326
  """
327
+ if not self.host.startswith("http"):
328
+ self.host = f"https://{self.host}"
303
329
  return urljoin(self.host, self.path)
304
330
 
305
331
  def _validate(
mlrun/serving/routers.py CHANGED
@@ -28,6 +28,7 @@ import numpy as np
28
28
  import mlrun
29
29
  import mlrun.common.model_monitoring
30
30
  import mlrun.common.schemas.model_monitoring
31
+ from mlrun.errors import err_to_str
31
32
  from mlrun.utils import logger, now_date
32
33
 
33
34
  from ..common.helpers import parse_versioned_object_uri
@@ -1013,7 +1014,7 @@ def _init_endpoint_record(
1013
1014
  graph_server.function_uri
1014
1015
  )
1015
1016
  except Exception as e:
1016
- logger.error("Failed to parse function URI", exc=e)
1017
+ logger.error("Failed to parse function URI", exc=err_to_str(e))
1017
1018
  return None
1018
1019
 
1019
1020
  # Generating version model value based on the model name and model version
@@ -1089,12 +1090,12 @@ def _init_endpoint_record(
1089
1090
  except Exception as exc:
1090
1091
  logger.warning(
1091
1092
  "Failed creating model endpoint record",
1092
- exc=exc,
1093
+ exc=err_to_str(exc),
1093
1094
  traceback=traceback.format_exc(),
1094
1095
  )
1095
1096
 
1096
1097
  except Exception as e:
1097
- logger.error("Failed to retrieve model endpoint object", exc=e)
1098
+ logger.error("Failed to retrieve model endpoint object", exc=err_to_str(e))
1098
1099
 
1099
1100
  return endpoint_uid
1100
1101
 
@@ -21,6 +21,7 @@ import mlrun.common.model_monitoring
21
21
  import mlrun.common.schemas.model_monitoring
22
22
  from mlrun.artifacts import ModelArtifact # noqa: F401
23
23
  from mlrun.config import config
24
+ from mlrun.errors import err_to_str
24
25
  from mlrun.utils import logger, now_date
25
26
 
26
27
  from ..common.helpers import parse_versioned_object_uri
@@ -523,7 +524,7 @@ def _init_endpoint_record(
523
524
  graph_server.function_uri
524
525
  )
525
526
  except Exception as e:
526
- logger.error("Failed to parse function URI", exc=e)
527
+ logger.error("Failed to parse function URI", exc=err_to_str(e))
527
528
  return None
528
529
 
529
530
  # Generating version model value based on the model name and model version
@@ -576,9 +577,9 @@ def _init_endpoint_record(
576
577
  )
577
578
 
578
579
  except Exception as e:
579
- logger.error("Failed to create endpoint record", exc=e)
580
+ logger.error("Failed to create endpoint record", exc=err_to_str(e))
580
581
 
581
582
  except Exception as e:
582
- logger.error("Failed to retrieve model endpoint object", exc=e)
583
+ logger.error("Failed to retrieve model endpoint object", exc=err_to_str(e))
583
584
 
584
585
  return uid
mlrun/utils/http.py CHANGED
@@ -122,7 +122,7 @@ class HTTPSessionWithRetry(requests.Session):
122
122
 
123
123
  self._logger.warning(
124
124
  "Error during request handling, retrying",
125
- exc=str(exc),
125
+ exc=err_to_str(exc),
126
126
  retry_count=retry_count,
127
127
  url=url,
128
128
  method=method,
mlrun/utils/retryer.py CHANGED
@@ -138,6 +138,7 @@ class Retryer:
138
138
  except mlrun.errors.MLRunFatalFailureError as exc:
139
139
  raise exc.original_exception
140
140
  except Exception as exc:
141
+ self.last_exception = exc
141
142
  return (
142
143
  None,
143
144
  self.last_exception,
@@ -1,4 +1,4 @@
1
1
  {
2
- "git_commit": "06b1879c4a1857b20f07e805c46f51aa4ac74cef",
3
- "version": "1.7.0-rc7"
2
+ "git_commit": "cc1ff1e98ef6b7951710f45c3d297d0d0b4319c0",
3
+ "version": "1.7.0-rc8"
4
4
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mlrun
3
- Version: 1.7.0rc7
3
+ Version: 1.7.0rc8
4
4
  Summary: Tracking and config of machine learning runs
5
5
  Home-page: https://github.com/mlrun/mlrun
6
6
  Author: Yaron Haviv
@@ -37,12 +37,12 @@ Requires-Dist: pyyaml ~=5.1
37
37
  Requires-Dist: requests ~=2.31
38
38
  Requires-Dist: tabulate ~=0.8.6
39
39
  Requires-Dist: v3io ~=0.6.4
40
- Requires-Dist: pydantic >=1.10.8,~=1.10
40
+ Requires-Dist: pydantic <1.10.15,>=1.10.8
41
41
  Requires-Dist: mergedeep ~=1.3
42
42
  Requires-Dist: v3io-frames ~=0.10.12
43
43
  Requires-Dist: semver ~=3.0
44
44
  Requires-Dist: dependency-injector ~=4.41
45
- Requires-Dist: fsspec ==2023.9.2
45
+ Requires-Dist: fsspec <2024.4,>=2023.9.2
46
46
  Requires-Dist: v3iofs ~=0.1.17
47
47
  Requires-Dist: storey ~=1.7.6
48
48
  Requires-Dist: inflection ~=0.5.0
@@ -50,7 +50,7 @@ Requires-Dist: python-dotenv ~=0.17.0
50
50
  Requires-Dist: setuptools ~=69.1
51
51
  Requires-Dist: deprecated ~=1.2
52
52
  Requires-Dist: jinja2 >=3.1.3,~=3.1
53
- Requires-Dist: orjson ~=3.9
53
+ Requires-Dist: orjson <4,>=3.9.15
54
54
  Provides-Extra: alibaba-oss
55
55
  Requires-Dist: ossfs ==2023.12.0 ; extra == 'alibaba-oss'
56
56
  Requires-Dist: oss2 ==2.18.1 ; extra == 'alibaba-oss'
@@ -66,7 +66,7 @@ Requires-Dist: boto3 <1.29.0,>=1.28.0 ; extra == 'all'
66
66
  Requires-Dist: dask ~=2023.9.0 ; extra == 'all'
67
67
  Requires-Dist: databricks-sdk ~=0.13.0 ; extra == 'all'
68
68
  Requires-Dist: distributed ~=2023.9.0 ; extra == 'all'
69
- Requires-Dist: gcsfs ==2023.9.2 ; extra == 'all'
69
+ Requires-Dist: gcsfs <2024.4,>=2023.9.2 ; extra == 'all'
70
70
  Requires-Dist: google-cloud-bigquery[bqstorage,pandas] ==3.14.1 ; extra == 'all'
71
71
  Requires-Dist: google-cloud-storage ==2.14.0 ; extra == 'all'
72
72
  Requires-Dist: google-cloud ==0.34 ; extra == 'all'
@@ -79,7 +79,7 @@ Requires-Dist: ossfs ==2023.12.0 ; extra == 'all'
79
79
  Requires-Dist: plotly <5.12.0,~=5.4 ; extra == 'all'
80
80
  Requires-Dist: pyopenssl >=23 ; extra == 'all'
81
81
  Requires-Dist: redis ~=4.3 ; extra == 'all'
82
- Requires-Dist: s3fs ==2023.9.2 ; extra == 'all'
82
+ Requires-Dist: s3fs <2024.4,>=2023.9.2 ; extra == 'all'
83
83
  Requires-Dist: sqlalchemy ~=1.4 ; extra == 'all'
84
84
  Provides-Extra: api
85
85
  Requires-Dist: uvicorn ~=0.27.1 ; extra == 'api'
@@ -115,7 +115,7 @@ Requires-Dist: boto3 <1.29.0,>=1.28.0 ; extra == 'complete'
115
115
  Requires-Dist: dask ~=2023.9.0 ; extra == 'complete'
116
116
  Requires-Dist: databricks-sdk ~=0.13.0 ; extra == 'complete'
117
117
  Requires-Dist: distributed ~=2023.9.0 ; extra == 'complete'
118
- Requires-Dist: gcsfs ==2023.9.2 ; extra == 'complete'
118
+ Requires-Dist: gcsfs <2024.4,>=2023.9.2 ; extra == 'complete'
119
119
  Requires-Dist: google-cloud-bigquery[bqstorage,pandas] ==3.14.1 ; extra == 'complete'
120
120
  Requires-Dist: graphviz ~=0.20.0 ; extra == 'complete'
121
121
  Requires-Dist: kafka-python ~=2.0 ; extra == 'complete'
@@ -126,7 +126,7 @@ Requires-Dist: ossfs ==2023.12.0 ; extra == 'complete'
126
126
  Requires-Dist: plotly <5.12.0,~=5.4 ; extra == 'complete'
127
127
  Requires-Dist: pyopenssl >=23 ; extra == 'complete'
128
128
  Requires-Dist: redis ~=4.3 ; extra == 'complete'
129
- Requires-Dist: s3fs ==2023.9.2 ; extra == 'complete'
129
+ Requires-Dist: s3fs <2024.4,>=2023.9.2 ; extra == 'complete'
130
130
  Requires-Dist: sqlalchemy ~=1.4 ; extra == 'complete'
131
131
  Provides-Extra: complete-api
132
132
  Requires-Dist: adlfs ==2023.9.0 ; extra == 'complete-api'
@@ -143,7 +143,7 @@ Requires-Dist: dask ~=2023.9.0 ; extra == 'complete-api'
143
143
  Requires-Dist: databricks-sdk ~=0.13.0 ; extra == 'complete-api'
144
144
  Requires-Dist: distributed ~=2023.9.0 ; extra == 'complete-api'
145
145
  Requires-Dist: fastapi ~=0.110.0 ; extra == 'complete-api'
146
- Requires-Dist: gcsfs ==2023.9.2 ; extra == 'complete-api'
146
+ Requires-Dist: gcsfs <2024.4,>=2023.9.2 ; extra == 'complete-api'
147
147
  Requires-Dist: google-cloud-bigquery[bqstorage,pandas] ==3.14.1 ; extra == 'complete-api'
148
148
  Requires-Dist: graphviz ~=0.20.0 ; extra == 'complete-api'
149
149
  Requires-Dist: humanfriendly ~=10.0 ; extra == 'complete-api'
@@ -158,7 +158,7 @@ Requires-Dist: plotly <5.12.0,~=5.4 ; extra == 'complete-api'
158
158
  Requires-Dist: pymysql ~=1.0 ; extra == 'complete-api'
159
159
  Requires-Dist: pyopenssl >=23 ; extra == 'complete-api'
160
160
  Requires-Dist: redis ~=4.3 ; extra == 'complete-api'
161
- Requires-Dist: s3fs ==2023.9.2 ; extra == 'complete-api'
161
+ Requires-Dist: s3fs <2024.4,>=2023.9.2 ; extra == 'complete-api'
162
162
  Requires-Dist: sqlalchemy ~=1.4 ; extra == 'complete-api'
163
163
  Requires-Dist: timelength ~=1.1 ; extra == 'complete-api'
164
164
  Requires-Dist: uvicorn ~=0.27.1 ; extra == 'complete-api'
@@ -174,7 +174,7 @@ Requires-Dist: google-cloud ==0.34 ; extra == 'google-cloud'
174
174
  Provides-Extra: google-cloud-bigquery
175
175
  Requires-Dist: google-cloud-bigquery[bqstorage,pandas] ==3.14.1 ; extra == 'google-cloud-bigquery'
176
176
  Provides-Extra: google-cloud-storage
177
- Requires-Dist: gcsfs ==2023.9.2 ; extra == 'google-cloud-storage'
177
+ Requires-Dist: gcsfs <2024.4,>=2023.9.2 ; extra == 'google-cloud-storage'
178
178
  Provides-Extra: graphviz
179
179
  Requires-Dist: graphviz ~=0.20.0 ; extra == 'graphviz'
180
180
  Provides-Extra: kafka
@@ -189,7 +189,7 @@ Requires-Dist: redis ~=4.3 ; extra == 'redis'
189
189
  Provides-Extra: s3
190
190
  Requires-Dist: boto3 <1.29.0,>=1.28.0 ; extra == 's3'
191
191
  Requires-Dist: aiobotocore <2.8,>=2.5.0 ; extra == 's3'
192
- Requires-Dist: s3fs ==2023.9.2 ; extra == 's3'
192
+ Requires-Dist: s3fs <2024.4,>=2023.9.2 ; extra == 's3'
193
193
  Provides-Extra: sqlalchemy
194
194
  Requires-Dist: sqlalchemy ~=1.4 ; extra == 'sqlalchemy'
195
195
 
@@ -1,15 +1,15 @@
1
1
  mlrun/__init__.py,sha256=o9dHUfVFADfsi6GnOPLr2OkfkHdPvOnA7rkoECen0-I,7248
2
- mlrun/__main__.py,sha256=vg-HMhJqQ3OYt31YmijjBh6-6AZQVe4FvDYn4MwEpYs,49229
3
- mlrun/config.py,sha256=dfX2Q7IcmLct9BSkQM92jARN3gCMNph2qG4m3wxsJ5Q,63044
2
+ mlrun/__main__.py,sha256=LKskOWulg04o0IFm33Pfmokuxo6P9wLSl3ZHkiS9eZc,49326
3
+ mlrun/config.py,sha256=7HGuYhgeCLETYxNxqjSgtSFfNMQ5PcAPaWmtBRX-uoo,63992
4
4
  mlrun/errors.py,sha256=HmOAdfpL0bCDisZMUoJPOumneq71ko49Ph-XBL-A4xA,7080
5
5
  mlrun/execution.py,sha256=meZ_qSdTmnpqW7DKv7LdBmuE1Ut34E1RbK2kO0MD_QM,40866
6
6
  mlrun/features.py,sha256=nPDvy8tJuxwbRr843oWcnLBrqMJDPUanzn2Sb3BBi6w,15569
7
7
  mlrun/k8s_utils.py,sha256=YyFZT2WNZrJkcZoqxrkduQgzQ1X-7195O0mmEqvaIug,7023
8
- mlrun/kfpops.py,sha256=nVQUjLVBhXqkL2OTWJUo4qFIfNVEXUKIXJmRpBW0MVU,30481
8
+ mlrun/kfpops.py,sha256=bCHfvzz9E_fOSM8ASPqBcbG4pGRo8Sq5IMvGIYiEYRI,30446
9
9
  mlrun/lists.py,sha256=ev-gLBPc_az03yQEHrKyDPq_Bjosa4D_XFiVbRIpmRY,8286
10
10
  mlrun/model.py,sha256=BkPHhOQZJUQI4YB74FE8gEBOHwY1rpEhiEBcjzWIJtw,70641
11
11
  mlrun/render.py,sha256=aMH3U2z7ELpW8MwYEGOrqLdEUwMX29shqy6V6-KbgiM,13009
12
- mlrun/run.py,sha256=WHGTAzQf-HgKLULVYcYvxlOd9Ku-53pRVwvJ_d5JDuo,42879
12
+ mlrun/run.py,sha256=38xMRfYQU7qpEtWjzFOul-gYLzL6vrnolXDmQU4eB7s,42968
13
13
  mlrun/secrets.py,sha256=Nl_7ZNSErd-AOH19vVx_PjrLg9bJM9L-BvEYoPolB1c,7776
14
14
  mlrun/api/schemas/__init__.py,sha256=LhfO3myrnLVxC0MYCAc1_LTuqhRlYV3H7BwJkjOu3dQ,14211
15
15
  mlrun/artifacts/__init__.py,sha256=LxEWcMYPawJYvNOl6H2_UvrxdLTNYfKeZcMEKFZnGgA,1187
@@ -27,8 +27,8 @@ mlrun/common/db/__init__.py,sha256=xY3wHC4TEJgez7qtnn1pQvHosi8-5UJOCtyGBS7FcGE,5
27
27
  mlrun/common/db/sql_session.py,sha256=Znc8KE2oLy4lg3_vRki1sVlNx59TgDSOTCXfU561hBU,2659
28
28
  mlrun/common/model_monitoring/__init__.py,sha256=x0EMEvxVjHsm858J1t6IEA9dtKTdFpJ9sKhss10ld8A,721
29
29
  mlrun/common/model_monitoring/helpers.py,sha256=1CpxIDQPumFnpUB1eqcvCpLlyPFVeW2sL6prM-N5A1A,4405
30
- mlrun/common/schemas/__init__.py,sha256=8gTYVVxSI8-IvbHVf7LyI1SXrhgGufQtx-7k-UoxkcM,4984
31
- mlrun/common/schemas/api_gateway.py,sha256=lDXnA0mE9PCyeB0p7VSoj7TN0xSF-e6XUrTYJjLqbbQ,2344
30
+ mlrun/common/schemas/__init__.py,sha256=kMQDBUWtuJxBhCUakS8knGUyZa_izTAJpMOFJrivkjM,5005
31
+ mlrun/common/schemas/api_gateway.py,sha256=mw47rpTBAVIRV6TdMQ_A6rIgnEHOUweU7iT3VbINvBE,2519
32
32
  mlrun/common/schemas/artifact.py,sha256=d6srME_eWn2MpGuqvPQZtePRFkjDfNJgQ6JDd51qVrI,2796
33
33
  mlrun/common/schemas/auth.py,sha256=KOQfABIXTrcMh3Us5vlmnN4w3bJB7Rl3Xd5GTAFpr-g,5970
34
34
  mlrun/common/schemas/background_task.py,sha256=2qZxib2qrF_nPZj0ncitCG-2jxz2hg1qj0hFc8eswWQ,1707
@@ -70,7 +70,7 @@ mlrun/datastore/alibaba_oss.py,sha256=OfQ9AbsJNBFF9DFgUdq38TvKw6qwnHmEcnH-nze6ZZ
70
70
  mlrun/datastore/azure_blob.py,sha256=NpkEoIie7mH171tOwlrwpEwzRYGoo9SF3FAAegEENhU,9019
71
71
  mlrun/datastore/base.py,sha256=QNiYoeyMRnZiyp7HRT68sfjWeSyu0zLLGfzTkTdkyl8,24421
72
72
  mlrun/datastore/datastore.py,sha256=GGo8XPnKVWWgY0b-18D93V1g8DJgeBNafa6knnHEabw,9111
73
- mlrun/datastore/datastore_profile.py,sha256=JSfZaxP1DZRnbRUTu00FEYp-C4bCKJziNgd5xRGrBaI,15985
73
+ mlrun/datastore/datastore_profile.py,sha256=yRQA7UmiaBvkROOakjlkgMPBzu9WCQMEBuSNYix93UU,16175
74
74
  mlrun/datastore/dbfs_store.py,sha256=5IkxnFQXkW0fdx-ca5jjQnUdTsTfNdJzMvV31ZpDNrM,6634
75
75
  mlrun/datastore/filestore.py,sha256=nS3Ie6jG41NDiW_as9tF8Nu5maaSVEKYKUr1IQtPhuA,3767
76
76
  mlrun/datastore/google_cloud_storage.py,sha256=Du5qYYUCSkLt9acQDeQ-PgEjttsE7D2eAoLebO43kiw,6110
@@ -83,7 +83,7 @@ mlrun/datastore/sources.py,sha256=3BgqVgJzdiK7OWbbSJiGBnIY1OnP4W9lLEdk--RGruQ,40
83
83
  mlrun/datastore/spark_udf.py,sha256=NnnB3DZxZb-rqpRy7b-NC7QWXuuqFn3XkBDc86tU4mQ,1498
84
84
  mlrun/datastore/spark_utils.py,sha256=50rllp6xXpXY__1LbU7aTXUU5ca8dKAfoskPre3npZo,1611
85
85
  mlrun/datastore/store_resources.py,sha256=dfMdFy2urilECtlwLJr5CSG12MA645b-NPYDnbr5s1A,6839
86
- mlrun/datastore/targets.py,sha256=YjjvXnaEEj0ojxiOxoRSuIrbzAvuRSpFxX-9_zJFaZ0,70714
86
+ mlrun/datastore/targets.py,sha256=wTnPDuYvWkfz6zqEbJfWYQ9Zzf2NlzSb-SW8P9qfg8k,70949
87
87
  mlrun/datastore/utils.py,sha256=YKK9q1C0LmveQFnbh1Dkb8LwA4WbOYFTsNxziC8d0E4,5227
88
88
  mlrun/datastore/v3io.py,sha256=oCAMpST6sKnjm5CaNsTrcwqk3bvUFzuKBvNFmUJpPfw,9252
89
89
  mlrun/datastore/wasbfs/__init__.py,sha256=s5Ul-0kAhYqFjKDR2X0O2vDGDbLQQduElb32Ev56Te4,1343
@@ -180,12 +180,12 @@ mlrun/frameworks/sklearn/mlrun_interface.py,sha256=y4RsG_RI4KfPrPADU4Lsr8PF95_VR
180
180
  mlrun/frameworks/sklearn/model_handler.py,sha256=h2fZGq8y_0okTq9ygsRtVwE3IduNYcUTf8OJyNA2xww,4695
181
181
  mlrun/frameworks/sklearn/utils.py,sha256=Cg_pSxUMvKe8vBSLQor6JM8u9_ccKJg4Rk5EPDzTsVo,1209
182
182
  mlrun/frameworks/tf_keras/__init__.py,sha256=ZHK6lXdu-DY3yRsP4RPAXlkSbQiDdHHIr3ed6cO0Y7E,10447
183
- mlrun/frameworks/tf_keras/mlrun_interface.py,sha256=L-tPpHmR9mEea6fqkNcbGLgrqdU-_sgCKZewXmD_7Bc,16610
183
+ mlrun/frameworks/tf_keras/mlrun_interface.py,sha256=lJsfctAxkdLSiTNzedTdF4KbiPW_nJdnUNUMhk7S2I8,16901
184
184
  mlrun/frameworks/tf_keras/model_handler.py,sha256=2BFrYc7mKLKmEdgPAzBa8c_OnvSHqO9HXv7At3onrlo,28102
185
185
  mlrun/frameworks/tf_keras/model_server.py,sha256=64x0nWFGdEONrye5F1socl8KXhMiia_neAoMzXcPF8A,9529
186
186
  mlrun/frameworks/tf_keras/utils.py,sha256=_QWk1YmdRybbUB54vsQFE2_WMuAK0g7eR1ozVbMk0Go,4284
187
187
  mlrun/frameworks/tf_keras/callbacks/__init__.py,sha256=ufH33gxHF4erP9RCiM8O2YaXLG6btLIU98gCS_MGFjI,844
188
- mlrun/frameworks/tf_keras/callbacks/logging_callback.py,sha256=5GjK4cfq_5gmyl9L9nJSk8qTwaVH0eGkTnZinE5jjtQ,21855
188
+ mlrun/frameworks/tf_keras/callbacks/logging_callback.py,sha256=_ADceS3uylZQFV0ZwQhA3bnTpCyW3_ayJV_-_8Zaa6c,21993
189
189
  mlrun/frameworks/tf_keras/callbacks/mlrun_logging_callback.py,sha256=RuR4tuPNCAeUC_6z6MEdMc_OzejFs3lEMSxvO5k5mUo,8701
190
190
  mlrun/frameworks/tf_keras/callbacks/tensorboard_logging_callback.py,sha256=bdhMM6ZaCQObhzGry8Sg-uVJ89P7U2nr6RnIQoNDy_Q,28419
191
191
  mlrun/frameworks/xgboost/__init__.py,sha256=opkcSxdS4y-FF6EO2KHHmtEqpACk06RU2y6ilnFK-Zc,10276
@@ -205,7 +205,7 @@ mlrun/model_monitoring/controller.py,sha256=DtrEOHGOlBm2PYPESjo5ea4ubHgUD7eEy0A1
205
205
  mlrun/model_monitoring/controller_handler.py,sha256=J9Y9ppLsQaxyYRl21165Rr7QuI9EM-mk-5veAqs4Bi0,1336
206
206
  mlrun/model_monitoring/evidently_application.py,sha256=o9PsDsjyRfcbuC1X1gb2ww5nzWCsR_KheabtpxKZ5yY,4824
207
207
  mlrun/model_monitoring/features_drift_table.py,sha256=c6GpKtpOJbuT1u5uMWDL_S-6N4YPOmlktWMqPme3KFY,25308
208
- mlrun/model_monitoring/helpers.py,sha256=wod0L2Q9GCah9x1TtbajjkuQvQ4XKX5qGxQeJDx70hc,8925
208
+ mlrun/model_monitoring/helpers.py,sha256=gEgj5rCU1q8NRtmpFBpzfpOaeDmdf1Aa0WPiHKtnjfo,9095
209
209
  mlrun/model_monitoring/model_endpoint.py,sha256=BBtxdY5ciormI_al4zshmIp0GN7hGhOCn-hLgpCXek0,3938
210
210
  mlrun/model_monitoring/prometheus.py,sha256=cUR4y73GutJB_pA_VCBDl9YtK4PcIJp2wj2rnLVmYi4,7578
211
211
  mlrun/model_monitoring/stream_processing.py,sha256=A2dKK2XJAkGnVWK6MawsSRN4nR_ZgFCKILyHgj8LJhw,49317
@@ -249,8 +249,8 @@ mlrun/platforms/iguazio.py,sha256=M89zXuCd1bbcIANSy4ec-9evXIs7nPRVo3D0YhKvEtE,19
249
249
  mlrun/platforms/other.py,sha256=T1BibmEBNggM62YJ6oejRmcVv_1besfH5DDHhCaDkRg,11828
250
250
  mlrun/projects/__init__.py,sha256=Lv5rfxyXJrw6WGOWJKhBz66M6t3_zsNMCfUD6waPwx4,1153
251
251
  mlrun/projects/operations.py,sha256=SiDHd7cqh9u23AVpETbkJE6WmOnB434zBrwM-StZLQY,18538
252
- mlrun/projects/pipelines.py,sha256=icejHghKd5ofmitEZW0hGLiXa69So4-HywseDORTrDs,40567
253
- mlrun/projects/project.py,sha256=qaHuNVEgWgZCyzc_rE_fTr_aFRWIzEGFHn-tlDMRZLk,165818
252
+ mlrun/projects/pipelines.py,sha256=7XsVg13Y2bPK_6SCLC5e22PMnU2DUjscJX2LctSKXN8,40579
253
+ mlrun/projects/project.py,sha256=J9koTyjGvP82xlgXHYJbZnLjtTE9uJElw-8LMQwfujs,166182
254
254
  mlrun/runtimes/__init__.py,sha256=tTDfia4cr0gUy2rEtLTj4Nz6M_JJd6utzkFi-ogDvXg,8289
255
255
  mlrun/runtimes/base.py,sha256=prqlbGq5fbgQ8atBMjsXhdRY5UqS1egpHtOPaAjhVyI,36683
256
256
  mlrun/runtimes/constants.py,sha256=oP3OxdYCpbvadJ3zP1JGkqGBKaBheNkCnJISWha9x58,9513
@@ -272,7 +272,7 @@ mlrun/runtimes/mpijob/abstract.py,sha256=AqIb-nEKZaRO7x1GxJea6cXg_Tn3Dr4WiWZUz3y
272
272
  mlrun/runtimes/mpijob/v1.py,sha256=_RUlFo_3NcFf7x-QpUNVm8f7qNbRDIdUmPf_ijrv54U,3206
273
273
  mlrun/runtimes/mpijob/v1alpha1.py,sha256=w_971wwL03hW_ksgHJXdjTdjhxCs9KJ0zNqHSQ9whIM,1034
274
274
  mlrun/runtimes/nuclio/__init__.py,sha256=gx1kizzKv8pGT5TNloN1js1hdbxqDw3rM90sLVYVffY,794
275
- mlrun/runtimes/nuclio/api_gateway.py,sha256=5wJaST489LWAr8py_TiMRKnKtybvM3UvxxpmIojfE2A,14855
275
+ mlrun/runtimes/nuclio/api_gateway.py,sha256=1fHCHqR5ABlVKJ0al12iIYDSMy2bOTIxnLJPvb4KE9M,15894
276
276
  mlrun/runtimes/nuclio/function.py,sha256=7Ax0u760z-ex0yRlztJRrUZcKGXeJNvsXcUAJqjc26w,49044
277
277
  mlrun/runtimes/nuclio/nuclio.py,sha256=sLK8KdGO1LbftlL3HqPZlFOFTAAuxJACZCVl1c0Ha6E,2942
278
278
  mlrun/runtimes/nuclio/serving.py,sha256=e0VdJ6zbkurEl9ZlYqGzUaWRUM_US2bE7fpV6RZ83as,29745
@@ -284,13 +284,13 @@ mlrun/runtimes/sparkjob/spark3job.py,sha256=yU-PxEI2pDJK5LHXTTcmrdjmO1Jwrj5Zyf8N
284
284
  mlrun/serving/__init__.py,sha256=_6HRAOuS2Ehjo3vwx5h1aI_-JppxEAsl4VfEERAbGFE,1078
285
285
  mlrun/serving/merger.py,sha256=PXLn3A21FiLteJHaDSLm5xKNT-80eTTjfHUJnBX1gKY,6116
286
286
  mlrun/serving/remote.py,sha256=jLFjMfgPx_PwJkpRHYbKrB9EQZcD4gZ-iczzHl1o0zs,18010
287
- mlrun/serving/routers.py,sha256=YN8k6eWWraqWOU3SqYFda7ky-oV_O0--zAuPEGwKdPI,54976
287
+ mlrun/serving/routers.py,sha256=gI4NU41ft16aD8jagI9sUzfHWMknHq8FSt5zxEhAvmQ,55048
288
288
  mlrun/serving/server.py,sha256=gs3FATCkCv6Ngke70vNaCWGhONH6IMI4eiuvRwLLMdY,21055
289
289
  mlrun/serving/serving_wrapper.py,sha256=R670-S6PX_d5ER6jiHtRvacuPyFzQH0mEf2K0sBIIOM,836
290
290
  mlrun/serving/states.py,sha256=7_nvFobvT-PIJoegkfXYrMlDD0CC4T66y8TvUytkEGo,56265
291
291
  mlrun/serving/utils.py,sha256=WO0n_YTO0YVPTjp_90zxRl4vey4flDgw5vaOHK5p_qY,3871
292
292
  mlrun/serving/v1_serving.py,sha256=by4myxlnwyZ0ijQ5fURilGCK1sUpdQL2Il1VR3Xqpxg,11805
293
- mlrun/serving/v2_serving.py,sha256=z1jTy0ObRFpV5nxMk-FGL2PoTQf-L01sYjfdA6_NqJc,23559
293
+ mlrun/serving/v2_serving.py,sha256=_iFo8uY1n7xZp_YFVgsL6yn9HofY_49A1Bc3cmbL30s,23631
294
294
  mlrun/track/__init__.py,sha256=LWRUHJt8JyFW17FyNPOVyWd-NXTf1iptzsK9KFj5fuY,765
295
295
  mlrun/track/tracker.py,sha256=y-UdhC2nzM6r-yHCwvrfiHRr93xsr4JRsZTxDrTTRJo,3541
296
296
  mlrun/track/tracker_manager.py,sha256=IYBl99I62IC6VCCmG1yt6JoHNOQXa53C4DURJ2sWgio,5726
@@ -303,10 +303,10 @@ mlrun/utils/clones.py,sha256=mJpx4nyFiY6jlBCvFABsNuyi_mr1mvfPWn81vlafpOU,7361
303
303
  mlrun/utils/condition_evaluator.py,sha256=-nGfRmZzivn01rHTroiGY4rqEv8T1irMyhzxEei-sKc,1897
304
304
  mlrun/utils/db.py,sha256=KEa-vzicUhzIwo1wBXax2ZuXtYgf5to7wnsY3CYCiOQ,1713
305
305
  mlrun/utils/helpers.py,sha256=k69jVSFghCWS_UyScr76reHl5AxNq1TKBOK7dfnYY7Q,52095
306
- mlrun/utils/http.py,sha256=mQqnCsdsg9_q2WIbgoEKGQpMesslb0ErvbwYV-htarw,8700
306
+ mlrun/utils/http.py,sha256=l_JCPrCq8bfYUcUcAFWUPvb9Xu-93bLGIhV-H-XCU9s,8707
307
307
  mlrun/utils/logger.py,sha256=6-XMv1ucg9NqTstLpiji9qb06XHpx2LvNA8JxU1J5Tk,8133
308
308
  mlrun/utils/regex.py,sha256=Nd7xnDHU9PEOsse6rFwLNVgU4AaYCyuwMmQ9qgx2-Vw,4581
309
- mlrun/utils/retryer.py,sha256=BsST2dbGCHcY46wyGG3zWel_O9YquO0c57P3rcBxXU0,7522
309
+ mlrun/utils/retryer.py,sha256=TFdnh5bEjeNW-n0upzXi1Ni4jcjNKdl7jj8y0VtncJ0,7560
310
310
  mlrun/utils/singleton.py,sha256=p1Y-X0mPSs_At092GS-pZCA8CTR62HOqPU07_ZH6-To,869
311
311
  mlrun/utils/v3io_clients.py,sha256=7eReciHBPLuLW6b5DIc8emnmrjh4D8hXPuqZDooR6HQ,1284
312
312
  mlrun/utils/vault.py,sha256=xUiKL17dCXjwQJ33YRzQj0oadUXATlFWPzKKYAESoQk,10447
@@ -320,11 +320,11 @@ mlrun/utils/notifications/notification/ipython.py,sha256=d47s-fW4TgqOJZOSdmzBQvd
320
320
  mlrun/utils/notifications/notification/slack.py,sha256=5JysqIpUYUZKXPSeeZtbl7qb2L9dj7p2NvnEBcEsZkA,3898
321
321
  mlrun/utils/notifications/notification/webhook.py,sha256=QHezCuN5uXkLcroAGxGrhGHaxAdUvkDLIsp27_Yrfd4,2390
322
322
  mlrun/utils/version/__init__.py,sha256=7kkrB7hEZ3cLXoWj1kPoDwo4MaswsI2JVOBpbKgPAgc,614
323
- mlrun/utils/version/version.json,sha256=TnN6nW9a4k4AQnZGiQygqhQeWdt1ELZw03VIFsr4QUk,88
323
+ mlrun/utils/version/version.json,sha256=xDSX9YaznNhRyrGomc1_tfWTpIgN3RYMWgZyvWebdI8,88
324
324
  mlrun/utils/version/version.py,sha256=eEW0tqIAkU9Xifxv8Z9_qsYnNhn3YH7NRAfM-pPLt1g,1878
325
- mlrun-1.7.0rc7.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
326
- mlrun-1.7.0rc7.dist-info/METADATA,sha256=eu82u1btwz6Wl2LRO_7J6tv-8Cl8d6DjbH4uFBJsylg,18719
327
- mlrun-1.7.0rc7.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
328
- mlrun-1.7.0rc7.dist-info/entry_points.txt,sha256=1Owd16eAclD5pfRCoJpYC2ZJSyGNTtUr0nCELMioMmU,46
329
- mlrun-1.7.0rc7.dist-info/top_level.txt,sha256=NObLzw3maSF9wVrgSeYBv-fgnHkAJ1kEkh12DLdd5KM,6
330
- mlrun-1.7.0rc7.dist-info/RECORD,,
325
+ mlrun-1.7.0rc8.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
326
+ mlrun-1.7.0rc8.dist-info/METADATA,sha256=5byWUNhTGutxXLa0EZduzJTgQIWsetUN15lEyF57N4E,18799
327
+ mlrun-1.7.0rc8.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
328
+ mlrun-1.7.0rc8.dist-info/entry_points.txt,sha256=1Owd16eAclD5pfRCoJpYC2ZJSyGNTtUr0nCELMioMmU,46
329
+ mlrun-1.7.0rc8.dist-info/top_level.txt,sha256=NObLzw3maSF9wVrgSeYBv-fgnHkAJ1kEkh12DLdd5KM,6
330
+ mlrun-1.7.0rc8.dist-info/RECORD,,