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.

Files changed (305) hide show
  1. mlrun/__init__.py +11 -1
  2. mlrun/__main__.py +40 -122
  3. mlrun/alerts/__init__.py +15 -0
  4. mlrun/alerts/alert.py +248 -0
  5. mlrun/api/schemas/__init__.py +5 -4
  6. mlrun/artifacts/__init__.py +8 -3
  7. mlrun/artifacts/base.py +47 -257
  8. mlrun/artifacts/dataset.py +11 -192
  9. mlrun/artifacts/manager.py +79 -47
  10. mlrun/artifacts/model.py +31 -159
  11. mlrun/artifacts/plots.py +23 -380
  12. mlrun/common/constants.py +74 -1
  13. mlrun/common/db/sql_session.py +5 -5
  14. mlrun/common/formatters/__init__.py +21 -0
  15. mlrun/common/formatters/artifact.py +45 -0
  16. mlrun/common/formatters/base.py +113 -0
  17. mlrun/common/formatters/feature_set.py +33 -0
  18. mlrun/common/formatters/function.py +46 -0
  19. mlrun/common/formatters/pipeline.py +53 -0
  20. mlrun/common/formatters/project.py +51 -0
  21. mlrun/common/formatters/run.py +29 -0
  22. mlrun/common/helpers.py +12 -3
  23. mlrun/common/model_monitoring/helpers.py +9 -5
  24. mlrun/{runtimes → common/runtimes}/constants.py +37 -9
  25. mlrun/common/schemas/__init__.py +31 -5
  26. mlrun/common/schemas/alert.py +202 -0
  27. mlrun/common/schemas/api_gateway.py +196 -0
  28. mlrun/common/schemas/artifact.py +25 -4
  29. mlrun/common/schemas/auth.py +16 -5
  30. mlrun/common/schemas/background_task.py +1 -1
  31. mlrun/common/schemas/client_spec.py +4 -2
  32. mlrun/common/schemas/common.py +7 -4
  33. mlrun/common/schemas/constants.py +3 -0
  34. mlrun/common/schemas/feature_store.py +74 -44
  35. mlrun/common/schemas/frontend_spec.py +15 -7
  36. mlrun/common/schemas/function.py +12 -1
  37. mlrun/common/schemas/hub.py +11 -18
  38. mlrun/common/schemas/memory_reports.py +2 -2
  39. mlrun/common/schemas/model_monitoring/__init__.py +20 -4
  40. mlrun/common/schemas/model_monitoring/constants.py +123 -42
  41. mlrun/common/schemas/model_monitoring/grafana.py +13 -9
  42. mlrun/common/schemas/model_monitoring/model_endpoints.py +101 -54
  43. mlrun/common/schemas/notification.py +71 -14
  44. mlrun/common/schemas/object.py +2 -2
  45. mlrun/{model_monitoring/controller_handler.py → common/schemas/pagination.py} +9 -12
  46. mlrun/common/schemas/pipeline.py +8 -1
  47. mlrun/common/schemas/project.py +69 -18
  48. mlrun/common/schemas/runs.py +7 -1
  49. mlrun/common/schemas/runtime_resource.py +8 -12
  50. mlrun/common/schemas/schedule.py +4 -4
  51. mlrun/common/schemas/tag.py +1 -2
  52. mlrun/common/schemas/workflow.py +12 -4
  53. mlrun/common/types.py +14 -1
  54. mlrun/config.py +154 -69
  55. mlrun/data_types/data_types.py +6 -1
  56. mlrun/data_types/spark.py +2 -2
  57. mlrun/data_types/to_pandas.py +67 -37
  58. mlrun/datastore/__init__.py +6 -8
  59. mlrun/datastore/alibaba_oss.py +131 -0
  60. mlrun/datastore/azure_blob.py +143 -42
  61. mlrun/datastore/base.py +102 -58
  62. mlrun/datastore/datastore.py +34 -13
  63. mlrun/datastore/datastore_profile.py +146 -20
  64. mlrun/datastore/dbfs_store.py +3 -7
  65. mlrun/datastore/filestore.py +1 -4
  66. mlrun/datastore/google_cloud_storage.py +97 -33
  67. mlrun/datastore/hdfs.py +56 -0
  68. mlrun/datastore/inmem.py +6 -3
  69. mlrun/datastore/redis.py +7 -2
  70. mlrun/datastore/s3.py +34 -12
  71. mlrun/datastore/snowflake_utils.py +45 -0
  72. mlrun/datastore/sources.py +303 -111
  73. mlrun/datastore/spark_utils.py +31 -2
  74. mlrun/datastore/store_resources.py +9 -7
  75. mlrun/datastore/storeytargets.py +151 -0
  76. mlrun/datastore/targets.py +453 -176
  77. mlrun/datastore/utils.py +72 -58
  78. mlrun/datastore/v3io.py +6 -1
  79. mlrun/db/base.py +274 -41
  80. mlrun/db/factory.py +1 -1
  81. mlrun/db/httpdb.py +893 -225
  82. mlrun/db/nopdb.py +291 -33
  83. mlrun/errors.py +36 -6
  84. mlrun/execution.py +115 -42
  85. mlrun/feature_store/__init__.py +0 -2
  86. mlrun/feature_store/api.py +65 -73
  87. mlrun/feature_store/common.py +7 -12
  88. mlrun/feature_store/feature_set.py +76 -55
  89. mlrun/feature_store/feature_vector.py +39 -31
  90. mlrun/feature_store/ingestion.py +7 -6
  91. mlrun/feature_store/retrieval/base.py +16 -11
  92. mlrun/feature_store/retrieval/dask_merger.py +2 -0
  93. mlrun/feature_store/retrieval/job.py +13 -4
  94. mlrun/feature_store/retrieval/local_merger.py +2 -0
  95. mlrun/feature_store/retrieval/spark_merger.py +24 -32
  96. mlrun/feature_store/steps.py +45 -34
  97. mlrun/features.py +11 -21
  98. mlrun/frameworks/_common/artifacts_library.py +9 -9
  99. mlrun/frameworks/_common/mlrun_interface.py +5 -5
  100. mlrun/frameworks/_common/model_handler.py +48 -48
  101. mlrun/frameworks/_common/plan.py +5 -6
  102. mlrun/frameworks/_common/producer.py +3 -4
  103. mlrun/frameworks/_common/utils.py +5 -5
  104. mlrun/frameworks/_dl_common/loggers/logger.py +6 -7
  105. mlrun/frameworks/_dl_common/loggers/mlrun_logger.py +9 -9
  106. mlrun/frameworks/_dl_common/loggers/tensorboard_logger.py +23 -47
  107. mlrun/frameworks/_ml_common/artifacts_library.py +1 -2
  108. mlrun/frameworks/_ml_common/loggers/logger.py +3 -4
  109. mlrun/frameworks/_ml_common/loggers/mlrun_logger.py +4 -5
  110. mlrun/frameworks/_ml_common/model_handler.py +24 -24
  111. mlrun/frameworks/_ml_common/pkl_model_server.py +2 -2
  112. mlrun/frameworks/_ml_common/plan.py +2 -2
  113. mlrun/frameworks/_ml_common/plans/calibration_curve_plan.py +2 -3
  114. mlrun/frameworks/_ml_common/plans/confusion_matrix_plan.py +2 -3
  115. mlrun/frameworks/_ml_common/plans/dataset_plan.py +3 -3
  116. mlrun/frameworks/_ml_common/plans/feature_importance_plan.py +3 -3
  117. mlrun/frameworks/_ml_common/plans/roc_curve_plan.py +4 -4
  118. mlrun/frameworks/_ml_common/utils.py +4 -4
  119. mlrun/frameworks/auto_mlrun/auto_mlrun.py +9 -9
  120. mlrun/frameworks/huggingface/model_server.py +4 -4
  121. mlrun/frameworks/lgbm/__init__.py +33 -33
  122. mlrun/frameworks/lgbm/callbacks/callback.py +2 -4
  123. mlrun/frameworks/lgbm/callbacks/logging_callback.py +4 -5
  124. mlrun/frameworks/lgbm/callbacks/mlrun_logging_callback.py +4 -5
  125. mlrun/frameworks/lgbm/mlrun_interfaces/booster_mlrun_interface.py +1 -3
  126. mlrun/frameworks/lgbm/mlrun_interfaces/mlrun_interface.py +6 -6
  127. mlrun/frameworks/lgbm/model_handler.py +10 -10
  128. mlrun/frameworks/lgbm/model_server.py +6 -6
  129. mlrun/frameworks/lgbm/utils.py +5 -5
  130. mlrun/frameworks/onnx/dataset.py +8 -8
  131. mlrun/frameworks/onnx/mlrun_interface.py +3 -3
  132. mlrun/frameworks/onnx/model_handler.py +6 -6
  133. mlrun/frameworks/onnx/model_server.py +7 -7
  134. mlrun/frameworks/parallel_coordinates.py +6 -6
  135. mlrun/frameworks/pytorch/__init__.py +18 -18
  136. mlrun/frameworks/pytorch/callbacks/callback.py +4 -5
  137. mlrun/frameworks/pytorch/callbacks/logging_callback.py +17 -17
  138. mlrun/frameworks/pytorch/callbacks/mlrun_logging_callback.py +11 -11
  139. mlrun/frameworks/pytorch/callbacks/tensorboard_logging_callback.py +23 -29
  140. mlrun/frameworks/pytorch/callbacks_handler.py +38 -38
  141. mlrun/frameworks/pytorch/mlrun_interface.py +20 -20
  142. mlrun/frameworks/pytorch/model_handler.py +17 -17
  143. mlrun/frameworks/pytorch/model_server.py +7 -7
  144. mlrun/frameworks/sklearn/__init__.py +13 -13
  145. mlrun/frameworks/sklearn/estimator.py +4 -4
  146. mlrun/frameworks/sklearn/metrics_library.py +14 -14
  147. mlrun/frameworks/sklearn/mlrun_interface.py +16 -9
  148. mlrun/frameworks/sklearn/model_handler.py +2 -2
  149. mlrun/frameworks/tf_keras/__init__.py +10 -7
  150. mlrun/frameworks/tf_keras/callbacks/logging_callback.py +15 -15
  151. mlrun/frameworks/tf_keras/callbacks/mlrun_logging_callback.py +11 -11
  152. mlrun/frameworks/tf_keras/callbacks/tensorboard_logging_callback.py +19 -23
  153. mlrun/frameworks/tf_keras/mlrun_interface.py +9 -11
  154. mlrun/frameworks/tf_keras/model_handler.py +14 -14
  155. mlrun/frameworks/tf_keras/model_server.py +6 -6
  156. mlrun/frameworks/xgboost/__init__.py +13 -13
  157. mlrun/frameworks/xgboost/model_handler.py +6 -6
  158. mlrun/k8s_utils.py +61 -17
  159. mlrun/launcher/__init__.py +1 -1
  160. mlrun/launcher/base.py +16 -15
  161. mlrun/launcher/client.py +13 -11
  162. mlrun/launcher/factory.py +1 -1
  163. mlrun/launcher/local.py +23 -13
  164. mlrun/launcher/remote.py +17 -10
  165. mlrun/lists.py +7 -6
  166. mlrun/model.py +478 -103
  167. mlrun/model_monitoring/__init__.py +1 -1
  168. mlrun/model_monitoring/api.py +163 -371
  169. mlrun/{runtimes/mpijob/v1alpha1.py → model_monitoring/applications/__init__.py} +9 -15
  170. mlrun/model_monitoring/applications/_application_steps.py +188 -0
  171. mlrun/model_monitoring/applications/base.py +108 -0
  172. mlrun/model_monitoring/applications/context.py +341 -0
  173. mlrun/model_monitoring/{evidently_application.py → applications/evidently_base.py} +27 -22
  174. mlrun/model_monitoring/applications/histogram_data_drift.py +354 -0
  175. mlrun/model_monitoring/applications/results.py +99 -0
  176. mlrun/model_monitoring/controller.py +131 -278
  177. mlrun/model_monitoring/db/__init__.py +18 -0
  178. mlrun/model_monitoring/db/stores/__init__.py +136 -0
  179. mlrun/model_monitoring/db/stores/base/__init__.py +15 -0
  180. mlrun/model_monitoring/db/stores/base/store.py +213 -0
  181. mlrun/model_monitoring/db/stores/sqldb/__init__.py +13 -0
  182. mlrun/model_monitoring/db/stores/sqldb/models/__init__.py +71 -0
  183. mlrun/model_monitoring/db/stores/sqldb/models/base.py +190 -0
  184. mlrun/model_monitoring/db/stores/sqldb/models/mysql.py +103 -0
  185. mlrun/model_monitoring/{stores/models/mysql.py → db/stores/sqldb/models/sqlite.py} +19 -13
  186. mlrun/model_monitoring/db/stores/sqldb/sql_store.py +659 -0
  187. mlrun/model_monitoring/db/stores/v3io_kv/__init__.py +13 -0
  188. mlrun/model_monitoring/db/stores/v3io_kv/kv_store.py +726 -0
  189. mlrun/model_monitoring/db/tsdb/__init__.py +105 -0
  190. mlrun/model_monitoring/db/tsdb/base.py +448 -0
  191. mlrun/model_monitoring/db/tsdb/helpers.py +30 -0
  192. mlrun/model_monitoring/db/tsdb/tdengine/__init__.py +15 -0
  193. mlrun/model_monitoring/db/tsdb/tdengine/schemas.py +279 -0
  194. mlrun/model_monitoring/db/tsdb/tdengine/stream_graph_steps.py +42 -0
  195. mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py +507 -0
  196. mlrun/model_monitoring/db/tsdb/v3io/__init__.py +15 -0
  197. mlrun/model_monitoring/db/tsdb/v3io/stream_graph_steps.py +158 -0
  198. mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py +849 -0
  199. mlrun/model_monitoring/features_drift_table.py +134 -106
  200. mlrun/model_monitoring/helpers.py +199 -55
  201. mlrun/model_monitoring/metrics/__init__.py +13 -0
  202. mlrun/model_monitoring/metrics/histogram_distance.py +127 -0
  203. mlrun/model_monitoring/model_endpoint.py +3 -2
  204. mlrun/model_monitoring/stream_processing.py +131 -398
  205. mlrun/model_monitoring/tracking_policy.py +9 -2
  206. mlrun/model_monitoring/writer.py +161 -125
  207. mlrun/package/__init__.py +6 -6
  208. mlrun/package/context_handler.py +5 -5
  209. mlrun/package/packager.py +7 -7
  210. mlrun/package/packagers/default_packager.py +8 -8
  211. mlrun/package/packagers/numpy_packagers.py +15 -15
  212. mlrun/package/packagers/pandas_packagers.py +5 -5
  213. mlrun/package/packagers/python_standard_library_packagers.py +10 -10
  214. mlrun/package/packagers_manager.py +19 -23
  215. mlrun/package/utils/_formatter.py +6 -6
  216. mlrun/package/utils/_pickler.py +2 -2
  217. mlrun/package/utils/_supported_format.py +4 -4
  218. mlrun/package/utils/log_hint_utils.py +2 -2
  219. mlrun/package/utils/type_hint_utils.py +4 -9
  220. mlrun/platforms/__init__.py +11 -10
  221. mlrun/platforms/iguazio.py +24 -203
  222. mlrun/projects/operations.py +52 -25
  223. mlrun/projects/pipelines.py +191 -197
  224. mlrun/projects/project.py +1227 -400
  225. mlrun/render.py +16 -19
  226. mlrun/run.py +209 -184
  227. mlrun/runtimes/__init__.py +83 -15
  228. mlrun/runtimes/base.py +51 -35
  229. mlrun/runtimes/daskjob.py +17 -10
  230. mlrun/runtimes/databricks_job/databricks_cancel_task.py +1 -1
  231. mlrun/runtimes/databricks_job/databricks_runtime.py +8 -7
  232. mlrun/runtimes/databricks_job/databricks_wrapper.py +1 -1
  233. mlrun/runtimes/funcdoc.py +1 -29
  234. mlrun/runtimes/function_reference.py +1 -1
  235. mlrun/runtimes/kubejob.py +34 -128
  236. mlrun/runtimes/local.py +40 -11
  237. mlrun/runtimes/mpijob/__init__.py +0 -20
  238. mlrun/runtimes/mpijob/abstract.py +9 -10
  239. mlrun/runtimes/mpijob/v1.py +1 -1
  240. mlrun/{model_monitoring/stores/models/sqlite.py → runtimes/nuclio/__init__.py} +7 -9
  241. mlrun/runtimes/nuclio/api_gateway.py +769 -0
  242. mlrun/runtimes/nuclio/application/__init__.py +15 -0
  243. mlrun/runtimes/nuclio/application/application.py +758 -0
  244. mlrun/runtimes/nuclio/application/reverse_proxy.go +95 -0
  245. mlrun/runtimes/{function.py → nuclio/function.py} +200 -83
  246. mlrun/runtimes/{nuclio.py → nuclio/nuclio.py} +6 -6
  247. mlrun/runtimes/{serving.py → nuclio/serving.py} +65 -68
  248. mlrun/runtimes/pod.py +281 -101
  249. mlrun/runtimes/remotesparkjob.py +12 -9
  250. mlrun/runtimes/sparkjob/spark3job.py +67 -51
  251. mlrun/runtimes/utils.py +41 -75
  252. mlrun/secrets.py +9 -5
  253. mlrun/serving/__init__.py +8 -1
  254. mlrun/serving/remote.py +2 -7
  255. mlrun/serving/routers.py +85 -69
  256. mlrun/serving/server.py +69 -44
  257. mlrun/serving/states.py +209 -36
  258. mlrun/serving/utils.py +22 -14
  259. mlrun/serving/v1_serving.py +6 -7
  260. mlrun/serving/v2_serving.py +129 -54
  261. mlrun/track/tracker.py +2 -1
  262. mlrun/track/tracker_manager.py +3 -3
  263. mlrun/track/trackers/mlflow_tracker.py +6 -2
  264. mlrun/utils/async_http.py +6 -8
  265. mlrun/utils/azure_vault.py +1 -1
  266. mlrun/utils/clones.py +1 -2
  267. mlrun/utils/condition_evaluator.py +3 -3
  268. mlrun/utils/db.py +21 -3
  269. mlrun/utils/helpers.py +405 -225
  270. mlrun/utils/http.py +3 -6
  271. mlrun/utils/logger.py +112 -16
  272. mlrun/utils/notifications/notification/__init__.py +17 -13
  273. mlrun/utils/notifications/notification/base.py +50 -2
  274. mlrun/utils/notifications/notification/console.py +2 -0
  275. mlrun/utils/notifications/notification/git.py +24 -1
  276. mlrun/utils/notifications/notification/ipython.py +3 -1
  277. mlrun/utils/notifications/notification/slack.py +96 -21
  278. mlrun/utils/notifications/notification/webhook.py +59 -2
  279. mlrun/utils/notifications/notification_pusher.py +149 -30
  280. mlrun/utils/regex.py +9 -0
  281. mlrun/utils/retryer.py +208 -0
  282. mlrun/utils/singleton.py +1 -1
  283. mlrun/utils/v3io_clients.py +4 -6
  284. mlrun/utils/version/version.json +2 -2
  285. mlrun/utils/version/version.py +2 -6
  286. mlrun-1.7.0.dist-info/METADATA +378 -0
  287. mlrun-1.7.0.dist-info/RECORD +351 -0
  288. {mlrun-1.6.4rc7.dist-info → mlrun-1.7.0.dist-info}/WHEEL +1 -1
  289. mlrun/feature_store/retrieval/conversion.py +0 -273
  290. mlrun/kfpops.py +0 -868
  291. mlrun/model_monitoring/application.py +0 -310
  292. mlrun/model_monitoring/batch.py +0 -1095
  293. mlrun/model_monitoring/prometheus.py +0 -219
  294. mlrun/model_monitoring/stores/__init__.py +0 -111
  295. mlrun/model_monitoring/stores/kv_model_endpoint_store.py +0 -576
  296. mlrun/model_monitoring/stores/model_endpoint_store.py +0 -147
  297. mlrun/model_monitoring/stores/models/__init__.py +0 -27
  298. mlrun/model_monitoring/stores/models/base.py +0 -84
  299. mlrun/model_monitoring/stores/sql_model_endpoint_store.py +0 -384
  300. mlrun/platforms/other.py +0 -306
  301. mlrun-1.6.4rc7.dist-info/METADATA +0 -272
  302. mlrun-1.6.4rc7.dist-info/RECORD +0 -314
  303. {mlrun-1.6.4rc7.dist-info → mlrun-1.7.0.dist-info}/LICENSE +0 -0
  304. {mlrun-1.6.4rc7.dist-info → mlrun-1.7.0.dist-info}/entry_points.txt +0 -0
  305. {mlrun-1.6.4rc7.dist-info → mlrun-1.7.0.dist-info}/top_level.txt +0 -0
@@ -12,9 +12,9 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  #
15
- from typing import List, Optional
15
+ from typing import Optional
16
16
 
17
- from pydantic import BaseModel, Extra, Field
17
+ import pydantic
18
18
 
19
19
  from .auth import AuthorizationResourceTypes, Credentials
20
20
  from .object import (
@@ -27,32 +27,42 @@ from .object import (
27
27
  )
28
28
 
29
29
 
30
- class Feature(BaseModel):
30
+ class FeatureStoreBaseModel(pydantic.BaseModel):
31
+ """
32
+ Intermediate base class, in order to override pydantic's configuration, as per
33
+ https://docs.pydantic.dev/1.10/usage/model_config/#change-behaviour-globally
34
+ """
35
+
36
+ class Config:
37
+ copy_on_model_validation = "none"
38
+
39
+
40
+ class Feature(FeatureStoreBaseModel):
31
41
  name: str
32
42
  value_type: str
33
43
  labels: Optional[dict] = {}
34
44
 
35
45
  class Config:
36
- extra = Extra.allow
46
+ extra = pydantic.Extra.allow
37
47
 
38
48
 
39
- class Entity(BaseModel):
49
+ class Entity(FeatureStoreBaseModel):
40
50
  name: str
41
51
  value_type: str
42
52
  labels: Optional[dict] = {}
43
53
 
44
54
  class Config:
45
- extra = Extra.allow
55
+ extra = pydantic.Extra.allow
46
56
 
47
57
 
48
58
  class FeatureSetSpec(ObjectSpec):
49
- entities: List[Entity] = []
50
- features: List[Feature] = []
51
- engine: Optional[str] = Field(default="storey")
59
+ entities: list[Entity] = []
60
+ features: list[Feature] = []
61
+ engine: Optional[str] = pydantic.Field(default="storey")
52
62
 
53
63
 
54
- class FeatureSet(BaseModel):
55
- kind: ObjectKind = Field(ObjectKind.feature_set, const=True)
64
+ class FeatureSet(FeatureStoreBaseModel):
65
+ kind: ObjectKind = pydantic.Field(ObjectKind.feature_set, const=True)
56
66
  metadata: ObjectMetadata
57
67
  spec: FeatureSetSpec
58
68
  status: ObjectStatus
@@ -62,70 +72,90 @@ class FeatureSet(BaseModel):
62
72
  return AuthorizationResourceTypes.feature_set
63
73
 
64
74
 
65
- class EntityRecord(BaseModel):
75
+ class EntityRecord(FeatureStoreBaseModel):
66
76
  name: str
67
77
  value_type: str
68
- labels: List[LabelRecord]
78
+ labels: list[LabelRecord]
69
79
 
70
80
  class Config:
71
81
  orm_mode = True
72
82
 
73
83
 
74
- class FeatureRecord(BaseModel):
84
+ class FeatureRecord(FeatureStoreBaseModel):
75
85
  name: str
76
86
  value_type: str
77
- labels: List[LabelRecord]
87
+ labels: list[LabelRecord]
78
88
 
79
89
  class Config:
80
90
  orm_mode = True
81
91
 
82
92
 
83
93
  class FeatureSetRecord(ObjectRecord):
84
- entities: List[EntityRecord]
85
- features: List[FeatureRecord]
94
+ entities: list[EntityRecord]
95
+ features: list[FeatureRecord]
86
96
 
87
97
  class Config:
88
98
  orm_mode = True
89
99
 
90
100
 
91
- class FeatureSetsOutput(BaseModel):
92
- feature_sets: List[FeatureSet]
101
+ class FeatureSetsOutput(FeatureStoreBaseModel):
102
+ feature_sets: list[FeatureSet]
93
103
 
94
104
 
95
- class FeatureSetsTagsOutput(BaseModel):
96
- tags: List[str] = []
105
+ class FeatureSetsTagsOutput(FeatureStoreBaseModel):
106
+ tags: list[str] = []
97
107
 
98
108
 
99
- class FeatureSetDigestSpec(BaseModel):
100
- entities: List[Entity]
101
- features: List[Feature]
109
+ class FeatureSetDigestSpec(FeatureStoreBaseModel):
110
+ entities: list[Entity]
111
+ features: list[Feature]
102
112
 
103
113
 
104
- class FeatureSetDigestOutput(BaseModel):
114
+ class FeatureSetDigestOutput(FeatureStoreBaseModel):
105
115
  metadata: ObjectMetadata
106
116
  spec: FeatureSetDigestSpec
107
117
 
108
118
 
109
- class FeatureListOutput(BaseModel):
119
+ class FeatureSetDigestSpecV2(FeatureStoreBaseModel):
120
+ entities: list[Entity]
121
+
122
+
123
+ class FeatureSetDigestOutputV2(FeatureStoreBaseModel):
124
+ feature_set_index: int
125
+ metadata: ObjectMetadata
126
+ spec: FeatureSetDigestSpecV2
127
+
128
+
129
+ class FeatureListOutput(FeatureStoreBaseModel):
110
130
  feature: Feature
111
131
  feature_set_digest: FeatureSetDigestOutput
112
132
 
113
133
 
114
- class FeaturesOutput(BaseModel):
115
- features: List[FeatureListOutput]
134
+ class FeaturesOutput(FeatureStoreBaseModel):
135
+ features: list[FeatureListOutput]
136
+
116
137
 
138
+ class FeaturesOutputV2(FeatureStoreBaseModel):
139
+ features: list[Feature]
140
+ feature_set_digests: list[FeatureSetDigestOutputV2]
117
141
 
118
- class EntityListOutput(BaseModel):
142
+
143
+ class EntityListOutput(FeatureStoreBaseModel):
119
144
  entity: Entity
120
145
  feature_set_digest: FeatureSetDigestOutput
121
146
 
122
147
 
123
- class EntitiesOutput(BaseModel):
124
- entities: List[EntityListOutput]
148
+ class EntitiesOutputV2(FeatureStoreBaseModel):
149
+ entities: list[Entity]
150
+ feature_set_digests: list[FeatureSetDigestOutputV2]
151
+
152
+
153
+ class EntitiesOutput(FeatureStoreBaseModel):
154
+ entities: list[EntityListOutput]
125
155
 
126
156
 
127
- class FeatureVector(BaseModel):
128
- kind: ObjectKind = Field(ObjectKind.feature_vector, const=True)
157
+ class FeatureVector(FeatureStoreBaseModel):
158
+ kind: ObjectKind = pydantic.Field(ObjectKind.feature_vector, const=True)
129
159
  metadata: ObjectMetadata
130
160
  spec: ObjectSpec
131
161
  status: ObjectStatus
@@ -139,39 +169,39 @@ class FeatureVectorRecord(ObjectRecord):
139
169
  pass
140
170
 
141
171
 
142
- class FeatureVectorsOutput(BaseModel):
143
- feature_vectors: List[FeatureVector]
172
+ class FeatureVectorsOutput(FeatureStoreBaseModel):
173
+ feature_vectors: list[FeatureVector]
144
174
 
145
175
 
146
- class FeatureVectorsTagsOutput(BaseModel):
147
- tags: List[str] = []
176
+ class FeatureVectorsTagsOutput(FeatureStoreBaseModel):
177
+ tags: list[str] = []
148
178
 
149
179
 
150
- class DataSource(BaseModel):
180
+ class DataSource(FeatureStoreBaseModel):
151
181
  kind: str
152
182
  name: str
153
183
  path: str
154
184
 
155
185
  class Config:
156
- extra = Extra.allow
186
+ extra = pydantic.Extra.allow
157
187
 
158
188
 
159
- class DataTarget(BaseModel):
189
+ class DataTarget(FeatureStoreBaseModel):
160
190
  kind: str
161
191
  name: str
162
192
  path: Optional[str]
163
193
 
164
194
  class Config:
165
- extra = Extra.allow
195
+ extra = pydantic.Extra.allow
166
196
 
167
197
 
168
- class FeatureSetIngestInput(BaseModel):
198
+ class FeatureSetIngestInput(FeatureStoreBaseModel):
169
199
  source: Optional[DataSource]
170
- targets: Optional[List[DataTarget]]
200
+ targets: Optional[list[DataTarget]]
171
201
  infer_options: Optional[int]
172
202
  credentials: Credentials = Credentials()
173
203
 
174
204
 
175
- class FeatureSetIngestOutput(BaseModel):
205
+ class FeatureSetIngestOutput(FeatureStoreBaseModel):
176
206
  feature_set: FeatureSet
177
207
  run_object: dict
@@ -50,23 +50,31 @@ class FeatureFlags(pydantic.BaseModel):
50
50
  preemption_nodes: PreemptionNodesFeatureFlag
51
51
 
52
52
 
53
+ class ArtifactLimits(pydantic.BaseModel):
54
+ max_chunk_size: int
55
+ max_preview_size: int
56
+ max_download_size: int
57
+
58
+
53
59
  class FrontendSpec(pydantic.BaseModel):
54
60
  jobs_dashboard_url: typing.Optional[str]
55
61
  model_monitoring_dashboard_url: typing.Optional[str]
56
- abortable_function_kinds: typing.List[str] = []
62
+ abortable_function_kinds: list[str] = []
57
63
  feature_flags: FeatureFlags
58
64
  default_function_priority_class_name: typing.Optional[str]
59
- valid_function_priority_class_names: typing.List[str] = []
60
- default_function_image_by_kind: typing.Dict[str, str] = {}
65
+ valid_function_priority_class_names: list[str] = []
66
+ default_function_image_by_kind: dict[str, str] = {}
61
67
  function_deployment_target_image_template: typing.Optional[str]
62
68
  function_deployment_target_image_name_prefix_template: str
63
- function_deployment_target_image_registries_to_enforce_prefix: typing.List[str] = []
69
+ function_deployment_target_image_registries_to_enforce_prefix: list[str] = []
64
70
  function_deployment_mlrun_requirement: typing.Optional[str]
65
71
  auto_mount_type: typing.Optional[str]
66
- auto_mount_params: typing.Dict[str, str] = {}
72
+ auto_mount_params: dict[str, str] = {}
67
73
  default_artifact_path: str
68
74
  default_function_pod_resources: Resources = Resources()
69
75
  default_function_preemption_mode: str
70
- feature_store_data_prefixes: typing.Optional[typing.Dict[str, str]]
71
- allowed_artifact_path_prefixes_list: typing.List[str]
76
+ feature_store_data_prefixes: typing.Optional[dict[str, str]]
77
+ allowed_artifact_path_prefixes_list: list[str]
72
78
  ce: typing.Optional[dict]
79
+ internal_labels: list[str] = []
80
+ artifact_limits: ArtifactLimits
@@ -45,6 +45,9 @@ class FunctionState:
45
45
  # same goes for the build which is not coming from the pod, but is used and we can't just omit it for BC reasons
46
46
  build = "build"
47
47
 
48
+ # for pipeline steps
49
+ skipped = "skipped"
50
+
48
51
  @classmethod
49
52
  def get_function_state_from_pod_state(cls, pod_state: str):
50
53
  if pod_state == "succeeded":
@@ -60,6 +63,7 @@ class FunctionState:
60
63
  return [
61
64
  cls.ready,
62
65
  cls.error,
66
+ cls.skipped,
63
67
  ]
64
68
 
65
69
 
@@ -106,7 +110,7 @@ class ServiceAccount(pydantic.BaseModel):
106
110
 
107
111
 
108
112
  class StateThresholds(pydantic.BaseModel):
109
- default: typing.Optional[typing.Dict[str, str]]
113
+ default: typing.Optional[dict[str, str]]
110
114
 
111
115
 
112
116
  class FunctionSpec(pydantic.BaseModel):
@@ -115,6 +119,13 @@ class FunctionSpec(pydantic.BaseModel):
115
119
  service_account: typing.Optional[ServiceAccount]
116
120
  state_thresholds: typing.Optional[StateThresholds]
117
121
 
122
+ class Config:
123
+ extra = pydantic.Extra.allow
124
+
118
125
 
119
126
  class Function(pydantic.BaseModel):
120
127
  spec: typing.Optional[FunctionSpec]
128
+ application: typing.Optional[dict[str, typing.Any]]
129
+
130
+ class Config:
131
+ extra = pydantic.Extra.allow
@@ -13,7 +13,7 @@
13
13
  # limitations under the License.
14
14
  #
15
15
  from datetime import datetime, timezone
16
- from typing import Dict, List, Optional
16
+ from typing import Optional
17
17
 
18
18
  from pydantic import BaseModel, Extra, Field
19
19
 
@@ -56,36 +56,29 @@ class HubSource(BaseModel):
56
56
  status: Optional[ObjectStatus] = ObjectStatus(state="created")
57
57
 
58
58
  def get_full_uri(self, relative_path):
59
- return "{base}/{object_type}/{channel}/{relative_path}".format(
60
- base=self.spec.path,
61
- object_type=self.spec.object_type,
62
- channel=self.spec.channel,
63
- relative_path=relative_path,
64
- )
59
+ return f"{self.spec.path}/{self.spec.object_type}/{self.spec.channel}/{relative_path}"
65
60
 
66
61
  def get_catalog_uri(self):
67
- return self.get_full_uri(mlrun.config.config.hub.catalog_filename)
62
+ return self.get_full_uri(mlrun.mlconf.hub.catalog_filename)
68
63
 
69
64
  @classmethod
70
65
  def generate_default_source(cls):
71
- if not mlrun.config.config.hub.default_source.create:
66
+ if not mlrun.mlconf.hub.default_source.create:
72
67
  return None
73
68
 
74
69
  now = datetime.now(timezone.utc)
75
70
  hub_metadata = HubObjectMetadata(
76
- name=mlrun.config.config.hub.default_source.name,
77
- description=mlrun.config.config.hub.default_source.description,
71
+ name=mlrun.mlconf.hub.default_source.name,
72
+ description=mlrun.mlconf.hub.default_source.description,
78
73
  created=now,
79
74
  updated=now,
80
75
  )
81
76
  return cls(
82
77
  metadata=hub_metadata,
83
78
  spec=HubSourceSpec(
84
- path=mlrun.config.config.hub.default_source.url,
85
- channel=mlrun.config.config.hub.default_source.channel,
86
- object_type=HubSourceType(
87
- mlrun.config.config.hub.default_source.object_type
88
- ),
79
+ path=mlrun.mlconf.hub.default_source.url,
80
+ channel=mlrun.mlconf.hub.default_source.channel,
81
+ object_type=HubSourceType(mlrun.mlconf.hub.default_source.object_type),
89
82
  ),
90
83
  status=ObjectStatus(state="created"),
91
84
  )
@@ -120,7 +113,7 @@ class HubItemMetadata(HubObjectMetadata):
120
113
 
121
114
  class HubItemSpec(ObjectSpec):
122
115
  item_uri: str
123
- assets: Dict[str, str] = {}
116
+ assets: dict[str, str] = {}
124
117
 
125
118
 
126
119
  class HubItem(BaseModel):
@@ -133,4 +126,4 @@ class HubItem(BaseModel):
133
126
  class HubCatalog(BaseModel):
134
127
  kind: ObjectKind = Field(ObjectKind.hub_catalog, const=True)
135
128
  channel: str
136
- catalog: List[HubItem]
129
+ catalog: list[HubItem]
@@ -19,7 +19,7 @@ import pydantic
19
19
 
20
20
 
21
21
  class MostCommonObjectTypesReport(pydantic.BaseModel):
22
- object_types: typing.List[typing.Tuple[str, int]]
22
+ object_types: list[tuple[str, int]]
23
23
 
24
24
 
25
25
  class ObjectTypeReport(pydantic.BaseModel):
@@ -27,4 +27,4 @@ class ObjectTypeReport(pydantic.BaseModel):
27
27
  sample_size: int
28
28
  start_index: typing.Optional[int]
29
29
  max_depth: int
30
- object_report: typing.List[typing.Dict[str, typing.Any]]
30
+ object_report: list[dict[str, typing.Any]]
@@ -11,10 +11,9 @@
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
- # flake8: noqa - this is until we take care of the F401 violations with respect to __all__ & sphinx
16
14
 
17
15
  from .constants import (
16
+ V3IO_MODEL_MONITORING_DB,
18
17
  ControllerPolicy,
19
18
  DriftStatus,
20
19
  EndpointType,
@@ -25,17 +24,30 @@ from .constants import (
25
24
  FeatureSetFeatures,
26
25
  FileTargetKind,
27
26
  FunctionURI,
27
+ MetricData,
28
+ ModelEndpointMonitoringMetricType,
28
29
  ModelEndpointTarget,
30
+ ModelEndpointTargetSchemas,
29
31
  ModelMonitoringMode,
30
32
  ModelMonitoringStoreKinds,
31
33
  MonitoringFunctionNames,
34
+ PredictionsQueryConstants,
32
35
  ProjectSecretKeys,
33
- PrometheusMetric,
34
- TimeSeriesTarget,
36
+ ResultData,
37
+ ResultKindApp,
38
+ ResultStatusApp,
39
+ SchedulingKeys,
40
+ SpecialApps,
41
+ TDEngineSuperTables,
42
+ TSDBTarget,
43
+ V3IOTSDBTables,
35
44
  VersionedModel,
45
+ WriterEvent,
46
+ WriterEventKind,
36
47
  )
37
48
  from .grafana import (
38
49
  GrafanaColumn,
50
+ GrafanaColumnType,
39
51
  GrafanaDataPoint,
40
52
  GrafanaNumberColumn,
41
53
  GrafanaStringColumn,
@@ -48,6 +60,10 @@ from .model_endpoints import (
48
60
  ModelEndpoint,
49
61
  ModelEndpointList,
50
62
  ModelEndpointMetadata,
63
+ ModelEndpointMonitoringMetric,
64
+ ModelEndpointMonitoringMetricNoData,
65
+ ModelEndpointMonitoringMetricValues,
66
+ ModelEndpointMonitoringResultValues,
51
67
  ModelEndpointSpec,
52
68
  ModelEndpointStatus,
53
69
  )