mlrun 1.9.0rc3__py3-none-any.whl → 1.10.0rc1__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 (188) hide show
  1. mlrun/api/schemas/__init__.py +0 -1
  2. mlrun/common/__init__.py +0 -1
  3. mlrun/common/db/__init__.py +0 -1
  4. mlrun/common/db/sql_session.py +0 -1
  5. mlrun/common/formatters/__init__.py +0 -1
  6. mlrun/common/formatters/artifact.py +0 -1
  7. mlrun/common/formatters/base.py +0 -1
  8. mlrun/common/formatters/feature_set.py +0 -1
  9. mlrun/common/formatters/function.py +0 -1
  10. mlrun/common/formatters/model_endpoint.py +0 -1
  11. mlrun/common/formatters/pipeline.py +0 -1
  12. mlrun/common/formatters/project.py +0 -1
  13. mlrun/common/formatters/run.py +0 -2
  14. mlrun/common/runtimes/constants.py +1 -1
  15. mlrun/common/schemas/__init__.py +1 -0
  16. mlrun/common/schemas/alert.py +1 -1
  17. mlrun/common/schemas/api_gateway.py +1 -1
  18. mlrun/common/schemas/artifact.py +1 -1
  19. mlrun/common/schemas/auth.py +1 -1
  20. mlrun/common/schemas/background_task.py +1 -1
  21. mlrun/common/schemas/client_spec.py +1 -1
  22. mlrun/common/schemas/clusterization_spec.py +1 -1
  23. mlrun/common/schemas/constants.py +1 -1
  24. mlrun/common/schemas/datastore_profile.py +0 -1
  25. mlrun/common/schemas/events.py +1 -1
  26. mlrun/common/schemas/feature_store.py +1 -1
  27. mlrun/common/schemas/frontend_spec.py +1 -1
  28. mlrun/common/schemas/function.py +1 -1
  29. mlrun/common/schemas/http.py +1 -1
  30. mlrun/common/schemas/hub.py +1 -1
  31. mlrun/common/schemas/k8s.py +1 -1
  32. mlrun/common/schemas/memory_reports.py +0 -1
  33. mlrun/common/schemas/model_monitoring/model_endpoints.py +32 -8
  34. mlrun/common/schemas/notification.py +4 -0
  35. mlrun/common/schemas/object.py +1 -1
  36. mlrun/common/schemas/partition.py +1 -1
  37. mlrun/common/schemas/pipeline.py +1 -1
  38. mlrun/common/schemas/project.py +1 -1
  39. mlrun/common/schemas/regex.py +1 -1
  40. mlrun/common/schemas/runtime_resource.py +1 -1
  41. mlrun/common/schemas/schedule.py +1 -1
  42. mlrun/common/schemas/secret.py +1 -1
  43. mlrun/common/schemas/tag.py +0 -1
  44. mlrun/common/schemas/workflow.py +1 -1
  45. mlrun/common/secrets.py +0 -1
  46. mlrun/config.py +9 -17
  47. mlrun/data_types/infer.py +1 -1
  48. mlrun/data_types/spark.py +1 -1
  49. mlrun/datastore/datastore.py +1 -1
  50. mlrun/datastore/snowflake_utils.py +0 -1
  51. mlrun/datastore/spark_utils.py +0 -1
  52. mlrun/datastore/utils.py +1 -1
  53. mlrun/db/base.py +2 -0
  54. mlrun/db/httpdb.py +29 -19
  55. mlrun/db/nopdb.py +2 -1
  56. mlrun/errors.py +1 -1
  57. mlrun/execution.py +21 -9
  58. mlrun/feature_store/feature_set.py +0 -12
  59. mlrun/feature_store/retrieval/base.py +1 -1
  60. mlrun/feature_store/retrieval/dask_merger.py +1 -1
  61. mlrun/feature_store/retrieval/job.py +1 -1
  62. mlrun/feature_store/retrieval/spark_merger.py +0 -2
  63. mlrun/feature_store/steps.py +1 -1
  64. mlrun/features.py +1 -1
  65. mlrun/frameworks/_common/artifacts_library.py +1 -1
  66. mlrun/frameworks/_common/mlrun_interface.py +1 -1
  67. mlrun/frameworks/_common/model_handler.py +3 -3
  68. mlrun/frameworks/_common/producer.py +0 -1
  69. mlrun/frameworks/_common/utils.py +1 -1
  70. mlrun/frameworks/_dl_common/loggers/logger.py +0 -1
  71. mlrun/frameworks/_dl_common/loggers/mlrun_logger.py +1 -1
  72. mlrun/frameworks/_dl_common/loggers/tensorboard_logger.py +1 -1
  73. mlrun/frameworks/_dl_common/model_handler.py +1 -1
  74. mlrun/frameworks/_dl_common/utils.py +1 -1
  75. mlrun/frameworks/_ml_common/artifacts_library.py +1 -1
  76. mlrun/frameworks/_ml_common/loggers/logger.py +0 -1
  77. mlrun/frameworks/_ml_common/loggers/mlrun_logger.py +1 -1
  78. mlrun/frameworks/_ml_common/model_handler.py +1 -1
  79. mlrun/frameworks/_ml_common/pkl_model_server.py +1 -1
  80. mlrun/frameworks/_ml_common/plan.py +1 -1
  81. mlrun/frameworks/_ml_common/plans/calibration_curve_plan.py +0 -1
  82. mlrun/frameworks/_ml_common/plans/confusion_matrix_plan.py +0 -1
  83. mlrun/frameworks/_ml_common/plans/dataset_plan.py +1 -1
  84. mlrun/frameworks/_ml_common/plans/feature_importance_plan.py +1 -1
  85. mlrun/frameworks/_ml_common/plans/roc_curve_plan.py +1 -1
  86. mlrun/frameworks/_ml_common/producer.py +1 -1
  87. mlrun/frameworks/_ml_common/utils.py +1 -1
  88. mlrun/frameworks/lgbm/callbacks/callback.py +1 -1
  89. mlrun/frameworks/lgbm/callbacks/logging_callback.py +0 -1
  90. mlrun/frameworks/lgbm/callbacks/mlrun_logging_callback.py +0 -1
  91. mlrun/frameworks/lgbm/mlrun_interfaces/booster_mlrun_interface.py +1 -1
  92. mlrun/frameworks/lgbm/mlrun_interfaces/mlrun_interface.py +1 -1
  93. mlrun/frameworks/lgbm/mlrun_interfaces/model_mlrun_interface.py +1 -1
  94. mlrun/frameworks/lgbm/model_handler.py +1 -1
  95. mlrun/frameworks/lgbm/model_server.py +1 -1
  96. mlrun/frameworks/lgbm/utils.py +1 -1
  97. mlrun/frameworks/onnx/dataset.py +1 -1
  98. mlrun/frameworks/onnx/mlrun_interface.py +1 -1
  99. mlrun/frameworks/onnx/model_handler.py +1 -1
  100. mlrun/frameworks/onnx/model_server.py +1 -1
  101. mlrun/frameworks/pytorch/callbacks/callback.py +1 -1
  102. mlrun/frameworks/pytorch/callbacks/logging_callback.py +1 -1
  103. mlrun/frameworks/pytorch/callbacks/mlrun_logging_callback.py +1 -1
  104. mlrun/frameworks/pytorch/callbacks/tensorboard_logging_callback.py +1 -1
  105. mlrun/frameworks/pytorch/callbacks_handler.py +1 -1
  106. mlrun/frameworks/pytorch/mlrun_interface.py +1 -1
  107. mlrun/frameworks/pytorch/model_handler.py +1 -1
  108. mlrun/frameworks/pytorch/model_server.py +1 -1
  109. mlrun/frameworks/pytorch/utils.py +1 -1
  110. mlrun/frameworks/sklearn/__init__.py +0 -14
  111. mlrun/frameworks/sklearn/estimator.py +1 -1
  112. mlrun/frameworks/sklearn/metric.py +1 -1
  113. mlrun/frameworks/sklearn/metrics_library.py +1 -1
  114. mlrun/frameworks/sklearn/mlrun_interface.py +1 -1
  115. mlrun/frameworks/sklearn/model_handler.py +1 -1
  116. mlrun/frameworks/sklearn/utils.py +1 -1
  117. mlrun/frameworks/tf_keras/callbacks/logging_callback.py +1 -1
  118. mlrun/frameworks/tf_keras/callbacks/mlrun_logging_callback.py +1 -1
  119. mlrun/frameworks/tf_keras/callbacks/tensorboard_logging_callback.py +1 -1
  120. mlrun/frameworks/tf_keras/mlrun_interface.py +1 -1
  121. mlrun/frameworks/tf_keras/model_handler.py +1 -1
  122. mlrun/frameworks/tf_keras/model_server.py +1 -1
  123. mlrun/frameworks/tf_keras/utils.py +1 -1
  124. mlrun/frameworks/xgboost/mlrun_interface.py +1 -1
  125. mlrun/frameworks/xgboost/model_handler.py +1 -1
  126. mlrun/frameworks/xgboost/utils.py +1 -1
  127. mlrun/k8s_utils.py +340 -0
  128. mlrun/launcher/base.py +3 -3
  129. mlrun/launcher/local.py +2 -2
  130. mlrun/launcher/remote.py +2 -2
  131. mlrun/model.py +14 -0
  132. mlrun/model_monitoring/applications/__init__.py +0 -1
  133. mlrun/model_monitoring/applications/_application_steps.py +3 -1
  134. mlrun/model_monitoring/controller.py +3 -1
  135. mlrun/model_monitoring/db/tsdb/base.py +3 -1
  136. mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connection.py +213 -0
  137. mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py +27 -49
  138. mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py +35 -30
  139. mlrun/package/context_handler.py +1 -1
  140. mlrun/package/errors.py +1 -1
  141. mlrun/package/packager.py +1 -1
  142. mlrun/package/packagers/default_packager.py +1 -1
  143. mlrun/package/packagers/numpy_packagers.py +1 -1
  144. mlrun/package/packagers/pandas_packagers.py +1 -1
  145. mlrun/package/packagers/python_standard_library_packagers.py +1 -1
  146. mlrun/package/packagers_manager.py +1 -1
  147. mlrun/package/utils/_archiver.py +1 -1
  148. mlrun/package/utils/_formatter.py +1 -1
  149. mlrun/package/utils/_pickler.py +1 -1
  150. mlrun/package/utils/_supported_format.py +1 -1
  151. mlrun/package/utils/log_hint_utils.py +1 -1
  152. mlrun/package/utils/type_hint_utils.py +1 -1
  153. mlrun/projects/operations.py +36 -21
  154. mlrun/projects/project.py +82 -74
  155. mlrun/run.py +1 -1
  156. mlrun/runtimes/base.py +16 -6
  157. mlrun/runtimes/daskjob.py +2 -1
  158. mlrun/runtimes/databricks_job/databricks_cancel_task.py +0 -1
  159. mlrun/runtimes/databricks_job/databricks_runtime.py +2 -1
  160. mlrun/runtimes/databricks_job/databricks_wrapper.py +0 -1
  161. mlrun/runtimes/mounts.py +2 -0
  162. mlrun/runtimes/nuclio/function.py +6 -1
  163. mlrun/runtimes/nuclio/serving.py +1 -1
  164. mlrun/runtimes/pod.py +4 -349
  165. mlrun/runtimes/sparkjob/spark3job.py +0 -12
  166. mlrun/serving/merger.py +0 -1
  167. mlrun/serving/remote.py +1 -1
  168. mlrun/serving/serving_wrapper.py +1 -1
  169. mlrun/serving/utils.py +1 -1
  170. mlrun/utils/async_http.py +0 -1
  171. mlrun/utils/clones.py +1 -1
  172. mlrun/utils/db.py +1 -1
  173. mlrun/utils/helpers.py +3 -1
  174. mlrun/utils/http.py +0 -1
  175. mlrun/utils/notifications/notification/webhook.py +18 -2
  176. mlrun/utils/regex.py +0 -1
  177. mlrun/utils/singleton.py +1 -1
  178. mlrun/utils/vault.py +1 -1
  179. mlrun/utils/version/__init__.py +1 -1
  180. mlrun/utils/version/version.json +2 -2
  181. mlrun/utils/version/version.py +1 -1
  182. {mlrun-1.9.0rc3.dist-info → mlrun-1.10.0rc1.dist-info}/METADATA +6 -10
  183. mlrun-1.10.0rc1.dist-info/RECORD +351 -0
  184. {mlrun-1.9.0rc3.dist-info → mlrun-1.10.0rc1.dist-info}/WHEEL +1 -1
  185. mlrun-1.9.0rc3.dist-info/RECORD +0 -350
  186. {mlrun-1.9.0rc3.dist-info → mlrun-1.10.0rc1.dist-info}/entry_points.txt +0 -0
  187. {mlrun-1.9.0rc3.dist-info → mlrun-1.10.0rc1.dist-info}/licenses/LICENSE +0 -0
  188. {mlrun-1.9.0rc3.dist-info → mlrun-1.10.0rc1.dist-info}/top_level.txt +0 -0
@@ -11,7 +11,6 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
15
14
 
16
15
  """
17
16
  Schemas were moved to mlrun.common.schemas.
mlrun/common/__init__.py CHANGED
@@ -11,4 +11,3 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
@@ -11,4 +11,3 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
@@ -12,7 +12,6 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
-
16
15
  from sqlalchemy import create_engine
17
16
  from sqlalchemy.engine import Engine
18
17
  from sqlalchemy.orm import Session
@@ -11,7 +11,6 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
15
14
 
16
15
  from .artifact import ArtifactFormat # noqa
17
16
  from .function import FunctionFormat # noqa
@@ -11,7 +11,6 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
15
14
 
16
15
  import typing
17
16
 
@@ -11,7 +11,6 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
15
14
 
16
15
  import typing
17
16
 
@@ -11,7 +11,6 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
15
14
 
16
15
  import typing
17
16
 
@@ -11,7 +11,6 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
15
14
 
16
15
  import typing
17
16
 
@@ -11,7 +11,6 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
15
14
 
16
15
  import typing
17
16
 
@@ -11,7 +11,6 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
15
14
 
16
15
  import typing
17
16
 
@@ -11,7 +11,6 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
15
14
 
16
15
  import datetime
17
16
  import typing
@@ -11,8 +11,6 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
15
-
16
14
 
17
15
  import mlrun.common.types
18
16
  from mlrun.common.formatters.base import ObjectFormat
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  import enum
16
16
  import typing
17
17
 
@@ -17,6 +17,7 @@ from .alert import (
17
17
  AlertActivations,
18
18
  AlertActiveState,
19
19
  AlertConfig,
20
+ AlertCriteria,
20
21
  AlertNotification,
21
22
  AlertTemplate,
22
23
  Event,
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  from collections import defaultdict
16
16
  from collections.abc import Iterator
17
17
  from datetime import datetime
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  import typing
16
16
  from typing import Optional
17
17
 
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  import typing
16
16
 
17
17
  import pydantic.v1
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  import typing
16
16
 
17
17
  import pydantic.v1
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  import datetime
16
16
  import typing
17
17
 
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  import typing
16
16
 
17
17
  import pydantic.v1
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  import typing
16
16
 
17
17
  import pydantic.v1
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  import mergedeep
16
16
 
17
17
  import mlrun.common.types
@@ -11,7 +11,6 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
15
14
 
16
15
  import typing
17
16
 
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  import mlrun.common.types
16
16
 
17
17
 
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  from typing import Optional
16
16
 
17
17
  import pydantic.v1
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  import typing
16
16
 
17
17
  import pydantic.v1
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  import typing
16
16
 
17
17
  import pydantic.v1
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  import mlrun.common.types
16
16
 
17
17
 
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  from datetime import datetime, timezone
16
16
  from typing import Optional
17
17
 
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  import typing
16
16
 
17
17
  import pydantic.v1
@@ -11,7 +11,6 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
15
14
 
16
15
  import typing
17
16
 
@@ -88,13 +88,18 @@ class ModelEndpointParser(abc.ABC, BaseModel):
88
88
 
89
89
  @classmethod
90
90
  def from_flat_dict(
91
- cls, endpoint_dict: dict, json_parse_values: Optional[list] = None
91
+ cls,
92
+ endpoint_dict: dict,
93
+ json_parse_values: Optional[list] = None,
94
+ validate: bool = True,
92
95
  ) -> "ModelEndpointParser":
93
96
  """Create a `ModelEndpointParser` object from an endpoint dictionary
94
97
 
95
98
  :param endpoint_dict: Model endpoint dictionary.
96
99
  :param json_parse_values: List of dictionary keys with a JSON string value that will be parsed into a
97
100
  dictionary using json.loads().
101
+ :param validate: Whether to validate the flattened dictionary.
102
+ Skip validation to optimize performance when it is safe to do so.
98
103
  """
99
104
  if json_parse_values is None:
100
105
  json_parse_values = cls.json_parse_values()
@@ -103,6 +108,7 @@ class ModelEndpointParser(abc.ABC, BaseModel):
103
108
  model_class=cls,
104
109
  flattened_dictionary=endpoint_dict,
105
110
  json_parse_values=json_parse_values,
111
+ validate=validate,
106
112
  )
107
113
 
108
114
 
@@ -213,17 +219,27 @@ class ModelEndpoint(BaseModel):
213
219
  return flatten_dict
214
220
 
215
221
  @classmethod
216
- def from_flat_dict(cls, endpoint_dict: dict) -> "ModelEndpoint":
222
+ def from_flat_dict(
223
+ cls, endpoint_dict: dict, validate: bool = True
224
+ ) -> "ModelEndpoint":
217
225
  """Create a `ModelEndpoint` object from an endpoint flattened dictionary. Because the provided dictionary
218
226
  is flattened, we pass it as is to the subclasses without splitting the keys into spec, metadata, and status.
219
227
 
220
228
  :param endpoint_dict: Model endpoint dictionary.
229
+ :param validate: Whether to validate the flattened dictionary.
230
+ Skip validation to optimize performance when it is safe to do so.
221
231
  """
222
232
 
223
233
  return cls(
224
- metadata=ModelEndpointMetadata.from_flat_dict(endpoint_dict=endpoint_dict),
225
- spec=ModelEndpointSpec.from_flat_dict(endpoint_dict=endpoint_dict),
226
- status=ModelEndpointStatus.from_flat_dict(endpoint_dict=endpoint_dict),
234
+ metadata=ModelEndpointMetadata.from_flat_dict(
235
+ endpoint_dict=endpoint_dict, validate=validate
236
+ ),
237
+ spec=ModelEndpointSpec.from_flat_dict(
238
+ endpoint_dict=endpoint_dict, validate=validate
239
+ ),
240
+ status=ModelEndpointStatus.from_flat_dict(
241
+ endpoint_dict=endpoint_dict, validate=validate
242
+ ),
227
243
  )
228
244
 
229
245
  def get(self, field, default=None):
@@ -311,7 +327,10 @@ class ModelEndpointMonitoringMetricNoData(_ModelEndpointMonitoringMetricValuesBa
311
327
 
312
328
 
313
329
  def _mapping_attributes(
314
- model_class: type[Model], flattened_dictionary: dict, json_parse_values: list
330
+ model_class: type[Model],
331
+ flattened_dictionary: dict,
332
+ json_parse_values: list,
333
+ validate: bool = True,
315
334
  ) -> Model:
316
335
  """Generate a `BaseModel` object with the provided dictionary attributes.
317
336
 
@@ -319,8 +338,10 @@ def _mapping_attributes(
319
338
  :param flattened_dictionary: Flattened dictionary that contains the model endpoint attributes.
320
339
  :param json_parse_values: List of dictionary keys with a JSON string value that will be parsed into a
321
340
  dictionary using json.loads().
341
+ :param validate: Whether to validate the flattened dictionary.
342
+ Skip validation to optimize performance when it is safe to do so.
322
343
  """
323
- # Get the fields of the provided base model object. These fields will be used to filter to relevent keys
344
+ # Get the fields of the provided base model object. These fields will be used to filter to relevant keys
324
345
  # from the flattened dictionary.
325
346
  wanted_keys = model_class.__fields__.keys()
326
347
 
@@ -338,7 +359,10 @@ def _mapping_attributes(
338
359
  else:
339
360
  dict_to_parse[field_key] = None
340
361
 
341
- return model_class.parse_obj(dict_to_parse)
362
+ if validate:
363
+ return model_class.parse_obj(dict_to_parse)
364
+
365
+ return model_class.construct(**dict_to_parse)
342
366
 
343
367
 
344
368
  def _json_loads_if_not_none(field: Any) -> Any:
@@ -73,6 +73,10 @@ class NotificationKind(mlrun.common.types.StrEnum):
73
73
  The default is set to True.\n
74
74
  """
75
75
 
76
+ @classmethod
77
+ def alert_notification_kinds(cls) -> list[str]:
78
+ return [cls.git, cls.slack, cls.webhook]
79
+
76
80
 
77
81
  class NotificationSeverity(mlrun.common.types.StrEnum):
78
82
  INFO = "info"
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  from datetime import datetime
16
16
  from typing import Optional
17
17
 
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  from datetime import datetime, timedelta
16
16
 
17
17
  from mlrun.common.types import StrEnum
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  import typing
16
16
 
17
17
  import pydantic.v1
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  import datetime
16
16
  import typing
17
17
 
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  import mlrun.common.types
16
16
 
17
17
 
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  import typing
16
16
 
17
17
  import pydantic.v1
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  from datetime import datetime
16
16
  from typing import Any, Literal, Optional, Union
17
17
 
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  from typing import Optional
16
16
 
17
17
  from pydantic.v1 import BaseModel, Field
@@ -11,7 +11,6 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
15
14
 
16
15
  import pydantic.v1
17
16
 
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  import typing
16
16
 
17
17
  import pydantic.v1
mlrun/common/secrets.py CHANGED
@@ -11,7 +11,6 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
15
14
 
16
15
  from abc import ABC, abstractmethod
17
16
 
mlrun/config.py CHANGED
@@ -490,6 +490,7 @@ default_config = {
490
490
  # Number of days back to include when calculating the project pipeline summary.
491
491
  "list_pipelines_time_period_in_days": 7,
492
492
  },
493
+ "resource_deletion_batch_size": 10000,
493
494
  },
494
495
  # The API needs to know what is its k8s svc url so it could enrich it in the jobs it creates
495
496
  "api_url": "",
@@ -512,7 +513,7 @@ default_config = {
512
513
  # git+https://github.com/mlrun/mlrun@development. by default uses the version
513
514
  "mlrun_version_specifier": "",
514
515
  "kaniko_image": "gcr.io/kaniko-project/executor:v1.23.2", # kaniko builder image
515
- "kaniko_init_container_image": "alpine:3.18",
516
+ "kaniko_init_container_image": "alpine:3.20",
516
517
  # image for kaniko init container when docker registry is ECR
517
518
  "kaniko_aws_cli_image": "amazon/aws-cli:2.17.16",
518
519
  # kaniko sometimes fails to get filesystem from image, this is a workaround to retry the process
@@ -591,17 +592,17 @@ default_config = {
591
592
  },
592
593
  "writer_stream_args": {
593
594
  "v3io": {
594
- "shard_count": 1,
595
+ "shard_count": 4,
595
596
  "retention_period_hours": 24,
596
- "num_workers": 1,
597
+ "num_workers": 4,
597
598
  "min_replicas": 1,
598
599
  "max_replicas": 1,
599
600
  },
600
601
  "kafka": {
601
- "partition_count": 1,
602
+ "partition_count": 4,
602
603
  # TODO: add retention period configuration
603
604
  "replication_factor": 1,
604
- "num_workers": 1,
605
+ "num_workers": 4,
605
606
  "min_replicas": 1,
606
607
  "max_replicas": 1,
607
608
  },
@@ -634,12 +635,6 @@ default_config = {
634
635
  "offline_storage_path": "model-endpoints/{kind}",
635
636
  "parquet_batching_max_events": 10_000,
636
637
  "parquet_batching_timeout_secs": timedelta(minutes=1).total_seconds(),
637
- "tdengine": {
638
- "run_directly": True,
639
- # timeout and retry are ignored when run_directly is set to True
640
- "timeout": 10,
641
- "retries": 1,
642
- },
643
638
  },
644
639
  "secret_stores": {
645
640
  # Use only in testing scenarios (such as integration tests) to avoid using k8s for secrets (will use in-memory
@@ -1045,12 +1040,9 @@ class Config:
1045
1040
  )
1046
1041
 
1047
1042
  def is_preemption_nodes_configured(self):
1048
- if (
1049
- not self.get_preemptible_tolerations()
1050
- and not self.get_preemptible_node_selector()
1051
- ):
1052
- return False
1053
- return True
1043
+ return (
1044
+ self.get_preemptible_tolerations() or self.get_preemptible_node_selector()
1045
+ )
1054
1046
 
1055
1047
  @staticmethod
1056
1048
  def get_valid_function_priority_class_names():
mlrun/data_types/infer.py CHANGED
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  from typing import Optional
16
16
 
17
17
  import numpy as np
mlrun/data_types/spark.py CHANGED
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  from datetime import datetime
16
16
  from os import environ
17
17
  from typing import Optional
@@ -111,7 +111,7 @@ def schema_to_store(schema):
111
111
 
112
112
  def uri_to_ipython(link):
113
113
  schema, endpoint, parsed_url = parse_url(link)
114
- if schema in [DB_SCHEMA, "memory"]:
114
+ if schema in [DB_SCHEMA, "memory", "ds"]:
115
115
  return ""
116
116
  return schema_to_store(schema).uri_to_ipython(endpoint, parsed_url.path)
117
117
 
@@ -11,7 +11,6 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
15
14
 
16
15
  import mlrun
17
16
 
@@ -12,7 +12,6 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
-
16
15
  from typing import Union
17
16
 
18
17
  import mlrun
mlrun/datastore/utils.py CHANGED
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- #
14
+
15
15
  import math
16
16
  import tarfile
17
17
  import tempfile