mlrun 1.10.0rc17__py3-none-any.whl → 1.10.0rc19__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 (32) hide show
  1. mlrun/__init__.py +21 -2
  2. mlrun/common/constants.py +1 -0
  3. mlrun/common/formatters/artifact.py +1 -0
  4. mlrun/common/schemas/model_monitoring/constants.py +14 -6
  5. mlrun/config.py +14 -0
  6. mlrun/datastore/__init__.py +9 -1
  7. mlrun/datastore/datastore.py +4 -4
  8. mlrun/datastore/datastore_profile.py +26 -0
  9. mlrun/datastore/model_provider/huggingface_provider.py +182 -0
  10. mlrun/datastore/model_provider/model_provider.py +57 -56
  11. mlrun/datastore/model_provider/openai_provider.py +34 -20
  12. mlrun/datastore/utils.py +6 -0
  13. mlrun/launcher/base.py +13 -0
  14. mlrun/model_monitoring/api.py +5 -3
  15. mlrun/model_monitoring/applications/base.py +107 -28
  16. mlrun/model_monitoring/applications/results.py +4 -7
  17. mlrun/run.py +4 -2
  18. mlrun/runtimes/base.py +5 -2
  19. mlrun/runtimes/daskjob.py +1 -0
  20. mlrun/runtimes/nuclio/application/application.py +84 -5
  21. mlrun/runtimes/nuclio/function.py +3 -1
  22. mlrun/serving/server.py +1 -0
  23. mlrun/serving/states.py +5 -2
  24. mlrun/utils/helpers.py +16 -1
  25. mlrun/utils/logger.py +3 -1
  26. mlrun/utils/version/version.json +2 -2
  27. {mlrun-1.10.0rc17.dist-info → mlrun-1.10.0rc19.dist-info}/METADATA +2 -2
  28. {mlrun-1.10.0rc17.dist-info → mlrun-1.10.0rc19.dist-info}/RECORD +32 -31
  29. {mlrun-1.10.0rc17.dist-info → mlrun-1.10.0rc19.dist-info}/WHEEL +0 -0
  30. {mlrun-1.10.0rc17.dist-info → mlrun-1.10.0rc19.dist-info}/entry_points.txt +0 -0
  31. {mlrun-1.10.0rc17.dist-info → mlrun-1.10.0rc19.dist-info}/licenses/LICENSE +0 -0
  32. {mlrun-1.10.0rc17.dist-info → mlrun-1.10.0rc19.dist-info}/top_level.txt +0 -0
@@ -29,12 +29,13 @@ from mlrun.runtimes.nuclio.api_gateway import (
29
29
  APIGatewaySpec,
30
30
  )
31
31
  from mlrun.runtimes.nuclio.function import NuclioSpec, NuclioStatus
32
- from mlrun.utils import logger, update_in
32
+ from mlrun.utils import is_valid_port, logger, update_in
33
33
 
34
34
 
35
35
  class ApplicationSpec(NuclioSpec):
36
36
  _dict_fields = NuclioSpec._dict_fields + [
37
37
  "internal_application_port",
38
+ "application_ports",
38
39
  ]
39
40
 
40
41
  def __init__(
@@ -79,6 +80,7 @@ class ApplicationSpec(NuclioSpec):
79
80
  state_thresholds=None,
80
81
  disable_default_http_trigger=None,
81
82
  internal_application_port=None,
83
+ application_ports=None,
82
84
  ):
83
85
  super().__init__(
84
86
  command=command,
@@ -126,11 +128,54 @@ class ApplicationSpec(NuclioSpec):
126
128
  self.min_replicas = min_replicas or 1
127
129
  self.max_replicas = max_replicas or 1
128
130
 
131
+ # initializing internal application port and application ports
132
+ self._internal_application_port = None
133
+ self._application_ports = []
134
+
135
+ application_ports = application_ports or []
136
+
137
+ # if internal_application_port is not provided, use the first application port
138
+ if not internal_application_port and len(application_ports) > 0:
139
+ internal_application_port = application_ports[0]
140
+
141
+ # the port of application sidecar to which traffic will be routed from a nuclio function
129
142
  self.internal_application_port = (
130
143
  internal_application_port
131
144
  or mlrun.mlconf.function.application.default_sidecar_internal_port
132
145
  )
133
146
 
147
+ # all exposed ports by the application sidecar
148
+ self.application_ports = application_ports
149
+
150
+ @property
151
+ def application_ports(self):
152
+ return self._application_ports
153
+
154
+ @application_ports.setter
155
+ def application_ports(self, ports):
156
+ """
157
+ Set the application ports for the application sidecar.
158
+ The internal application port is always included and always first.
159
+ """
160
+ # Handle None / single int
161
+ if ports is None:
162
+ ports = []
163
+ elif isinstance(ports, int):
164
+ ports = [ports]
165
+ elif not isinstance(ports, list):
166
+ raise mlrun.errors.MLRunInvalidArgumentError(
167
+ "Application ports must be a list of integers"
168
+ )
169
+
170
+ # Validate and normalize
171
+ cleaned_ports = []
172
+ for port in ports:
173
+ is_valid_port(port, raise_on_error=True)
174
+ if port != self.internal_application_port:
175
+ cleaned_ports.append(port)
176
+
177
+ self._application_ports = [self.internal_application_port] + cleaned_ports
178
+
134
179
  @property
135
180
  def internal_application_port(self):
136
181
  return self._internal_application_port
@@ -138,10 +183,13 @@ class ApplicationSpec(NuclioSpec):
138
183
  @internal_application_port.setter
139
184
  def internal_application_port(self, port):
140
185
  port = int(port)
141
- if port < 0 or port > 65535:
142
- raise ValueError("Port must be in the range 0-65535")
186
+ is_valid_port(port, raise_on_error=True)
143
187
  self._internal_application_port = port
144
188
 
189
+ # when setting new internal application port, ensure that it is included in the application ports
190
+ # it just triggers setter logic, so setting to the same value is a no-op
191
+ self.application_ports = self._application_ports
192
+
145
193
 
146
194
  class ApplicationStatus(NuclioStatus):
147
195
  def __init__(
@@ -222,6 +270,32 @@ class ApplicationRuntime(RemoteRuntime):
222
270
  def set_internal_application_port(self, port: int):
223
271
  self.spec.internal_application_port = port
224
272
 
273
+ def with_sidecar(
274
+ self,
275
+ name: typing.Optional[str] = None,
276
+ image: typing.Optional[str] = None,
277
+ ports: typing.Optional[typing.Union[int, list[int]]] = None,
278
+ command: typing.Optional[str] = None,
279
+ args: typing.Optional[list[str]] = None,
280
+ ):
281
+ # wraps with_sidecar just to set the application ports
282
+ super().with_sidecar(
283
+ name=name,
284
+ image=image,
285
+ ports=ports,
286
+ command=command,
287
+ args=args,
288
+ )
289
+
290
+ if ports:
291
+ if self.spec.internal_application_port != ports[0]:
292
+ logger.info(
293
+ f"Setting internal application port to the first port from the sidecar: {ports[0]}. "
294
+ f"If this is not intended, please set the internal_application_port explicitly."
295
+ )
296
+ self.spec.internal_application_port = ports[0]
297
+ self.spec.application_ports = ports
298
+
225
299
  def pre_deploy_validation(self):
226
300
  super().pre_deploy_validation()
227
301
  if not self.spec.config.get("spec.sidecars"):
@@ -431,6 +505,7 @@ class ApplicationRuntime(RemoteRuntime):
431
505
  ssl_redirect: typing.Optional[bool] = None,
432
506
  set_as_default: bool = False,
433
507
  gateway_timeout: typing.Optional[int] = None,
508
+ port: typing.Optional[int] = None,
434
509
  ):
435
510
  """
436
511
  Create the application API gateway. Once the application is deployed, the API gateway can be created.
@@ -447,6 +522,8 @@ class ApplicationRuntime(RemoteRuntime):
447
522
  :param set_as_default: Set the API gateway as the default for the application (`status.api_gateway`)
448
523
  :param gateway_timeout: nginx ingress timeout in sec (request timeout, when will the gateway return an
449
524
  error)
525
+ :param port: The API gateway port, used only when direct_port_access=True
526
+
450
527
  :return: The API gateway URL
451
528
  """
452
529
  if not name:
@@ -467,7 +544,9 @@ class ApplicationRuntime(RemoteRuntime):
467
544
  "Authentication credentials not provided"
468
545
  )
469
546
 
470
- ports = self.spec.internal_application_port if direct_port_access else []
547
+ ports = (
548
+ port or self.spec.internal_application_port if direct_port_access else []
549
+ )
471
550
 
472
551
  api_gateway = APIGateway(
473
552
  APIGatewayMetadata(
@@ -728,7 +807,7 @@ class ApplicationRuntime(RemoteRuntime):
728
807
  self.with_sidecar(
729
808
  name=self.status.sidecar_name,
730
809
  image=self.status.application_image,
731
- ports=self.spec.internal_application_port,
810
+ ports=self.spec.application_ports,
732
811
  command=self.spec.command,
733
812
  args=self.spec.args,
734
813
  )
@@ -29,6 +29,7 @@ from kubernetes import client
29
29
  from nuclio.deploy import find_dashboard_url, get_deploy_status
30
30
  from nuclio.triggers import V3IOStreamTrigger
31
31
 
32
+ import mlrun.common.constants
32
33
  import mlrun.db
33
34
  import mlrun.errors
34
35
  import mlrun.k8s_utils
@@ -830,7 +831,8 @@ class RemoteRuntime(KubeResource):
830
831
  def _get_runtime_env(self):
831
832
  # for runtime specific env var enrichment (before deploy)
832
833
  runtime_env = {
833
- "MLRUN_ACTIVE_PROJECT": self.metadata.project or mlconf.active_project,
834
+ mlrun.common.constants.MLRUN_ACTIVE_PROJECT: self.metadata.project
835
+ or mlconf.active_project,
834
836
  }
835
837
  if mlconf.httpdb.api_url:
836
838
  runtime_env["MLRUN_DBPATH"] = mlconf.httpdb.api_url
mlrun/serving/server.py CHANGED
@@ -361,6 +361,7 @@ def add_error_raiser_step(
361
361
  raise_exception=monitored_step.raise_exception,
362
362
  models_names=list(monitored_step.class_args["models"].keys()),
363
363
  model_endpoint_creation_strategy=mlrun.common.schemas.ModelEndpointCreationStrategy.SKIP,
364
+ function=monitored_step.function,
364
365
  )
365
366
  if monitored_step.responder:
366
367
  monitored_step.responder = False
mlrun/serving/states.py CHANGED
@@ -48,7 +48,7 @@ from mlrun.datastore.storeytargets import KafkaStoreyTarget, StreamStoreyTarget
48
48
  from mlrun.utils import get_data_from_path, logger, split_path
49
49
 
50
50
  from ..config import config
51
- from ..datastore import get_stream_pusher
51
+ from ..datastore import _DummyStream, get_stream_pusher
52
52
  from ..datastore.utils import (
53
53
  get_kafka_brokers_from_dict,
54
54
  parse_kafka_url,
@@ -1206,7 +1206,7 @@ class Model(storey.ParallelExecutionRunnable, ModelObj):
1206
1206
 
1207
1207
  class LLModel(Model):
1208
1208
  def __init__(
1209
- self, name: str, input_path: Optional[Union[str, list[str]]], **kwargs
1209
+ self, name: str, input_path: Optional[Union[str, list[str]]] = None, **kwargs
1210
1210
  ):
1211
1211
  super().__init__(name, **kwargs)
1212
1212
  self._input_path = split_path(input_path)
@@ -1287,6 +1287,7 @@ class LLModel(Model):
1287
1287
  {
1288
1288
  place_holder: input_data.get(body_map["field"])
1289
1289
  for place_holder, body_map in prompt_legend.items()
1290
+ if input_data.get(body_map["field"])
1290
1291
  }
1291
1292
  if prompt_legend
1292
1293
  else {}
@@ -3099,6 +3100,8 @@ def _init_async_objects(context, steps):
3099
3100
  context=context,
3100
3101
  **options,
3101
3102
  )
3103
+ elif stream_path.startswith("dummy://"):
3104
+ step._async_object = _DummyStream(context=context, **options)
3102
3105
  else:
3103
3106
  if stream_path.startswith("v3io://"):
3104
3107
  endpoint, stream_path = parse_path(step.path)
mlrun/utils/helpers.py CHANGED
@@ -800,7 +800,12 @@ def remove_tag_from_artifact_uri(uri: str) -> Optional[str]:
800
800
  "store://key:tag" => "store://key"
801
801
  "store://models/remote-model-project/my_model#0@tree" => unchanged (no tag)
802
802
  """
803
- return re.sub(r"(?<=/[^/:]\+):[^@^:\s]+(?=(@|\^|$))", "", uri)
803
+ add_store = False
804
+ if mlrun.datastore.is_store_uri(uri):
805
+ uri = uri.removeprefix(DB_SCHEMA + "://")
806
+ add_store = True
807
+ uri = re.sub(r"(#[^:@\s]*)?:[^@^:\s]+(?=(@|\^|$))", lambda m: m.group(1) or "", uri)
808
+ return uri if not add_store else DB_SCHEMA + "://" + uri
804
809
 
805
810
 
806
811
  def extend_hub_uri_if_needed(uri) -> tuple[str, bool]:
@@ -2422,3 +2427,13 @@ def get_data_from_path(
2422
2427
  if isinstance(output_data, (int, float)):
2423
2428
  output_data = [output_data]
2424
2429
  return output_data
2430
+
2431
+
2432
+ def is_valid_port(port: int, raise_on_error: bool = False) -> bool:
2433
+ if not port:
2434
+ return False
2435
+ if 0 <= port <= 65535:
2436
+ return True
2437
+ if raise_on_error:
2438
+ raise ValueError("Port must be in the range 0–65535")
2439
+ return False
mlrun/utils/logger.py CHANGED
@@ -393,12 +393,14 @@ def resolve_formatter_by_kind(
393
393
 
394
394
 
395
395
  def create_test_logger(name: str = "mlrun", stream: IO[str] = stdout) -> Logger:
396
- return create_logger(
396
+ logger = create_logger(
397
397
  level="debug",
398
398
  formatter_kind=FormatterKinds.HUMAN_EXTENDED.name,
399
399
  name=name,
400
400
  stream=stream,
401
401
  )
402
+ logger._logger.propagate = True # pass records up to pytest’s handler
403
+ return logger
402
404
 
403
405
 
404
406
  def create_logger(
@@ -1,4 +1,4 @@
1
1
  {
2
- "git_commit": "2e72ac795fbd5a2a1422956417d742f8dd9bcdb5",
3
- "version": "1.10.0-rc17"
2
+ "git_commit": "c6c790191ecb3442b09dc10bde02dc75f7216bb1",
3
+ "version": "1.10.0-rc19"
4
4
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mlrun
3
- Version: 1.10.0rc17
3
+ Version: 1.10.0rc19
4
4
  Summary: Tracking and config of machine learning runs
5
5
  Home-page: https://github.com/mlrun/mlrun
6
6
  Author: Yaron Haviv
@@ -44,7 +44,7 @@ Requires-Dist: semver~=3.0
44
44
  Requires-Dist: dependency-injector~=4.41
45
45
  Requires-Dist: fsspec<2024.7,>=2023.9.2
46
46
  Requires-Dist: v3iofs~=0.1.17
47
- Requires-Dist: storey~=1.10.8
47
+ Requires-Dist: storey~=1.10.9
48
48
  Requires-Dist: inflection~=0.5.0
49
49
  Requires-Dist: python-dotenv~=1.0
50
50
  Requires-Dist: setuptools>=75.2
@@ -1,6 +1,6 @@
1
- mlrun/__init__.py,sha256=Y_AFhZV1hEx4vfiO-cyjup0aLGcp6R0SeL75GqLFQrc,7514
1
+ mlrun/__init__.py,sha256=JYy9uteFFNPbPoC0geDEPhaLrfiqTijxUhLZSToAky4,8029
2
2
  mlrun/__main__.py,sha256=wQNaxW7QsqFBtWffnPkw-497fnpsrQzUnscBQQAP_UM,48364
3
- mlrun/config.py,sha256=c3F899B20Xe_wpO7cg9G5jEM7iMxfK92LaNxPKnQTyg,72306
3
+ mlrun/config.py,sha256=XAAb68MwEHpuPddPMtKBULtFk0hI9YC25DniYQk1DKk,72853
4
4
  mlrun/errors.py,sha256=bAk0t_qmCxQSPNK0TugOAfA5R6f0G6OYvEvXUWSJ_5U,9062
5
5
  mlrun/execution.py,sha256=dJ4PFwg5AlDHbCL2Q9dVDjWA_i64UTq2qBiF8kTU9tw,56922
6
6
  mlrun/features.py,sha256=jMEXo6NB36A6iaxNEJWzdtYwUmglYD90OIKTIEeWhE8,15841
@@ -8,7 +8,7 @@ mlrun/k8s_utils.py,sha256=mMnGyouHoJC93ZD2KGf9neJM1pD7mR9IXLnHOEwYVTQ,21469
8
8
  mlrun/lists.py,sha256=OlaV2QIFUzmenad9kxNJ3k4whlDyxI3zFbGwr6vpC5Y,8561
9
9
  mlrun/model.py,sha256=wHtM8LylSOEFk6Hxl95CVm8DOPhofjsANYdIvKHH6dw,88956
10
10
  mlrun/render.py,sha256=5DlhD6JtzHgmj5RVlpaYiHGhX84Q7qdi4RCEUj2UMgw,13195
11
- mlrun/run.py,sha256=_ban8NoNWfQHps3QIVyWh_Hn2S6usNrFBTUMObaeueo,46904
11
+ mlrun/run.py,sha256=UqNL4qA8CZFEu9lrP5xVl_tfYn6_wiN7x0VVQYWH5_c,46932
12
12
  mlrun/secrets.py,sha256=dZPdkc_zzfscVQepOHUwmzFqnBavDCBXV9DQoH_eIYM,7800
13
13
  mlrun/alerts/__init__.py,sha256=0gtG1BG0DXxFrXegIkjbM1XEN4sP9ODo0ucXrNld1hU,601
14
14
  mlrun/alerts/alert.py,sha256=QQFZGydQbx9RvAaSiaH-ALQZVcDKQX5lgizqj_rXW2k,15948
@@ -23,14 +23,14 @@ mlrun/artifacts/manager.py,sha256=_cDNCS7wwmFIsucJ2uOgHxZQECmIGb8Wye64b6oLgKU,16
23
23
  mlrun/artifacts/model.py,sha256=8EVaD70SOkTohQIWqkDk0MEwskdofxs3wJTgspa2sho,25615
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=BDxV8kAAf8D2W-gsa7IP8HJe5da-sPwVUfiodQ1O7kI,4127
26
+ mlrun/common/constants.py,sha256=H2Qh65elADGD1vgMzI6gYT5RAA2q8uFL6UByIwYBV34,4173
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
30
30
  mlrun/common/db/__init__.py,sha256=kXGBqhLN0rlAx0kTXhozGzFsIdSqW0uTSKMmsLgq_is,569
31
31
  mlrun/common/db/dialects.py,sha256=QN9bx7CTo32IIdJ2J3ZrsX8IUdp_BPxBtl0LyjMEC9g,868
32
32
  mlrun/common/formatters/__init__.py,sha256=au7S3M3wa9964RpQhFSvflk5-i5SWMeb3kek8Gvt4kg,889
33
- mlrun/common/formatters/artifact.py,sha256=NT2RPfReUGWVQ-Rhv1zexgXfLuKI5FvtneJDhihZK5g,1462
33
+ mlrun/common/formatters/artifact.py,sha256=JRs1B3nEvTdn4h69FLHjZZY_Dy40E9-BgvxfjcL_DKU,1503
34
34
  mlrun/common/formatters/base.py,sha256=85vQ0t4ZfqCs8b8QV1RLfRcEvANztKvTvsa__sD3zTo,4099
35
35
  mlrun/common/formatters/feature_set.py,sha256=SmSSiNYXZtmzQDCvQJhIpArtjOInmDN0g1xFqrDdWsw,1534
36
36
  mlrun/common/formatters/function.py,sha256=H8bHilWSn1NXm5WWlFH2dx8slomCGm3e8ghsmWOOh48,1493
@@ -75,7 +75,7 @@ mlrun/common/schemas/serving.py,sha256=4ek9JZDagkdeXyfkX6P6xp4deUNSf_kqXUaXcKSuv
75
75
  mlrun/common/schemas/tag.py,sha256=1wqEiAujsElojWb3qmuyfcaLFjXSNAAQdafkDx7fkn0,891
76
76
  mlrun/common/schemas/workflow.py,sha256=Y-FHJnxs5c86yetuOAPdEJPkne__tLPCxjSXSb4lrjo,2541
77
77
  mlrun/common/schemas/model_monitoring/__init__.py,sha256=FqFiFIDcylquQdY0XTBamB5kMzMrMFEpVYM_ecsVfLg,1925
78
- mlrun/common/schemas/model_monitoring/constants.py,sha256=spujh8a2GOb7pm8LksAQwndxPWSsjeyRub3ZVICdgNI,13685
78
+ mlrun/common/schemas/model_monitoring/constants.py,sha256=WhuUWgOwk91BI0dP5c1rm6X_W0V4UBV3l6KvRNHHE-E,13898
79
79
  mlrun/common/schemas/model_monitoring/functions.py,sha256=GpfSGp05D87wEKemECD3USL368pvnAM2WfS-nef5qOg,2210
80
80
  mlrun/common/schemas/model_monitoring/grafana.py,sha256=THQlLfPBevBksta8p5OaIsBaJtsNSXexLvHrDxOaVns,2095
81
81
  mlrun/common/schemas/model_monitoring/model_endpoints.py,sha256=aCrVqgoJsUEwvDJ84YFabDSy78CHcVBV3b0RdWj4JUw,13250
@@ -84,12 +84,12 @@ mlrun/data_types/data_types.py,sha256=0_oKLC6-sXL2_nnaDMP_HSXB3fD1nJAG4J2Jq6sGNN
84
84
  mlrun/data_types/infer.py,sha256=F_dW7oR6jrhdONzTl4ngeGh9x7twHdpUJBd2xMVA1Vw,6476
85
85
  mlrun/data_types/spark.py,sha256=I5JC887dT9RGs5Tqz5zaRxlCMyhMeFmwuNbExQoyW0E,9625
86
86
  mlrun/data_types/to_pandas.py,sha256=KOy0FLXPJirsgH6szcC5BI6t70yVDCjuo6LmuYHNTuI,11429
87
- mlrun/datastore/__init__.py,sha256=UKGHkUfj5A9dqTiOeW4UScvwv0vq91NS_xs3-_QA7Jk,5869
87
+ mlrun/datastore/__init__.py,sha256=K8lPO3nVQTk14tbJMUS8nbtwhJw1PBzvQ4UI1T5exFo,6097
88
88
  mlrun/datastore/alibaba_oss.py,sha256=E0t0-e9Me2t2Mux2LWdC9riOG921TgNjhoy897JJX7o,4932
89
89
  mlrun/datastore/azure_blob.py,sha256=3LG7tOTwT97ZFBmyq-sfAIe5_SkuFgisRQtipv4kKUw,12779
90
90
  mlrun/datastore/base.py,sha256=yLdnFCL2k_rcasdbxXjnQr7Lwm-A79LnW9AITtn9-p4,25450
91
- mlrun/datastore/datastore.py,sha256=IbAUi2GZesWcmqPimURZD9iP5GpCB8se7GYA9afkAjA,13236
92
- mlrun/datastore/datastore_profile.py,sha256=fRR01v9mqC40UML49-6rdx-28b2FaRLj7iZeWJgSiT0,22842
91
+ mlrun/datastore/datastore.py,sha256=gOlMyPDelD9CRieoraDPYf1NNig_GrQRuuQxLmRq8Bo,13298
92
+ mlrun/datastore/datastore_profile.py,sha256=Y4VtaatIK4UXuTdpffCkAcsCBSxj5KOgnX7KlL-Yds8,23803
93
93
  mlrun/datastore/dbfs_store.py,sha256=CJwst1598qxiu63-Qa0c3e5E8LjeCv1XbMyWI7A6irY,6560
94
94
  mlrun/datastore/filestore.py,sha256=OcykjzhbUAZ6_Cb9bGAXRL2ngsOpxXSb4rR0lyogZtM,3773
95
95
  mlrun/datastore/google_cloud_storage.py,sha256=NREwZT7BCI0HfmOGkjpy5S3psiL_rgQSi43MaazJcKk,8711
@@ -105,12 +105,13 @@ mlrun/datastore/spark_utils.py,sha256=dn0RWpYzee-M8UZw-NVuHAdqlNAZ7VO-fNtI8ZiDky
105
105
  mlrun/datastore/store_resources.py,sha256=s2794zqkzy_mjRMvRedDNs_tycTLoF8wxTqsWRQphCE,6839
106
106
  mlrun/datastore/storeytargets.py,sha256=TvHbY3XS0qOg8ImXW1ET61UnjUPcYJbfSGAga3vgC-o,6492
107
107
  mlrun/datastore/targets.py,sha256=8dRnLy1wBYJbVyommYkpGeztdT1CsfFHZY6Zh7o8X-Q,79165
108
- mlrun/datastore/utils.py,sha256=7qhGMRos-IgV2o-dywWbMvCGQDlbRs_CZcwfvTxZTvw,11798
108
+ mlrun/datastore/utils.py,sha256=jxvq4lgQfgqb7dwKe4Kp51fYCCyOvitEdIfV2mzlqxg,11936
109
109
  mlrun/datastore/v3io.py,sha256=sMn5473k_bXyIJovNf0rahbVHRmO0YPdOwIhbs06clg,8201
110
110
  mlrun/datastore/vectorstore.py,sha256=k-yom5gfw20hnVG0Rg7aBEehuXwvAloZwn0cx0VGals,11708
111
111
  mlrun/datastore/model_provider/__init__.py,sha256=kXGBqhLN0rlAx0kTXhozGzFsIdSqW0uTSKMmsLgq_is,569
112
- mlrun/datastore/model_provider/model_provider.py,sha256=eDkTdwFsVxSFzTkYUwyXfl34d5IIulcQrLRjxWM2BFc,7911
113
- mlrun/datastore/model_provider/openai_provider.py,sha256=KmuE9i3EbeOc7QACvFLwnU2n3i_PmIw429BaZC0Y9Zw,8463
112
+ mlrun/datastore/model_provider/huggingface_provider.py,sha256=CLnGN5WJPw8rBAokwZpta1W0_HuyWX3DoIqjW5aaOfE,7237
113
+ mlrun/datastore/model_provider/model_provider.py,sha256=pI546ThJOTvHY8VzM0IfKOKMG4nCvOH4rqs2r36rw9c,8007
114
+ mlrun/datastore/model_provider/openai_provider.py,sha256=kT8lPl_4QeUTtnM4ehXlts53Rhd4e9dGqBViz7KjL0Y,9357
114
115
  mlrun/datastore/wasbfs/__init__.py,sha256=s5Ul-0kAhYqFjKDR2X0O2vDGDbLQQduElb32Ev56Te4,1343
115
116
  mlrun/datastore/wasbfs/fs.py,sha256=ge8NK__5vTcFT-krI155_8RDUywQw4SIRX6BWATXy9Q,6299
116
117
  mlrun/db/__init__.py,sha256=WqJ4x8lqJ7ZoKbhEyFqkYADd9P6E3citckx9e9ZLcIU,1163
@@ -219,13 +220,13 @@ mlrun/frameworks/xgboost/mlrun_interface.py,sha256=KINOf0udbY75raTewjEFGNlIRyE0e
219
220
  mlrun/frameworks/xgboost/model_handler.py,sha256=bJq4D1VK3rzhALovqIV5mS0LvGiTlsgAkHanD25pU2c,11663
220
221
  mlrun/frameworks/xgboost/utils.py,sha256=4rShiFChzDbWJ4HoTo4qV_lj-Z89pHBAp6Z1yHmU8wA,1068
221
222
  mlrun/launcher/__init__.py,sha256=JL8qkT1lLr1YvW6iP0hmwDTaSR2RfrMDx0-1gWRhTOE,571
222
- mlrun/launcher/base.py,sha256=6T17geeplFgYL2Suu4xo5crN_s9JETtr1m0ael8dIYk,17225
223
+ mlrun/launcher/base.py,sha256=Nw7_uUuwCmkxHSBR9-dcseEa1tmDAjTX0uJkyaPeYcY,17987
223
224
  mlrun/launcher/client.py,sha256=cl40ZdF2fU1QbUKdl4Xnucb1u2h-8_dn095qIUyxbuM,6402
224
225
  mlrun/launcher/factory.py,sha256=RW7mfzEFi8fR0M-4W1JQg1iq3_muUU6OTqT_3l4Ubrk,2338
225
226
  mlrun/launcher/local.py,sha256=3gv-IQYoIChSmRaZ0vLUh0Tu26oLMCx9GbBYh4fWygQ,12161
226
227
  mlrun/launcher/remote.py,sha256=zFXE52Cq_7EkC8lfNKT0ceIbye0CfFiundF7O1YU4Xw,7810
227
228
  mlrun/model_monitoring/__init__.py,sha256=qDQnncjya9XPTlfvGyfWsZWiXc-glGZrrNja-5QmCZk,782
228
- mlrun/model_monitoring/api.py,sha256=lAsUp-gzqw8D1cpHVGA2_nPMYn5R4jdxk9UaGOiQ8fE,25945
229
+ mlrun/model_monitoring/api.py,sha256=9UsBIy8LYeAOoiIDTYthuD0mx1TYZxeGgaEM_H2qBkM,26092
229
230
  mlrun/model_monitoring/controller.py,sha256=FVckATzREAzldj68D1KxcnKSdilgKUDRdqhRUf9XpWU,39592
230
231
  mlrun/model_monitoring/features_drift_table.py,sha256=c6GpKtpOJbuT1u5uMWDL_S-6N4YPOmlktWMqPme3KFY,25308
231
232
  mlrun/model_monitoring/helpers.py,sha256=0xhIYKzhaBrgyjLiA_ekCZsXzi3GBXpLyG40Bhj-PTY,23596
@@ -233,10 +234,10 @@ mlrun/model_monitoring/stream_processing.py,sha256=Mzn9Pelcblw8UzOFLGKb9oXOX0tkP
233
234
  mlrun/model_monitoring/writer.py,sha256=rGRFzSOkqZWvD3Y6sVk2H1Gepfnkzkp9ce00PsApTLo,8288
234
235
  mlrun/model_monitoring/applications/__init__.py,sha256=MaH_n4GiqqQvSkntM5yQ7_FCANtM_IfgK-IJTdo4G_E,757
235
236
  mlrun/model_monitoring/applications/_application_steps.py,sha256=t9LDIqQUGE10cyjyhlg0QqN1yVx0apD1HpERYLJfm8U,7409
236
- mlrun/model_monitoring/applications/base.py,sha256=nkJK0X3-7xEjcWGjtfLmvMomi5F14mmWs_M0_L8op5o,40547
237
+ mlrun/model_monitoring/applications/base.py,sha256=tfxXcE7WOvPEd68b6gbZWFG-8gkeeSaRRN0G0HYn0C8,43932
237
238
  mlrun/model_monitoring/applications/context.py,sha256=fAGFNCyNhSnVJPSIeJxv-XmEL2JhDmjK5Ouog9qyvdc,17035
238
239
  mlrun/model_monitoring/applications/histogram_data_drift.py,sha256=2qgfFmrpHf-x0_EaHD-0T28piwSQzw-HH71aV1GwbZs,15389
239
- mlrun/model_monitoring/applications/results.py,sha256=_qmj6TWT0SR2bi7gUyRKBU418eGgGoLW2_hTJ7S-ock,5782
240
+ mlrun/model_monitoring/applications/results.py,sha256=LfBQOmkpKGvVGNrcj5QiXsRIG2IRgcv_Xqe4QJBmauk,5699
240
241
  mlrun/model_monitoring/applications/evidently/__init__.py,sha256=-DqdPnBSrjZhFvKOu_Ie3MiFvlur9sPTZpZ1u0_1AE8,690
241
242
  mlrun/model_monitoring/applications/evidently/base.py,sha256=shH9YwuFrGNWy1IDAbv622l-GE4o1z_u1bqhqTyTHDA,5661
242
243
  mlrun/model_monitoring/db/__init__.py,sha256=r47xPGZpIfMuv8J3PQCZTSqVPMhUta4sSJCZFKcS7FM,644
@@ -279,8 +280,8 @@ mlrun/projects/operations.py,sha256=Rc__P5ucNAY2G-lHc2LrnZs15PUbNFt8-NqNNT2Bjpk,
279
280
  mlrun/projects/pipelines.py,sha256=nGDzBABEOqoe9sWbax4SfF8CVLgrvK0NLWBadzEthVE,52219
280
281
  mlrun/projects/project.py,sha256=a75Sj1lYzWNggTXIKxerSwy52YqNciGvrT2k-ddRmkQ,254149
281
282
  mlrun/runtimes/__init__.py,sha256=8cqrYKy1a0_87XG7V_p96untQ4t8RocadM4LVEEN1JM,9029
282
- mlrun/runtimes/base.py,sha256=FVEooeQMpwxIK2iW1R0FNbC5P1sZ_efKtJcsdNSYNmc,38266
283
- mlrun/runtimes/daskjob.py,sha256=kR5sDQtXtXY_VGn5Y3mapjEEB5P6Lj30pSrPe1DqsAg,20077
283
+ mlrun/runtimes/base.py,sha256=UD2wwxXIZ5ocY-pw7Mzc98plhp-OEgyBuPDtPuVdx98,38346
284
+ mlrun/runtimes/daskjob.py,sha256=IN6gKKrmCIjWooj5FgFm-pAb2i7ra1ERRzClfu_rYGI,20102
284
285
  mlrun/runtimes/funcdoc.py,sha256=zRFHrJsV8rhDLJwoUhcfZ7Cs0j-tQ76DxwUqdXV_Wyc,9810
285
286
  mlrun/runtimes/function_reference.py,sha256=fnMKUEieKgy4JyVLhFpDtr6JvKgOaQP8F_K2H3-Pk9U,5030
286
287
  mlrun/runtimes/generators.py,sha256=X8NDlCEPveDDPOHtOGcSpbl3pAVM3DP7fuPj5xVhxEY,7290
@@ -299,11 +300,11 @@ mlrun/runtimes/mpijob/abstract.py,sha256=QjAG4OZ6JEQ58w5-qYNd6hUGwvaW8ynLtlr9jNf
299
300
  mlrun/runtimes/mpijob/v1.py,sha256=zSlRkiWHz4B3yht66sVf4mlfDs8YT9EnP9DfBLn5VNs,3372
300
301
  mlrun/runtimes/nuclio/__init__.py,sha256=gx1kizzKv8pGT5TNloN1js1hdbxqDw3rM90sLVYVffY,794
301
302
  mlrun/runtimes/nuclio/api_gateway.py,sha256=vH9ClKVP4Mb24rvA67xPuAvAhX-gAv6vVtjVxyplhdc,26969
302
- mlrun/runtimes/nuclio/function.py,sha256=07_ypKlvWRb4ckpc_xjKjGR_7EnsRnJV_w80DvEsJcU,54523
303
+ mlrun/runtimes/nuclio/function.py,sha256=8cCcZKWkhvxWp2L5aOoNI6Q2Ya96RFWRswL942LDZy8,54586
303
304
  mlrun/runtimes/nuclio/nuclio.py,sha256=sLK8KdGO1LbftlL3HqPZlFOFTAAuxJACZCVl1c0Ha6E,2942
304
305
  mlrun/runtimes/nuclio/serving.py,sha256=OadofTgla-1HoupdEbiOdgNbqE6LmFcCVOaffBjAByI,35383
305
306
  mlrun/runtimes/nuclio/application/__init__.py,sha256=rRs5vasy_G9IyoTpYIjYDafGoL6ifFBKgBtsXn31Atw,614
306
- mlrun/runtimes/nuclio/application/application.py,sha256=v8ph54xYi8oAZXM-zbaD6KqG2r2Y6BNyBqlfs-1cPy0,29069
307
+ mlrun/runtimes/nuclio/application/application.py,sha256=5HaB4JEF0PlgP17tyyh-g5X5XfGev4PvEtgVXkScVkg,32080
307
308
  mlrun/runtimes/nuclio/application/reverse_proxy.go,sha256=lEHH74vr2PridIHp1Jkc_NjkrWb5b6zawRrNxHQhwGU,2913
308
309
  mlrun/runtimes/sparkjob/__init__.py,sha256=GPP_ekItxiU9Ydn3mJa4Obph02Bg6DO-JYs791_MV58,607
309
310
  mlrun/runtimes/sparkjob/spark3job.py,sha256=3dW7RG2T58F2dsUw0TsRvE3SIFcekx3CerLdcaG1f50,41458
@@ -311,9 +312,9 @@ mlrun/serving/__init__.py,sha256=nriJAcVn5aatwU03T7SsE6ngJEGTxr3wIGt4WuvCCzY,139
311
312
  mlrun/serving/merger.py,sha256=pfOQoozUyObCTpqXAMk94PmhZefn4bBrKufO3MKnkAc,6193
312
313
  mlrun/serving/remote.py,sha256=Igha2FipK3-6rV_PZ1K464kTbiTu8rhc6SMm-HiEJ6o,18817
313
314
  mlrun/serving/routers.py,sha256=SmBOlHn7rT2gWTa-W8f16UB0UthgIFc4D1cPOZAA9ss,54003
314
- mlrun/serving/server.py,sha256=_P_SR4_7YKqruVzzDHgSPHWlNLGPG5-ksSUwuGhnmjg,38851
315
+ mlrun/serving/server.py,sha256=26HrbzFj_DgGnTMcb9UPLrOrK4IN9UK7y8j3nGWFgU8,38897
315
316
  mlrun/serving/serving_wrapper.py,sha256=UL9hhWCfMPcTJO_XrkvNaFvck1U1E7oS8trTZyak0cA,835
316
- mlrun/serving/states.py,sha256=nrwQcWC0q6A6xFSvTWvaDmtSVgv8Fva9TxCuBHGwZHs,124062
317
+ mlrun/serving/states.py,sha256=NGhIrNZ6ExHuHlF9Ot46vDZ4821VopnezT0LXSD3s-w,124287
317
318
  mlrun/serving/system_steps.py,sha256=tCxkJ54peOzRTMaqvHQCbcwx0ITqZkSpGXbtpRUEfzU,18463
318
319
  mlrun/serving/utils.py,sha256=Zbfqm8TKNcTE8zRBezVBzpvR2WKeKeIRN7otNIaiYEc,4170
319
320
  mlrun/serving/v1_serving.py,sha256=c6J_MtpE-Tqu00-6r4eJOCO6rUasHDal9W2eBIcrl50,11853
@@ -328,9 +329,9 @@ mlrun/utils/async_http.py,sha256=8Olx8TNNeXB07nEGwlqhEgFgnFAD71vBU_bqaA9JW-w,122
328
329
  mlrun/utils/azure_vault.py,sha256=IEFizrDGDbAaoWwDr1WoA88S_EZ0T--vjYtY-i0cvYQ,3450
329
330
  mlrun/utils/clones.py,sha256=qbAGyEbSvlewn3Tw_DpQZP9z6MGzFhSaZfI1CblX8Fg,7515
330
331
  mlrun/utils/condition_evaluator.py,sha256=-nGfRmZzivn01rHTroiGY4rqEv8T1irMyhzxEei-sKc,1897
331
- mlrun/utils/helpers.py,sha256=ympa9GWzF_NMNemKSas29s8I0-2seHGhfErFT1b-6tY,82419
332
+ mlrun/utils/helpers.py,sha256=XQPDzI0m2vzphZASEllL4eKeXzOXihoj1UqhRtS6PtE,82900
332
333
  mlrun/utils/http.py,sha256=5ZU2VpokaUM_DT3HBSqTm8xjUqTPjZN5fKkSIvKlTl0,8704
333
- mlrun/utils/logger.py,sha256=RG0m1rx6gfkJ-2C1r_p41MMpPiaDYqaYM2lYHDlNZEU,14767
334
+ mlrun/utils/logger.py,sha256=uaCgI_ezzaXf7nJDCy-1Nrjds8vSXqDbzmjmb3IyCQo,14864
334
335
  mlrun/utils/regex.py,sha256=FcRwWD8x9X3HLhCCU2F0AVKTFah784Pr7ZAe3a02jw8,5199
335
336
  mlrun/utils/retryer.py,sha256=SHddxyNdUjIyvNJ3idTDyBzXARihCSuo3zWlZj6fqB0,7852
336
337
  mlrun/utils/singleton.py,sha256=fNOfAUtha6OPCV_M1umWnGD0iabnnRwBke9otIspv30,868
@@ -347,11 +348,11 @@ mlrun/utils/notifications/notification/mail.py,sha256=ZyJ3eqd8simxffQmXzqd3bgbAq
347
348
  mlrun/utils/notifications/notification/slack.py,sha256=kfhogR5keR7Zjh0VCjJNK3NR5_yXT7Cv-x9GdOUW4Z8,7294
348
349
  mlrun/utils/notifications/notification/webhook.py,sha256=zxh8CAlbPnTazsk6r05X5TKwqUZVOH5KBU2fJbzQlG4,5330
349
350
  mlrun/utils/version/__init__.py,sha256=YnzE6tlf24uOQ8y7Z7l96QLAI6-QEii7-77g8ynmzy0,613
350
- mlrun/utils/version/version.json,sha256=V37lX2OyNEzNPMQsoXG-KqHjDgxsQv-dFqRr2AHbFCk,90
351
+ mlrun/utils/version/version.json,sha256=EzWH8LxmOAhQnz4_IE9K2M2ss6A8G38Jfi20S_UIYfM,90
351
352
  mlrun/utils/version/version.py,sha256=M2hVhRrgkN3SxacZHs3ZqaOsqAA7B6a22ne324IQ1HE,1877
352
- mlrun-1.10.0rc17.dist-info/licenses/LICENSE,sha256=zTiv1CxWNkOk1q8eJS1G_8oD4gWpWLwWxj_Agcsi8Os,11337
353
- mlrun-1.10.0rc17.dist-info/METADATA,sha256=D6HN7BHzSm7-exb9kSE5N2h4m_dPOSsQc-PoM_5avj4,26195
354
- mlrun-1.10.0rc17.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
355
- mlrun-1.10.0rc17.dist-info/entry_points.txt,sha256=1Owd16eAclD5pfRCoJpYC2ZJSyGNTtUr0nCELMioMmU,46
356
- mlrun-1.10.0rc17.dist-info/top_level.txt,sha256=NObLzw3maSF9wVrgSeYBv-fgnHkAJ1kEkh12DLdd5KM,6
357
- mlrun-1.10.0rc17.dist-info/RECORD,,
353
+ mlrun-1.10.0rc19.dist-info/licenses/LICENSE,sha256=zTiv1CxWNkOk1q8eJS1G_8oD4gWpWLwWxj_Agcsi8Os,11337
354
+ mlrun-1.10.0rc19.dist-info/METADATA,sha256=bqORiYx2KRWUZZ1vbMmfdZAp6-QtssfPaQE6Y-L9M_Q,26195
355
+ mlrun-1.10.0rc19.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
356
+ mlrun-1.10.0rc19.dist-info/entry_points.txt,sha256=1Owd16eAclD5pfRCoJpYC2ZJSyGNTtUr0nCELMioMmU,46
357
+ mlrun-1.10.0rc19.dist-info/top_level.txt,sha256=NObLzw3maSF9wVrgSeYBv-fgnHkAJ1kEkh12DLdd5KM,6
358
+ mlrun-1.10.0rc19.dist-info/RECORD,,