mlrun 1.6.4rc7__py3-none-any.whl → 1.7.0__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/__init__.py +11 -1
- mlrun/__main__.py +40 -122
- mlrun/alerts/__init__.py +15 -0
- mlrun/alerts/alert.py +248 -0
- mlrun/api/schemas/__init__.py +5 -4
- mlrun/artifacts/__init__.py +8 -3
- mlrun/artifacts/base.py +47 -257
- mlrun/artifacts/dataset.py +11 -192
- mlrun/artifacts/manager.py +79 -47
- mlrun/artifacts/model.py +31 -159
- mlrun/artifacts/plots.py +23 -380
- mlrun/common/constants.py +74 -1
- mlrun/common/db/sql_session.py +5 -5
- mlrun/common/formatters/__init__.py +21 -0
- mlrun/common/formatters/artifact.py +45 -0
- mlrun/common/formatters/base.py +113 -0
- mlrun/common/formatters/feature_set.py +33 -0
- mlrun/common/formatters/function.py +46 -0
- mlrun/common/formatters/pipeline.py +53 -0
- mlrun/common/formatters/project.py +51 -0
- mlrun/common/formatters/run.py +29 -0
- mlrun/common/helpers.py +12 -3
- mlrun/common/model_monitoring/helpers.py +9 -5
- mlrun/{runtimes → common/runtimes}/constants.py +37 -9
- mlrun/common/schemas/__init__.py +31 -5
- mlrun/common/schemas/alert.py +202 -0
- mlrun/common/schemas/api_gateway.py +196 -0
- mlrun/common/schemas/artifact.py +25 -4
- mlrun/common/schemas/auth.py +16 -5
- mlrun/common/schemas/background_task.py +1 -1
- mlrun/common/schemas/client_spec.py +4 -2
- mlrun/common/schemas/common.py +7 -4
- mlrun/common/schemas/constants.py +3 -0
- mlrun/common/schemas/feature_store.py +74 -44
- mlrun/common/schemas/frontend_spec.py +15 -7
- mlrun/common/schemas/function.py +12 -1
- mlrun/common/schemas/hub.py +11 -18
- mlrun/common/schemas/memory_reports.py +2 -2
- mlrun/common/schemas/model_monitoring/__init__.py +20 -4
- mlrun/common/schemas/model_monitoring/constants.py +123 -42
- mlrun/common/schemas/model_monitoring/grafana.py +13 -9
- mlrun/common/schemas/model_monitoring/model_endpoints.py +101 -54
- mlrun/common/schemas/notification.py +71 -14
- mlrun/common/schemas/object.py +2 -2
- mlrun/{model_monitoring/controller_handler.py → common/schemas/pagination.py} +9 -12
- mlrun/common/schemas/pipeline.py +8 -1
- mlrun/common/schemas/project.py +69 -18
- mlrun/common/schemas/runs.py +7 -1
- mlrun/common/schemas/runtime_resource.py +8 -12
- mlrun/common/schemas/schedule.py +4 -4
- mlrun/common/schemas/tag.py +1 -2
- mlrun/common/schemas/workflow.py +12 -4
- mlrun/common/types.py +14 -1
- mlrun/config.py +154 -69
- mlrun/data_types/data_types.py +6 -1
- mlrun/data_types/spark.py +2 -2
- mlrun/data_types/to_pandas.py +67 -37
- mlrun/datastore/__init__.py +6 -8
- mlrun/datastore/alibaba_oss.py +131 -0
- mlrun/datastore/azure_blob.py +143 -42
- mlrun/datastore/base.py +102 -58
- mlrun/datastore/datastore.py +34 -13
- mlrun/datastore/datastore_profile.py +146 -20
- mlrun/datastore/dbfs_store.py +3 -7
- mlrun/datastore/filestore.py +1 -4
- mlrun/datastore/google_cloud_storage.py +97 -33
- mlrun/datastore/hdfs.py +56 -0
- mlrun/datastore/inmem.py +6 -3
- mlrun/datastore/redis.py +7 -2
- mlrun/datastore/s3.py +34 -12
- mlrun/datastore/snowflake_utils.py +45 -0
- mlrun/datastore/sources.py +303 -111
- mlrun/datastore/spark_utils.py +31 -2
- mlrun/datastore/store_resources.py +9 -7
- mlrun/datastore/storeytargets.py +151 -0
- mlrun/datastore/targets.py +453 -176
- mlrun/datastore/utils.py +72 -58
- mlrun/datastore/v3io.py +6 -1
- mlrun/db/base.py +274 -41
- mlrun/db/factory.py +1 -1
- mlrun/db/httpdb.py +893 -225
- mlrun/db/nopdb.py +291 -33
- mlrun/errors.py +36 -6
- mlrun/execution.py +115 -42
- mlrun/feature_store/__init__.py +0 -2
- mlrun/feature_store/api.py +65 -73
- mlrun/feature_store/common.py +7 -12
- mlrun/feature_store/feature_set.py +76 -55
- mlrun/feature_store/feature_vector.py +39 -31
- mlrun/feature_store/ingestion.py +7 -6
- mlrun/feature_store/retrieval/base.py +16 -11
- mlrun/feature_store/retrieval/dask_merger.py +2 -0
- mlrun/feature_store/retrieval/job.py +13 -4
- mlrun/feature_store/retrieval/local_merger.py +2 -0
- mlrun/feature_store/retrieval/spark_merger.py +24 -32
- mlrun/feature_store/steps.py +45 -34
- mlrun/features.py +11 -21
- mlrun/frameworks/_common/artifacts_library.py +9 -9
- mlrun/frameworks/_common/mlrun_interface.py +5 -5
- mlrun/frameworks/_common/model_handler.py +48 -48
- mlrun/frameworks/_common/plan.py +5 -6
- mlrun/frameworks/_common/producer.py +3 -4
- mlrun/frameworks/_common/utils.py +5 -5
- mlrun/frameworks/_dl_common/loggers/logger.py +6 -7
- mlrun/frameworks/_dl_common/loggers/mlrun_logger.py +9 -9
- mlrun/frameworks/_dl_common/loggers/tensorboard_logger.py +23 -47
- mlrun/frameworks/_ml_common/artifacts_library.py +1 -2
- mlrun/frameworks/_ml_common/loggers/logger.py +3 -4
- mlrun/frameworks/_ml_common/loggers/mlrun_logger.py +4 -5
- mlrun/frameworks/_ml_common/model_handler.py +24 -24
- mlrun/frameworks/_ml_common/pkl_model_server.py +2 -2
- mlrun/frameworks/_ml_common/plan.py +2 -2
- mlrun/frameworks/_ml_common/plans/calibration_curve_plan.py +2 -3
- mlrun/frameworks/_ml_common/plans/confusion_matrix_plan.py +2 -3
- mlrun/frameworks/_ml_common/plans/dataset_plan.py +3 -3
- mlrun/frameworks/_ml_common/plans/feature_importance_plan.py +3 -3
- mlrun/frameworks/_ml_common/plans/roc_curve_plan.py +4 -4
- mlrun/frameworks/_ml_common/utils.py +4 -4
- mlrun/frameworks/auto_mlrun/auto_mlrun.py +9 -9
- mlrun/frameworks/huggingface/model_server.py +4 -4
- mlrun/frameworks/lgbm/__init__.py +33 -33
- mlrun/frameworks/lgbm/callbacks/callback.py +2 -4
- mlrun/frameworks/lgbm/callbacks/logging_callback.py +4 -5
- mlrun/frameworks/lgbm/callbacks/mlrun_logging_callback.py +4 -5
- mlrun/frameworks/lgbm/mlrun_interfaces/booster_mlrun_interface.py +1 -3
- mlrun/frameworks/lgbm/mlrun_interfaces/mlrun_interface.py +6 -6
- mlrun/frameworks/lgbm/model_handler.py +10 -10
- mlrun/frameworks/lgbm/model_server.py +6 -6
- mlrun/frameworks/lgbm/utils.py +5 -5
- mlrun/frameworks/onnx/dataset.py +8 -8
- mlrun/frameworks/onnx/mlrun_interface.py +3 -3
- mlrun/frameworks/onnx/model_handler.py +6 -6
- mlrun/frameworks/onnx/model_server.py +7 -7
- mlrun/frameworks/parallel_coordinates.py +6 -6
- mlrun/frameworks/pytorch/__init__.py +18 -18
- mlrun/frameworks/pytorch/callbacks/callback.py +4 -5
- mlrun/frameworks/pytorch/callbacks/logging_callback.py +17 -17
- mlrun/frameworks/pytorch/callbacks/mlrun_logging_callback.py +11 -11
- mlrun/frameworks/pytorch/callbacks/tensorboard_logging_callback.py +23 -29
- mlrun/frameworks/pytorch/callbacks_handler.py +38 -38
- mlrun/frameworks/pytorch/mlrun_interface.py +20 -20
- mlrun/frameworks/pytorch/model_handler.py +17 -17
- mlrun/frameworks/pytorch/model_server.py +7 -7
- mlrun/frameworks/sklearn/__init__.py +13 -13
- mlrun/frameworks/sklearn/estimator.py +4 -4
- mlrun/frameworks/sklearn/metrics_library.py +14 -14
- mlrun/frameworks/sklearn/mlrun_interface.py +16 -9
- mlrun/frameworks/sklearn/model_handler.py +2 -2
- mlrun/frameworks/tf_keras/__init__.py +10 -7
- mlrun/frameworks/tf_keras/callbacks/logging_callback.py +15 -15
- mlrun/frameworks/tf_keras/callbacks/mlrun_logging_callback.py +11 -11
- mlrun/frameworks/tf_keras/callbacks/tensorboard_logging_callback.py +19 -23
- mlrun/frameworks/tf_keras/mlrun_interface.py +9 -11
- mlrun/frameworks/tf_keras/model_handler.py +14 -14
- mlrun/frameworks/tf_keras/model_server.py +6 -6
- mlrun/frameworks/xgboost/__init__.py +13 -13
- mlrun/frameworks/xgboost/model_handler.py +6 -6
- mlrun/k8s_utils.py +61 -17
- mlrun/launcher/__init__.py +1 -1
- mlrun/launcher/base.py +16 -15
- mlrun/launcher/client.py +13 -11
- mlrun/launcher/factory.py +1 -1
- mlrun/launcher/local.py +23 -13
- mlrun/launcher/remote.py +17 -10
- mlrun/lists.py +7 -6
- mlrun/model.py +478 -103
- mlrun/model_monitoring/__init__.py +1 -1
- mlrun/model_monitoring/api.py +163 -371
- mlrun/{runtimes/mpijob/v1alpha1.py → model_monitoring/applications/__init__.py} +9 -15
- mlrun/model_monitoring/applications/_application_steps.py +188 -0
- mlrun/model_monitoring/applications/base.py +108 -0
- mlrun/model_monitoring/applications/context.py +341 -0
- mlrun/model_monitoring/{evidently_application.py → applications/evidently_base.py} +27 -22
- mlrun/model_monitoring/applications/histogram_data_drift.py +354 -0
- mlrun/model_monitoring/applications/results.py +99 -0
- mlrun/model_monitoring/controller.py +131 -278
- mlrun/model_monitoring/db/__init__.py +18 -0
- mlrun/model_monitoring/db/stores/__init__.py +136 -0
- mlrun/model_monitoring/db/stores/base/__init__.py +15 -0
- mlrun/model_monitoring/db/stores/base/store.py +213 -0
- mlrun/model_monitoring/db/stores/sqldb/__init__.py +13 -0
- mlrun/model_monitoring/db/stores/sqldb/models/__init__.py +71 -0
- mlrun/model_monitoring/db/stores/sqldb/models/base.py +190 -0
- mlrun/model_monitoring/db/stores/sqldb/models/mysql.py +103 -0
- mlrun/model_monitoring/{stores/models/mysql.py → db/stores/sqldb/models/sqlite.py} +19 -13
- mlrun/model_monitoring/db/stores/sqldb/sql_store.py +659 -0
- mlrun/model_monitoring/db/stores/v3io_kv/__init__.py +13 -0
- mlrun/model_monitoring/db/stores/v3io_kv/kv_store.py +726 -0
- mlrun/model_monitoring/db/tsdb/__init__.py +105 -0
- mlrun/model_monitoring/db/tsdb/base.py +448 -0
- mlrun/model_monitoring/db/tsdb/helpers.py +30 -0
- mlrun/model_monitoring/db/tsdb/tdengine/__init__.py +15 -0
- mlrun/model_monitoring/db/tsdb/tdengine/schemas.py +279 -0
- mlrun/model_monitoring/db/tsdb/tdengine/stream_graph_steps.py +42 -0
- mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py +507 -0
- mlrun/model_monitoring/db/tsdb/v3io/__init__.py +15 -0
- mlrun/model_monitoring/db/tsdb/v3io/stream_graph_steps.py +158 -0
- mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py +849 -0
- mlrun/model_monitoring/features_drift_table.py +134 -106
- mlrun/model_monitoring/helpers.py +199 -55
- mlrun/model_monitoring/metrics/__init__.py +13 -0
- mlrun/model_monitoring/metrics/histogram_distance.py +127 -0
- mlrun/model_monitoring/model_endpoint.py +3 -2
- mlrun/model_monitoring/stream_processing.py +131 -398
- mlrun/model_monitoring/tracking_policy.py +9 -2
- mlrun/model_monitoring/writer.py +161 -125
- mlrun/package/__init__.py +6 -6
- mlrun/package/context_handler.py +5 -5
- mlrun/package/packager.py +7 -7
- mlrun/package/packagers/default_packager.py +8 -8
- mlrun/package/packagers/numpy_packagers.py +15 -15
- mlrun/package/packagers/pandas_packagers.py +5 -5
- mlrun/package/packagers/python_standard_library_packagers.py +10 -10
- mlrun/package/packagers_manager.py +19 -23
- mlrun/package/utils/_formatter.py +6 -6
- mlrun/package/utils/_pickler.py +2 -2
- mlrun/package/utils/_supported_format.py +4 -4
- mlrun/package/utils/log_hint_utils.py +2 -2
- mlrun/package/utils/type_hint_utils.py +4 -9
- mlrun/platforms/__init__.py +11 -10
- mlrun/platforms/iguazio.py +24 -203
- mlrun/projects/operations.py +52 -25
- mlrun/projects/pipelines.py +191 -197
- mlrun/projects/project.py +1227 -400
- mlrun/render.py +16 -19
- mlrun/run.py +209 -184
- mlrun/runtimes/__init__.py +83 -15
- mlrun/runtimes/base.py +51 -35
- mlrun/runtimes/daskjob.py +17 -10
- mlrun/runtimes/databricks_job/databricks_cancel_task.py +1 -1
- mlrun/runtimes/databricks_job/databricks_runtime.py +8 -7
- mlrun/runtimes/databricks_job/databricks_wrapper.py +1 -1
- mlrun/runtimes/funcdoc.py +1 -29
- mlrun/runtimes/function_reference.py +1 -1
- mlrun/runtimes/kubejob.py +34 -128
- mlrun/runtimes/local.py +40 -11
- mlrun/runtimes/mpijob/__init__.py +0 -20
- mlrun/runtimes/mpijob/abstract.py +9 -10
- mlrun/runtimes/mpijob/v1.py +1 -1
- mlrun/{model_monitoring/stores/models/sqlite.py → runtimes/nuclio/__init__.py} +7 -9
- mlrun/runtimes/nuclio/api_gateway.py +769 -0
- mlrun/runtimes/nuclio/application/__init__.py +15 -0
- mlrun/runtimes/nuclio/application/application.py +758 -0
- mlrun/runtimes/nuclio/application/reverse_proxy.go +95 -0
- mlrun/runtimes/{function.py → nuclio/function.py} +200 -83
- mlrun/runtimes/{nuclio.py → nuclio/nuclio.py} +6 -6
- mlrun/runtimes/{serving.py → nuclio/serving.py} +65 -68
- mlrun/runtimes/pod.py +281 -101
- mlrun/runtimes/remotesparkjob.py +12 -9
- mlrun/runtimes/sparkjob/spark3job.py +67 -51
- mlrun/runtimes/utils.py +41 -75
- mlrun/secrets.py +9 -5
- mlrun/serving/__init__.py +8 -1
- mlrun/serving/remote.py +2 -7
- mlrun/serving/routers.py +85 -69
- mlrun/serving/server.py +69 -44
- mlrun/serving/states.py +209 -36
- mlrun/serving/utils.py +22 -14
- mlrun/serving/v1_serving.py +6 -7
- mlrun/serving/v2_serving.py +129 -54
- mlrun/track/tracker.py +2 -1
- mlrun/track/tracker_manager.py +3 -3
- mlrun/track/trackers/mlflow_tracker.py +6 -2
- mlrun/utils/async_http.py +6 -8
- mlrun/utils/azure_vault.py +1 -1
- mlrun/utils/clones.py +1 -2
- mlrun/utils/condition_evaluator.py +3 -3
- mlrun/utils/db.py +21 -3
- mlrun/utils/helpers.py +405 -225
- mlrun/utils/http.py +3 -6
- mlrun/utils/logger.py +112 -16
- mlrun/utils/notifications/notification/__init__.py +17 -13
- mlrun/utils/notifications/notification/base.py +50 -2
- mlrun/utils/notifications/notification/console.py +2 -0
- mlrun/utils/notifications/notification/git.py +24 -1
- mlrun/utils/notifications/notification/ipython.py +3 -1
- mlrun/utils/notifications/notification/slack.py +96 -21
- mlrun/utils/notifications/notification/webhook.py +59 -2
- mlrun/utils/notifications/notification_pusher.py +149 -30
- mlrun/utils/regex.py +9 -0
- mlrun/utils/retryer.py +208 -0
- mlrun/utils/singleton.py +1 -1
- mlrun/utils/v3io_clients.py +4 -6
- mlrun/utils/version/version.json +2 -2
- mlrun/utils/version/version.py +2 -6
- mlrun-1.7.0.dist-info/METADATA +378 -0
- mlrun-1.7.0.dist-info/RECORD +351 -0
- {mlrun-1.6.4rc7.dist-info → mlrun-1.7.0.dist-info}/WHEEL +1 -1
- mlrun/feature_store/retrieval/conversion.py +0 -273
- mlrun/kfpops.py +0 -868
- mlrun/model_monitoring/application.py +0 -310
- mlrun/model_monitoring/batch.py +0 -1095
- mlrun/model_monitoring/prometheus.py +0 -219
- mlrun/model_monitoring/stores/__init__.py +0 -111
- mlrun/model_monitoring/stores/kv_model_endpoint_store.py +0 -576
- mlrun/model_monitoring/stores/model_endpoint_store.py +0 -147
- mlrun/model_monitoring/stores/models/__init__.py +0 -27
- mlrun/model_monitoring/stores/models/base.py +0 -84
- mlrun/model_monitoring/stores/sql_model_endpoint_store.py +0 -384
- mlrun/platforms/other.py +0 -306
- mlrun-1.6.4rc7.dist-info/METADATA +0 -272
- mlrun-1.6.4rc7.dist-info/RECORD +0 -314
- {mlrun-1.6.4rc7.dist-info → mlrun-1.7.0.dist-info}/LICENSE +0 -0
- {mlrun-1.6.4rc7.dist-info → mlrun-1.7.0.dist-info}/entry_points.txt +0 -0
- {mlrun-1.6.4rc7.dist-info → mlrun-1.7.0.dist-info}/top_level.txt +0 -0
mlrun/db/base.py
CHANGED
|
@@ -13,12 +13,17 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
15
|
import datetime
|
|
16
|
-
import typing
|
|
17
16
|
from abc import ABC, abstractmethod
|
|
18
|
-
from typing import
|
|
17
|
+
from typing import Optional, Union
|
|
19
18
|
|
|
19
|
+
from deprecated import deprecated
|
|
20
|
+
|
|
21
|
+
import mlrun.alerts
|
|
22
|
+
import mlrun.common
|
|
23
|
+
import mlrun.common.formatters
|
|
24
|
+
import mlrun.common.runtimes.constants
|
|
20
25
|
import mlrun.common.schemas
|
|
21
|
-
import mlrun.model_monitoring
|
|
26
|
+
import mlrun.model_monitoring
|
|
22
27
|
|
|
23
28
|
|
|
24
29
|
class RunDBError(Exception):
|
|
@@ -58,7 +63,7 @@ class RunDBInterface(ABC):
|
|
|
58
63
|
uid: str,
|
|
59
64
|
project: str = "",
|
|
60
65
|
iter: int = 0,
|
|
61
|
-
format_: mlrun.common.
|
|
66
|
+
format_: mlrun.common.formatters.RunFormat = mlrun.common.formatters.RunFormat.full,
|
|
62
67
|
):
|
|
63
68
|
pass
|
|
64
69
|
|
|
@@ -66,10 +71,13 @@ class RunDBInterface(ABC):
|
|
|
66
71
|
def list_runs(
|
|
67
72
|
self,
|
|
68
73
|
name: Optional[str] = None,
|
|
69
|
-
uid: Optional[Union[str,
|
|
74
|
+
uid: Optional[Union[str, list[str]]] = None,
|
|
70
75
|
project: Optional[str] = None,
|
|
71
|
-
labels: Optional[Union[str,
|
|
72
|
-
state: Optional[
|
|
76
|
+
labels: Optional[Union[str, list[str]]] = None,
|
|
77
|
+
state: Optional[
|
|
78
|
+
mlrun.common.runtimes.constants.RunStates
|
|
79
|
+
] = None, # Backward compatibility
|
|
80
|
+
states: Optional[list[mlrun.common.runtimes.constants.RunStates]] = None,
|
|
73
81
|
sort: bool = True,
|
|
74
82
|
last: int = 0,
|
|
75
83
|
iter: bool = False,
|
|
@@ -103,7 +111,16 @@ class RunDBInterface(ABC):
|
|
|
103
111
|
pass
|
|
104
112
|
|
|
105
113
|
@abstractmethod
|
|
106
|
-
def read_artifact(
|
|
114
|
+
def read_artifact(
|
|
115
|
+
self,
|
|
116
|
+
key,
|
|
117
|
+
tag="",
|
|
118
|
+
iter=None,
|
|
119
|
+
project="",
|
|
120
|
+
tree=None,
|
|
121
|
+
uid=None,
|
|
122
|
+
format_: mlrun.common.formatters.ArtifactFormat = mlrun.common.formatters.ArtifactFormat.full,
|
|
123
|
+
):
|
|
107
124
|
pass
|
|
108
125
|
|
|
109
126
|
@abstractmethod
|
|
@@ -120,12 +137,25 @@ class RunDBInterface(ABC):
|
|
|
120
137
|
kind: str = None,
|
|
121
138
|
category: Union[str, mlrun.common.schemas.ArtifactCategories] = None,
|
|
122
139
|
tree: str = None,
|
|
140
|
+
format_: mlrun.common.formatters.ArtifactFormat = mlrun.common.formatters.ArtifactFormat.full,
|
|
123
141
|
limit: int = None,
|
|
124
142
|
):
|
|
125
143
|
pass
|
|
126
144
|
|
|
127
145
|
@abstractmethod
|
|
128
|
-
def del_artifact(
|
|
146
|
+
def del_artifact(
|
|
147
|
+
self,
|
|
148
|
+
key,
|
|
149
|
+
tag="",
|
|
150
|
+
project="",
|
|
151
|
+
tree=None,
|
|
152
|
+
uid=None,
|
|
153
|
+
deletion_strategy: mlrun.common.schemas.artifact.ArtifactsDeletionStrategies = (
|
|
154
|
+
mlrun.common.schemas.artifact.ArtifactsDeletionStrategies.metadata_only
|
|
155
|
+
),
|
|
156
|
+
secrets: dict = None,
|
|
157
|
+
iter=None,
|
|
158
|
+
):
|
|
129
159
|
pass
|
|
130
160
|
|
|
131
161
|
@abstractmethod
|
|
@@ -145,7 +175,9 @@ class RunDBInterface(ABC):
|
|
|
145
175
|
pass
|
|
146
176
|
|
|
147
177
|
@abstractmethod
|
|
148
|
-
def list_functions(
|
|
178
|
+
def list_functions(
|
|
179
|
+
self, name=None, project="", tag="", labels=None, since=None, until=None
|
|
180
|
+
):
|
|
149
181
|
pass
|
|
150
182
|
|
|
151
183
|
@abstractmethod
|
|
@@ -210,9 +242,8 @@ class RunDBInterface(ABC):
|
|
|
210
242
|
)
|
|
211
243
|
artifact_identifiers.append(
|
|
212
244
|
mlrun.common.schemas.ArtifactIdentifier(
|
|
213
|
-
key
|
|
214
|
-
|
|
215
|
-
# pass the tree as uid
|
|
245
|
+
# we pass the db_key and not the key so the API will be able to find the artifact in the db
|
|
246
|
+
key=mlrun.utils.get_in_artifact(artifact_obj, "db_key"),
|
|
216
247
|
uid=mlrun.utils.get_in_artifact(artifact_obj, "uid"),
|
|
217
248
|
producer_id=mlrun.utils.get_in_artifact(artifact_obj, "tree"),
|
|
218
249
|
kind=mlrun.utils.get_in_artifact(artifact_obj, "kind"),
|
|
@@ -259,8 +290,8 @@ class RunDBInterface(ABC):
|
|
|
259
290
|
def list_projects(
|
|
260
291
|
self,
|
|
261
292
|
owner: str = None,
|
|
262
|
-
format_: mlrun.common.
|
|
263
|
-
labels:
|
|
293
|
+
format_: mlrun.common.formatters.ProjectFormat = mlrun.common.formatters.ProjectFormat.name_only,
|
|
294
|
+
labels: list[str] = None,
|
|
264
295
|
state: mlrun.common.schemas.ProjectState = None,
|
|
265
296
|
) -> mlrun.common.schemas.ProjectsOutput:
|
|
266
297
|
pass
|
|
@@ -292,27 +323,60 @@ class RunDBInterface(ABC):
|
|
|
292
323
|
) -> dict:
|
|
293
324
|
pass
|
|
294
325
|
|
|
326
|
+
# TODO: remove in 1.9.0
|
|
327
|
+
@deprecated(
|
|
328
|
+
version="1.9.0",
|
|
329
|
+
reason="'list_features' will be removed in 1.9.0, use 'list_features_v2' instead",
|
|
330
|
+
category=FutureWarning,
|
|
331
|
+
)
|
|
295
332
|
@abstractmethod
|
|
296
333
|
def list_features(
|
|
297
334
|
self,
|
|
298
335
|
project: str,
|
|
299
336
|
name: str = None,
|
|
300
337
|
tag: str = None,
|
|
301
|
-
entities:
|
|
302
|
-
labels:
|
|
338
|
+
entities: list[str] = None,
|
|
339
|
+
labels: list[str] = None,
|
|
303
340
|
) -> mlrun.common.schemas.FeaturesOutput:
|
|
304
341
|
pass
|
|
305
342
|
|
|
343
|
+
@abstractmethod
|
|
344
|
+
def list_features_v2(
|
|
345
|
+
self,
|
|
346
|
+
project: str,
|
|
347
|
+
name: str = None,
|
|
348
|
+
tag: str = None,
|
|
349
|
+
entities: list[str] = None,
|
|
350
|
+
labels: list[str] = None,
|
|
351
|
+
) -> mlrun.common.schemas.FeaturesOutputV2:
|
|
352
|
+
pass
|
|
353
|
+
|
|
354
|
+
# TODO: remove in 1.9.0
|
|
355
|
+
@deprecated(
|
|
356
|
+
version="1.9.0",
|
|
357
|
+
reason="'list_entities' will be removed in 1.9.0, use 'list_entities_v2' instead",
|
|
358
|
+
category=FutureWarning,
|
|
359
|
+
)
|
|
306
360
|
@abstractmethod
|
|
307
361
|
def list_entities(
|
|
308
362
|
self,
|
|
309
363
|
project: str,
|
|
310
364
|
name: str = None,
|
|
311
365
|
tag: str = None,
|
|
312
|
-
labels:
|
|
366
|
+
labels: list[str] = None,
|
|
313
367
|
) -> mlrun.common.schemas.EntitiesOutput:
|
|
314
368
|
pass
|
|
315
369
|
|
|
370
|
+
@abstractmethod
|
|
371
|
+
def list_entities_v2(
|
|
372
|
+
self,
|
|
373
|
+
project: str,
|
|
374
|
+
name: str = None,
|
|
375
|
+
tag: str = None,
|
|
376
|
+
labels: list[str] = None,
|
|
377
|
+
) -> mlrun.common.schemas.EntitiesOutputV2:
|
|
378
|
+
pass
|
|
379
|
+
|
|
316
380
|
@abstractmethod
|
|
317
381
|
def list_feature_sets(
|
|
318
382
|
self,
|
|
@@ -320,9 +384,9 @@ class RunDBInterface(ABC):
|
|
|
320
384
|
name: str = None,
|
|
321
385
|
tag: str = None,
|
|
322
386
|
state: str = None,
|
|
323
|
-
entities:
|
|
324
|
-
features:
|
|
325
|
-
labels:
|
|
387
|
+
entities: list[str] = None,
|
|
388
|
+
features: list[str] = None,
|
|
389
|
+
labels: list[str] = None,
|
|
326
390
|
partition_by: Union[
|
|
327
391
|
mlrun.common.schemas.FeatureStorePartitionByField, str
|
|
328
392
|
] = None,
|
|
@@ -331,7 +395,10 @@ class RunDBInterface(ABC):
|
|
|
331
395
|
partition_order: Union[
|
|
332
396
|
mlrun.common.schemas.OrderType, str
|
|
333
397
|
] = mlrun.common.schemas.OrderType.desc,
|
|
334
|
-
|
|
398
|
+
format_: Union[
|
|
399
|
+
str, mlrun.common.formatters.FeatureSetFormat
|
|
400
|
+
] = mlrun.common.formatters.FeatureSetFormat.full,
|
|
401
|
+
) -> list[dict]:
|
|
335
402
|
pass
|
|
336
403
|
|
|
337
404
|
@abstractmethod
|
|
@@ -386,7 +453,7 @@ class RunDBInterface(ABC):
|
|
|
386
453
|
name: str = None,
|
|
387
454
|
tag: str = None,
|
|
388
455
|
state: str = None,
|
|
389
|
-
labels:
|
|
456
|
+
labels: list[str] = None,
|
|
390
457
|
partition_by: Union[
|
|
391
458
|
mlrun.common.schemas.FeatureStorePartitionByField, str
|
|
392
459
|
] = None,
|
|
@@ -395,7 +462,7 @@ class RunDBInterface(ABC):
|
|
|
395
462
|
partition_order: Union[
|
|
396
463
|
mlrun.common.schemas.OrderType, str
|
|
397
464
|
] = mlrun.common.schemas.OrderType.desc,
|
|
398
|
-
) ->
|
|
465
|
+
) -> list[dict]:
|
|
399
466
|
pass
|
|
400
467
|
|
|
401
468
|
@abstractmethod
|
|
@@ -435,8 +502,8 @@ class RunDBInterface(ABC):
|
|
|
435
502
|
namespace: str = None,
|
|
436
503
|
timeout: int = 30,
|
|
437
504
|
format_: Union[
|
|
438
|
-
str, mlrun.common.
|
|
439
|
-
] = mlrun.common.
|
|
505
|
+
str, mlrun.common.formatters.PipelineFormat
|
|
506
|
+
] = mlrun.common.formatters.PipelineFormat.summary,
|
|
440
507
|
project: str = None,
|
|
441
508
|
):
|
|
442
509
|
pass
|
|
@@ -450,8 +517,8 @@ class RunDBInterface(ABC):
|
|
|
450
517
|
page_token: str = "",
|
|
451
518
|
filter_: str = "",
|
|
452
519
|
format_: Union[
|
|
453
|
-
str, mlrun.common.
|
|
454
|
-
] = mlrun.common.
|
|
520
|
+
str, mlrun.common.formatters.PipelineFormat
|
|
521
|
+
] = mlrun.common.formatters.PipelineFormat.metadata_only,
|
|
455
522
|
page_size: int = None,
|
|
456
523
|
) -> mlrun.common.schemas.PipelinesOutput:
|
|
457
524
|
pass
|
|
@@ -475,7 +542,7 @@ class RunDBInterface(ABC):
|
|
|
475
542
|
provider: Union[
|
|
476
543
|
str, mlrun.common.schemas.SecretProviderName
|
|
477
544
|
] = mlrun.common.schemas.SecretProviderName.kubernetes,
|
|
478
|
-
secrets:
|
|
545
|
+
secrets: list[str] = None,
|
|
479
546
|
) -> mlrun.common.schemas.SecretsData:
|
|
480
547
|
pass
|
|
481
548
|
|
|
@@ -497,7 +564,7 @@ class RunDBInterface(ABC):
|
|
|
497
564
|
provider: Union[
|
|
498
565
|
str, mlrun.common.schemas.SecretProviderName
|
|
499
566
|
] = mlrun.common.schemas.SecretProviderName.kubernetes,
|
|
500
|
-
secrets:
|
|
567
|
+
secrets: list[str] = None,
|
|
501
568
|
):
|
|
502
569
|
pass
|
|
503
570
|
|
|
@@ -517,9 +584,7 @@ class RunDBInterface(ABC):
|
|
|
517
584
|
self,
|
|
518
585
|
project: str,
|
|
519
586
|
endpoint_id: str,
|
|
520
|
-
model_endpoint: Union[
|
|
521
|
-
mlrun.model_monitoring.model_endpoint.ModelEndpoint, dict
|
|
522
|
-
],
|
|
587
|
+
model_endpoint: Union[mlrun.model_monitoring.ModelEndpoint, dict],
|
|
523
588
|
):
|
|
524
589
|
pass
|
|
525
590
|
|
|
@@ -537,10 +602,10 @@ class RunDBInterface(ABC):
|
|
|
537
602
|
project: str,
|
|
538
603
|
model: Optional[str] = None,
|
|
539
604
|
function: Optional[str] = None,
|
|
540
|
-
labels:
|
|
605
|
+
labels: list[str] = None,
|
|
541
606
|
start: str = "now-1h",
|
|
542
607
|
end: str = "now",
|
|
543
|
-
metrics: Optional[
|
|
608
|
+
metrics: Optional[list[str]] = None,
|
|
544
609
|
):
|
|
545
610
|
pass
|
|
546
611
|
|
|
@@ -551,9 +616,9 @@ class RunDBInterface(ABC):
|
|
|
551
616
|
endpoint_id: str,
|
|
552
617
|
start: Optional[str] = None,
|
|
553
618
|
end: Optional[str] = None,
|
|
554
|
-
metrics: Optional[
|
|
619
|
+
metrics: Optional[list[str]] = None,
|
|
555
620
|
features: bool = False,
|
|
556
|
-
):
|
|
621
|
+
) -> mlrun.model_monitoring.ModelEndpoint:
|
|
557
622
|
pass
|
|
558
623
|
|
|
559
624
|
@abstractmethod
|
|
@@ -624,6 +689,89 @@ class RunDBInterface(ABC):
|
|
|
624
689
|
):
|
|
625
690
|
pass
|
|
626
691
|
|
|
692
|
+
@abstractmethod
|
|
693
|
+
def store_api_gateway(
|
|
694
|
+
self,
|
|
695
|
+
api_gateway: Union[
|
|
696
|
+
mlrun.common.schemas.APIGateway,
|
|
697
|
+
"mlrun.runtimes.nuclio.api_gateway.APIGateway",
|
|
698
|
+
],
|
|
699
|
+
project: Optional[str] = None,
|
|
700
|
+
):
|
|
701
|
+
pass
|
|
702
|
+
|
|
703
|
+
@abstractmethod
|
|
704
|
+
def list_api_gateways(self, project=None) -> mlrun.common.schemas.APIGatewaysOutput:
|
|
705
|
+
pass
|
|
706
|
+
|
|
707
|
+
@abstractmethod
|
|
708
|
+
def get_api_gateway(self, name, project=None) -> mlrun.common.schemas.APIGateway:
|
|
709
|
+
pass
|
|
710
|
+
|
|
711
|
+
@abstractmethod
|
|
712
|
+
def delete_api_gateway(self, name, project=None):
|
|
713
|
+
pass
|
|
714
|
+
|
|
715
|
+
@abstractmethod
|
|
716
|
+
def remote_builder(
|
|
717
|
+
self,
|
|
718
|
+
func: "mlrun.runtimes.BaseRuntime",
|
|
719
|
+
with_mlrun: bool,
|
|
720
|
+
mlrun_version_specifier: Optional[str] = None,
|
|
721
|
+
skip_deployed: bool = False,
|
|
722
|
+
builder_env: Optional[dict] = None,
|
|
723
|
+
force_build: bool = False,
|
|
724
|
+
):
|
|
725
|
+
pass
|
|
726
|
+
|
|
727
|
+
@abstractmethod
|
|
728
|
+
def deploy_nuclio_function(
|
|
729
|
+
self,
|
|
730
|
+
func: "mlrun.runtimes.RemoteRuntime",
|
|
731
|
+
builder_env: Optional[dict] = None,
|
|
732
|
+
):
|
|
733
|
+
pass
|
|
734
|
+
|
|
735
|
+
@abstractmethod
|
|
736
|
+
def generate_event(
|
|
737
|
+
self, name: str, event_data: Union[dict, mlrun.common.schemas.Event], project=""
|
|
738
|
+
):
|
|
739
|
+
pass
|
|
740
|
+
|
|
741
|
+
@abstractmethod
|
|
742
|
+
def store_alert_config(
|
|
743
|
+
self,
|
|
744
|
+
alert_name: str,
|
|
745
|
+
alert_data: Union[dict, mlrun.alerts.alert.AlertConfig],
|
|
746
|
+
project="",
|
|
747
|
+
):
|
|
748
|
+
pass
|
|
749
|
+
|
|
750
|
+
@abstractmethod
|
|
751
|
+
def get_alert_config(self, alert_name: str, project=""):
|
|
752
|
+
pass
|
|
753
|
+
|
|
754
|
+
@abstractmethod
|
|
755
|
+
def list_alerts_configs(self, project=""):
|
|
756
|
+
pass
|
|
757
|
+
|
|
758
|
+
@abstractmethod
|
|
759
|
+
def delete_alert_config(self, alert_name: str, project=""):
|
|
760
|
+
pass
|
|
761
|
+
|
|
762
|
+
@abstractmethod
|
|
763
|
+
def reset_alert_config(self, alert_name: str, project=""):
|
|
764
|
+
pass
|
|
765
|
+
|
|
766
|
+
@abstractmethod
|
|
767
|
+
def get_alert_template(self, template_name: str):
|
|
768
|
+
pass
|
|
769
|
+
|
|
770
|
+
@abstractmethod
|
|
771
|
+
def list_alert_templates(self):
|
|
772
|
+
pass
|
|
773
|
+
|
|
774
|
+
@abstractmethod
|
|
627
775
|
def get_builder_status(
|
|
628
776
|
self,
|
|
629
777
|
func: "mlrun.runtimes.BaseRuntime",
|
|
@@ -634,57 +782,88 @@ class RunDBInterface(ABC):
|
|
|
634
782
|
):
|
|
635
783
|
pass
|
|
636
784
|
|
|
785
|
+
@abstractmethod
|
|
786
|
+
def get_nuclio_deploy_status(
|
|
787
|
+
self,
|
|
788
|
+
func: "mlrun.runtimes.RemoteRuntime",
|
|
789
|
+
last_log_timestamp: float = 0.0,
|
|
790
|
+
verbose: bool = False,
|
|
791
|
+
):
|
|
792
|
+
pass
|
|
793
|
+
|
|
794
|
+
@abstractmethod
|
|
637
795
|
def set_run_notifications(
|
|
638
796
|
self,
|
|
639
797
|
project: str,
|
|
640
|
-
runs:
|
|
641
|
-
notifications:
|
|
798
|
+
runs: list[mlrun.model.RunObject],
|
|
799
|
+
notifications: list[mlrun.model.Notification],
|
|
642
800
|
):
|
|
643
801
|
pass
|
|
644
802
|
|
|
803
|
+
@abstractmethod
|
|
645
804
|
def store_run_notifications(
|
|
646
805
|
self,
|
|
647
|
-
notification_objects:
|
|
806
|
+
notification_objects: list[mlrun.model.Notification],
|
|
648
807
|
run_uid: str,
|
|
649
808
|
project: str = None,
|
|
650
809
|
mask_params: bool = True,
|
|
651
810
|
):
|
|
652
811
|
pass
|
|
653
812
|
|
|
813
|
+
@abstractmethod
|
|
654
814
|
def get_log_size(self, uid, project=""):
|
|
655
815
|
pass
|
|
656
816
|
|
|
817
|
+
@abstractmethod
|
|
818
|
+
def store_alert_notifications(
|
|
819
|
+
self,
|
|
820
|
+
session,
|
|
821
|
+
notification_objects: list[mlrun.model.Notification],
|
|
822
|
+
alert_id: str,
|
|
823
|
+
project: str,
|
|
824
|
+
mask_params: bool = True,
|
|
825
|
+
):
|
|
826
|
+
pass
|
|
827
|
+
|
|
828
|
+
@abstractmethod
|
|
657
829
|
def watch_log(self, uid, project="", watch=True, offset=0):
|
|
658
830
|
pass
|
|
659
831
|
|
|
832
|
+
@abstractmethod
|
|
660
833
|
def get_datastore_profile(
|
|
661
834
|
self, name: str, project: str
|
|
662
835
|
) -> Optional[mlrun.common.schemas.DatastoreProfile]:
|
|
663
836
|
pass
|
|
664
837
|
|
|
838
|
+
@abstractmethod
|
|
665
839
|
def delete_datastore_profile(
|
|
666
840
|
self, name: str, project: str
|
|
667
841
|
) -> mlrun.common.schemas.DatastoreProfile:
|
|
668
842
|
pass
|
|
669
843
|
|
|
844
|
+
@abstractmethod
|
|
670
845
|
def list_datastore_profiles(
|
|
671
846
|
self, project: str
|
|
672
|
-
) ->
|
|
847
|
+
) -> list[mlrun.common.schemas.DatastoreProfile]:
|
|
673
848
|
pass
|
|
674
849
|
|
|
850
|
+
@abstractmethod
|
|
675
851
|
def store_datastore_profile(
|
|
676
852
|
self, profile: mlrun.common.schemas.DatastoreProfile, project: str
|
|
677
853
|
):
|
|
678
854
|
pass
|
|
679
855
|
|
|
856
|
+
@abstractmethod
|
|
680
857
|
def function_status(self, project, name, kind, selector):
|
|
681
858
|
pass
|
|
682
859
|
|
|
860
|
+
@abstractmethod
|
|
683
861
|
def start_function(
|
|
684
862
|
self, func_url: str = None, function: "mlrun.runtimes.BaseRuntime" = None
|
|
685
863
|
):
|
|
686
864
|
pass
|
|
687
865
|
|
|
866
|
+
@abstractmethod
|
|
688
867
|
def submit_workflow(
|
|
689
868
|
self,
|
|
690
869
|
project: str,
|
|
@@ -702,3 +881,57 @@ class RunDBInterface(ABC):
|
|
|
702
881
|
notifications: list["mlrun.model.Notification"] = None,
|
|
703
882
|
) -> "mlrun.common.schemas.WorkflowResponse":
|
|
704
883
|
pass
|
|
884
|
+
|
|
885
|
+
@abstractmethod
|
|
886
|
+
def update_model_monitoring_controller(
|
|
887
|
+
self,
|
|
888
|
+
project: str,
|
|
889
|
+
base_period: int = 10,
|
|
890
|
+
image: str = "mlrun/mlrun",
|
|
891
|
+
) -> None:
|
|
892
|
+
pass
|
|
893
|
+
|
|
894
|
+
@abstractmethod
|
|
895
|
+
def enable_model_monitoring(
|
|
896
|
+
self,
|
|
897
|
+
project: str,
|
|
898
|
+
base_period: int = 10,
|
|
899
|
+
image: str = "mlrun/mlrun",
|
|
900
|
+
deploy_histogram_data_drift_app: bool = True,
|
|
901
|
+
rebuild_images: bool = False,
|
|
902
|
+
fetch_credentials_from_sys_config: bool = False,
|
|
903
|
+
) -> None:
|
|
904
|
+
pass
|
|
905
|
+
|
|
906
|
+
@abstractmethod
|
|
907
|
+
def disable_model_monitoring(
|
|
908
|
+
self,
|
|
909
|
+
project: str,
|
|
910
|
+
delete_resources: bool = True,
|
|
911
|
+
delete_stream_function: bool = False,
|
|
912
|
+
delete_histogram_data_drift_app: bool = True,
|
|
913
|
+
delete_user_applications: bool = False,
|
|
914
|
+
user_application_list: list[str] = None,
|
|
915
|
+
) -> bool:
|
|
916
|
+
pass
|
|
917
|
+
|
|
918
|
+
@abstractmethod
|
|
919
|
+
def delete_model_monitoring_function(
|
|
920
|
+
self, project: str, functions: list[str]
|
|
921
|
+
) -> bool:
|
|
922
|
+
pass
|
|
923
|
+
|
|
924
|
+
@abstractmethod
|
|
925
|
+
def deploy_histogram_data_drift_app(
|
|
926
|
+
self, project: str, image: str = "mlrun/mlrun"
|
|
927
|
+
) -> None:
|
|
928
|
+
pass
|
|
929
|
+
|
|
930
|
+
@abstractmethod
|
|
931
|
+
def set_model_monitoring_credentials(
|
|
932
|
+
self,
|
|
933
|
+
project: str,
|
|
934
|
+
credentials: dict[str, str],
|
|
935
|
+
replace_creds: bool,
|
|
936
|
+
) -> None:
|
|
937
|
+
pass
|
mlrun/db/factory.py
CHANGED