mlrun 1.10.0rc21__tar.gz → 1.10.0rc23__tar.gz

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 (396) hide show
  1. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/Makefile +11 -0
  2. {mlrun-1.10.0rc21/mlrun.egg-info → mlrun-1.10.0rc23}/PKG-INFO +3 -3
  3. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/artifacts/llm_prompt.py +11 -10
  4. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/artifacts/model.py +3 -3
  5. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/auth.py +2 -0
  6. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/model_monitoring/functions.py +13 -4
  7. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/datastore.py +6 -1
  8. mlrun-1.10.0rc23/mlrun/datastore/model_provider/mock_model_provider.py +87 -0
  9. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/db/base.py +9 -0
  10. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/db/httpdb.py +21 -1
  11. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/db/nopdb.py +8 -0
  12. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/execution.py +52 -10
  13. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/k8s_utils.py +105 -2
  14. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/applications/__init__.py +1 -1
  15. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/applications/base.py +86 -33
  16. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/controller.py +1 -1
  17. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/db/_schedules.py +21 -0
  18. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/db/tsdb/base.py +14 -5
  19. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/db/tsdb/tdengine/schemas.py +4 -5
  20. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py +53 -20
  21. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py +39 -1
  22. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/projects/project.py +50 -7
  23. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/serving/server.py +24 -7
  24. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/serving/states.py +358 -75
  25. mlrun-1.10.0rc23/mlrun/utils/version/version.json +4 -0
  26. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23/mlrun.egg-info}/PKG-INFO +3 -3
  27. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun.egg-info/SOURCES.txt +1 -0
  28. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun.egg-info/requires.txt +2 -2
  29. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/requirements.txt +2 -2
  30. mlrun-1.10.0rc21/mlrun/utils/version/version.json +0 -4
  31. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/LICENSE +0 -0
  32. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/MANIFEST.in +0 -0
  33. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/README.md +0 -0
  34. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/dependencies.py +0 -0
  35. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/dev-requirements.txt +0 -0
  36. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/dockerfiles/mlrun-api/requirements.txt +0 -0
  37. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/examples/archive.zip +0 -0
  38. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/examples/function.py +0 -0
  39. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/examples/handler.py +0 -0
  40. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/examples/infile.txt +0 -0
  41. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/examples/load-project.ipynb +0 -0
  42. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/examples/mlrun_basics.ipynb +0 -0
  43. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/examples/mlrun_dask.ipynb +0 -0
  44. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/examples/mlrun_db.ipynb +0 -0
  45. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/examples/mlrun_export_import.ipynb +0 -0
  46. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/examples/mlrun_jobs.ipynb +0 -0
  47. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/examples/mlrun_sparkk8s.ipynb +0 -0
  48. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/examples/mlrun_vault.ipynb +0 -0
  49. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/examples/model.bst +0 -0
  50. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/examples/new-project.ipynb +0 -0
  51. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/examples/nulltst.py +0 -0
  52. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/examples/params.csv +0 -0
  53. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/examples/remote-spark.ipynb +0 -0
  54. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/examples/secrets.txt +0 -0
  55. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/examples/spark-function.py +0 -0
  56. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/examples/training.py +0 -0
  57. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/examples/v2_model_server.ipynb +0 -0
  58. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/examples/xgb_serving.ipynb +0 -0
  59. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/extras-requirements.txt +0 -0
  60. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/__init__.py +0 -0
  61. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/__main__.py +0 -0
  62. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/alerts/__init__.py +0 -0
  63. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/alerts/alert.py +0 -0
  64. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/artifacts/__init__.py +0 -0
  65. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/artifacts/base.py +0 -0
  66. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/artifacts/dataset.py +0 -0
  67. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/artifacts/document.py +0 -0
  68. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/artifacts/helpers.py +0 -0
  69. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/artifacts/manager.py +0 -0
  70. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/artifacts/plots.py +0 -0
  71. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/__init__.py +0 -0
  72. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/constants.py +0 -0
  73. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/db/__init__.py +0 -0
  74. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/db/dialects.py +0 -0
  75. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/formatters/__init__.py +0 -0
  76. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/formatters/artifact.py +0 -0
  77. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/formatters/base.py +0 -0
  78. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/formatters/feature_set.py +0 -0
  79. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/formatters/function.py +0 -0
  80. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/formatters/model_endpoint.py +0 -0
  81. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/formatters/pipeline.py +0 -0
  82. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/formatters/project.py +0 -0
  83. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/formatters/run.py +0 -0
  84. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/helpers.py +0 -0
  85. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/model_monitoring/__init__.py +0 -0
  86. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/model_monitoring/helpers.py +0 -0
  87. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/runtimes/constants.py +0 -0
  88. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/__init__.py +0 -0
  89. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/alert.py +0 -0
  90. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/api_gateway.py +0 -0
  91. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/artifact.py +0 -0
  92. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/background_task.py +0 -0
  93. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/client_spec.py +0 -0
  94. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/clusterization_spec.py +0 -0
  95. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/common.py +0 -0
  96. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/constants.py +0 -0
  97. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/datastore_profile.py +0 -0
  98. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/events.py +0 -0
  99. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/feature_store.py +0 -0
  100. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/frontend_spec.py +0 -0
  101. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/function.py +0 -0
  102. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/http.py +0 -0
  103. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/hub.py +0 -0
  104. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/k8s.py +0 -0
  105. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/memory_reports.py +0 -0
  106. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/model_monitoring/__init__.py +0 -0
  107. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/model_monitoring/constants.py +0 -0
  108. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/model_monitoring/grafana.py +0 -0
  109. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/model_monitoring/model_endpoints.py +0 -0
  110. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/notification.py +0 -0
  111. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/object.py +0 -0
  112. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/pagination.py +0 -0
  113. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/partition.py +0 -0
  114. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/pipeline.py +0 -0
  115. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/project.py +0 -0
  116. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/regex.py +0 -0
  117. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/runs.py +0 -0
  118. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/runtime_resource.py +0 -0
  119. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/schedule.py +0 -0
  120. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/secret.py +0 -0
  121. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/serving.py +0 -0
  122. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/tag.py +0 -0
  123. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/schemas/workflow.py +0 -0
  124. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/secrets.py +0 -0
  125. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/common/types.py +0 -0
  126. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/config.py +0 -0
  127. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/data_types/__init__.py +0 -0
  128. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/data_types/data_types.py +0 -0
  129. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/data_types/infer.py +0 -0
  130. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/data_types/spark.py +0 -0
  131. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/data_types/to_pandas.py +0 -0
  132. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/__init__.py +0 -0
  133. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/alibaba_oss.py +0 -0
  134. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/azure_blob.py +0 -0
  135. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/base.py +0 -0
  136. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/datastore_profile.py +0 -0
  137. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/dbfs_store.py +0 -0
  138. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/filestore.py +0 -0
  139. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/google_cloud_storage.py +0 -0
  140. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/hdfs.py +0 -0
  141. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/inmem.py +0 -0
  142. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/model_provider/__init__.py +0 -0
  143. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/model_provider/huggingface_provider.py +0 -0
  144. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/model_provider/model_provider.py +0 -0
  145. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/model_provider/openai_provider.py +0 -0
  146. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/redis.py +0 -0
  147. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/remote_client.py +0 -0
  148. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/s3.py +0 -0
  149. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/snowflake_utils.py +0 -0
  150. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/sources.py +0 -0
  151. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/spark_udf.py +0 -0
  152. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/spark_utils.py +0 -0
  153. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/store_resources.py +0 -0
  154. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/storeytargets.py +0 -0
  155. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/targets.py +0 -0
  156. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/utils.py +0 -0
  157. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/v3io.py +0 -0
  158. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/vectorstore.py +0 -0
  159. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/wasbfs/__init__.py +0 -0
  160. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/datastore/wasbfs/fs.py +0 -0
  161. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/db/__init__.py +0 -0
  162. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/db/auth_utils.py +0 -0
  163. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/db/factory.py +0 -0
  164. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/errors.py +0 -0
  165. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/feature_store/__init__.py +0 -0
  166. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/feature_store/api.py +0 -0
  167. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/feature_store/common.py +0 -0
  168. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/feature_store/feature_set.py +0 -0
  169. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/feature_store/feature_vector.py +0 -0
  170. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/feature_store/feature_vector_utils.py +0 -0
  171. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/feature_store/ingestion.py +0 -0
  172. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/feature_store/retrieval/__init__.py +0 -0
  173. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/feature_store/retrieval/base.py +0 -0
  174. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/feature_store/retrieval/dask_merger.py +0 -0
  175. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/feature_store/retrieval/job.py +0 -0
  176. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/feature_store/retrieval/local_merger.py +0 -0
  177. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/feature_store/retrieval/spark_merger.py +0 -0
  178. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/feature_store/retrieval/storey_merger.py +0 -0
  179. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/feature_store/steps.py +0 -0
  180. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/features.py +0 -0
  181. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/__init__.py +0 -0
  182. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_common/__init__.py +0 -0
  183. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_common/artifacts_library.py +0 -0
  184. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_common/mlrun_interface.py +0 -0
  185. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_common/model_handler.py +0 -0
  186. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_common/plan.py +0 -0
  187. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_common/producer.py +0 -0
  188. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_common/utils.py +0 -0
  189. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_dl_common/__init__.py +0 -0
  190. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_dl_common/loggers/__init__.py +0 -0
  191. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_dl_common/loggers/logger.py +0 -0
  192. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_dl_common/loggers/mlrun_logger.py +0 -0
  193. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_dl_common/loggers/tensorboard_logger.py +0 -0
  194. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_dl_common/model_handler.py +0 -0
  195. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_dl_common/utils.py +0 -0
  196. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_ml_common/__init__.py +0 -0
  197. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_ml_common/artifacts_library.py +0 -0
  198. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_ml_common/loggers/__init__.py +0 -0
  199. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_ml_common/loggers/logger.py +0 -0
  200. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_ml_common/loggers/mlrun_logger.py +0 -0
  201. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_ml_common/model_handler.py +0 -0
  202. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_ml_common/pkl_model_server.py +0 -0
  203. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_ml_common/plan.py +0 -0
  204. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_ml_common/plans/__init__.py +0 -0
  205. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_ml_common/plans/calibration_curve_plan.py +0 -0
  206. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_ml_common/plans/confusion_matrix_plan.py +0 -0
  207. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_ml_common/plans/dataset_plan.py +0 -0
  208. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_ml_common/plans/feature_importance_plan.py +0 -0
  209. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_ml_common/plans/roc_curve_plan.py +0 -0
  210. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_ml_common/producer.py +0 -0
  211. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/_ml_common/utils.py +0 -0
  212. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/auto_mlrun/__init__.py +0 -0
  213. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/auto_mlrun/auto_mlrun.py +0 -0
  214. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/huggingface/__init__.py +0 -0
  215. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/huggingface/model_server.py +0 -0
  216. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/lgbm/__init__.py +0 -0
  217. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/lgbm/callbacks/__init__.py +0 -0
  218. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/lgbm/callbacks/callback.py +0 -0
  219. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/lgbm/callbacks/logging_callback.py +0 -0
  220. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/lgbm/callbacks/mlrun_logging_callback.py +0 -0
  221. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/lgbm/mlrun_interfaces/__init__.py +0 -0
  222. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/lgbm/mlrun_interfaces/booster_mlrun_interface.py +0 -0
  223. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/lgbm/mlrun_interfaces/mlrun_interface.py +0 -0
  224. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/lgbm/mlrun_interfaces/model_mlrun_interface.py +0 -0
  225. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/lgbm/model_handler.py +0 -0
  226. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/lgbm/model_server.py +0 -0
  227. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/lgbm/utils.py +0 -0
  228. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/onnx/__init__.py +0 -0
  229. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/onnx/dataset.py +0 -0
  230. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/onnx/mlrun_interface.py +0 -0
  231. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/onnx/model_handler.py +0 -0
  232. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/onnx/model_server.py +0 -0
  233. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/parallel_coordinates.py +0 -0
  234. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/pytorch/__init__.py +0 -0
  235. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/pytorch/callbacks/__init__.py +0 -0
  236. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/pytorch/callbacks/callback.py +0 -0
  237. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/pytorch/callbacks/logging_callback.py +0 -0
  238. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/pytorch/callbacks/mlrun_logging_callback.py +0 -0
  239. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/pytorch/callbacks/tensorboard_logging_callback.py +0 -0
  240. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/pytorch/callbacks_handler.py +0 -0
  241. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/pytorch/mlrun_interface.py +0 -0
  242. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/pytorch/model_handler.py +0 -0
  243. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/pytorch/model_server.py +0 -0
  244. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/pytorch/utils.py +0 -0
  245. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/sklearn/__init__.py +0 -0
  246. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/sklearn/estimator.py +0 -0
  247. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/sklearn/metric.py +0 -0
  248. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/sklearn/metrics_library.py +0 -0
  249. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/sklearn/mlrun_interface.py +0 -0
  250. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/sklearn/model_handler.py +0 -0
  251. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/sklearn/utils.py +0 -0
  252. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/tf_keras/__init__.py +0 -0
  253. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/tf_keras/callbacks/__init__.py +0 -0
  254. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/tf_keras/callbacks/logging_callback.py +0 -0
  255. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/tf_keras/callbacks/mlrun_logging_callback.py +0 -0
  256. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/tf_keras/callbacks/tensorboard_logging_callback.py +0 -0
  257. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/tf_keras/mlrun_interface.py +0 -0
  258. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/tf_keras/model_handler.py +0 -0
  259. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/tf_keras/model_server.py +0 -0
  260. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/tf_keras/utils.py +0 -0
  261. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/xgboost/__init__.py +0 -0
  262. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/xgboost/mlrun_interface.py +0 -0
  263. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/xgboost/model_handler.py +0 -0
  264. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/frameworks/xgboost/utils.py +0 -0
  265. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/launcher/__init__.py +0 -0
  266. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/launcher/base.py +0 -0
  267. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/launcher/client.py +0 -0
  268. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/launcher/factory.py +0 -0
  269. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/launcher/local.py +0 -0
  270. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/launcher/remote.py +0 -0
  271. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/lists.py +0 -0
  272. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model.py +0 -0
  273. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/__init__.py +0 -0
  274. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/api.py +0 -0
  275. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/applications/_application_steps.py +0 -0
  276. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/applications/context.py +0 -0
  277. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/applications/evidently/__init__.py +0 -0
  278. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/applications/evidently/base.py +0 -0
  279. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/applications/histogram_data_drift.py +0 -0
  280. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/applications/results.py +0 -0
  281. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/db/__init__.py +0 -0
  282. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/db/_stats.py +0 -0
  283. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/db/tsdb/__init__.py +0 -0
  284. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/db/tsdb/helpers.py +0 -0
  285. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/db/tsdb/tdengine/__init__.py +0 -0
  286. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/db/tsdb/tdengine/stream_graph_steps.py +0 -0
  287. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connection.py +0 -0
  288. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/db/tsdb/v3io/__init__.py +0 -0
  289. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/db/tsdb/v3io/stream_graph_steps.py +0 -0
  290. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/features_drift_table.py +0 -0
  291. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/helpers.py +0 -0
  292. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/metrics/__init__.py +0 -0
  293. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/metrics/histogram_distance.py +0 -0
  294. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/stream_processing.py +0 -0
  295. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/model_monitoring/writer.py +0 -0
  296. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/package/__init__.py +0 -0
  297. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/package/context_handler.py +0 -0
  298. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/package/errors.py +0 -0
  299. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/package/packager.py +0 -0
  300. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/package/packagers/__init__.py +0 -0
  301. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/package/packagers/default_packager.py +0 -0
  302. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/package/packagers/numpy_packagers.py +0 -0
  303. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/package/packagers/pandas_packagers.py +0 -0
  304. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/package/packagers/python_standard_library_packagers.py +0 -0
  305. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/package/packagers_manager.py +0 -0
  306. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/package/utils/__init__.py +0 -0
  307. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/package/utils/_archiver.py +0 -0
  308. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/package/utils/_formatter.py +0 -0
  309. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/package/utils/_pickler.py +0 -0
  310. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/package/utils/_supported_format.py +0 -0
  311. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/package/utils/log_hint_utils.py +0 -0
  312. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/package/utils/type_hint_utils.py +0 -0
  313. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/platforms/__init__.py +0 -0
  314. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/platforms/iguazio.py +0 -0
  315. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/projects/__init__.py +0 -0
  316. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/projects/operations.py +0 -0
  317. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/projects/pipelines.py +0 -0
  318. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/render.py +0 -0
  319. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/run.py +0 -0
  320. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/__init__.py +0 -0
  321. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/base.py +0 -0
  322. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/daskjob.py +0 -0
  323. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/databricks_job/__init__.py +0 -0
  324. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/databricks_job/databricks_cancel_task.py +0 -0
  325. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/databricks_job/databricks_runtime.py +0 -0
  326. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/databricks_job/databricks_wrapper.py +0 -0
  327. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/funcdoc.py +0 -0
  328. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/function_reference.py +0 -0
  329. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/generators.py +0 -0
  330. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/kubejob.py +0 -0
  331. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/local.py +0 -0
  332. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/mounts.py +0 -0
  333. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/mpijob/__init__.py +0 -0
  334. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/mpijob/abstract.py +0 -0
  335. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/mpijob/v1.py +0 -0
  336. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/nuclio/__init__.py +0 -0
  337. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/nuclio/api_gateway.py +0 -0
  338. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/nuclio/application/__init__.py +0 -0
  339. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/nuclio/application/application.py +0 -0
  340. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/nuclio/application/reverse_proxy.go +0 -0
  341. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/nuclio/function.py +0 -0
  342. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/nuclio/nuclio.py +0 -0
  343. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/nuclio/serving.py +0 -0
  344. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/pod.py +0 -0
  345. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/remotesparkjob.py +0 -0
  346. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/sparkjob/__init__.py +0 -0
  347. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/sparkjob/spark3job.py +0 -0
  348. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/runtimes/utils.py +0 -0
  349. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/secrets.py +0 -0
  350. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/serving/__init__.py +0 -0
  351. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/serving/merger.py +0 -0
  352. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/serving/remote.py +0 -0
  353. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/serving/routers.py +0 -0
  354. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/serving/serving_wrapper.py +0 -0
  355. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/serving/system_steps.py +0 -0
  356. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/serving/utils.py +0 -0
  357. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/serving/v1_serving.py +0 -0
  358. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/serving/v2_serving.py +0 -0
  359. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/track/__init__.py +0 -0
  360. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/track/tracker.py +0 -0
  361. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/track/tracker_manager.py +0 -0
  362. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/track/trackers/__init__.py +0 -0
  363. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/track/trackers/mlflow_tracker.py +0 -0
  364. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/utils/__init__.py +0 -0
  365. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/utils/async_http.py +0 -0
  366. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/utils/azure_vault.py +0 -0
  367. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/utils/clones.py +0 -0
  368. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/utils/condition_evaluator.py +0 -0
  369. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/utils/helpers.py +0 -0
  370. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/utils/http.py +0 -0
  371. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/utils/logger.py +0 -0
  372. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/utils/notifications/__init__.py +0 -0
  373. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/utils/notifications/notification/__init__.py +0 -0
  374. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/utils/notifications/notification/base.py +0 -0
  375. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/utils/notifications/notification/console.py +0 -0
  376. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/utils/notifications/notification/git.py +0 -0
  377. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/utils/notifications/notification/ipython.py +0 -0
  378. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/utils/notifications/notification/mail.py +0 -0
  379. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/utils/notifications/notification/slack.py +0 -0
  380. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/utils/notifications/notification/webhook.py +0 -0
  381. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/utils/notifications/notification_pusher.py +0 -0
  382. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/utils/regex.py +0 -0
  383. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/utils/retryer.py +0 -0
  384. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/utils/singleton.py +0 -0
  385. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/utils/v3io_clients.py +0 -0
  386. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/utils/vault.py +0 -0
  387. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/utils/version/__init__.py +0 -0
  388. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun/utils/version/version.py +0 -0
  389. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun.egg-info/dependency_links.txt +0 -0
  390. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun.egg-info/entry_points.txt +0 -0
  391. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun.egg-info/not-zip-safe +0 -0
  392. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/mlrun.egg-info/top_level.txt +0 -0
  393. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/packages.py +0 -0
  394. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/pyproject.toml +0 -0
  395. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/setup.cfg +0 -0
  396. {mlrun-1.10.0rc21 → mlrun-1.10.0rc23}/setup.py +0 -0
@@ -290,6 +290,7 @@ print-docker-images: ## Print all docker images
290
290
  @for image in $(DEFAULT_IMAGES); do \
291
291
  echo $$image ; \
292
292
  done
293
+ @make -C server/go print-docker-images
293
294
 
294
295
 
295
296
  MLRUN_IMAGE_NAME := $(MLRUN_DOCKER_IMAGE_PREFIX)/mlrun
@@ -311,6 +312,7 @@ mlrun: common-image update-version-file ## Build mlrun docker image
311
312
  --build-arg MLRUN_PIP_VERSION=$(MLRUN_PIP_VERSION) \
312
313
  --build-arg MLRUN_UV_IMAGE=$(MLRUN_UV_IMAGE) \
313
314
  --build-arg DOCKER_DEFAULT_PLATFORM=$(DOCKER_DEFAULT_PLATFORM) \
315
+ --platform $(DOCKER_DEFAULT_PLATFORM) \
314
316
  $(MLRUN_IMAGE_DOCKER_CACHE_FROM_FLAG) \
315
317
  $(MLRUN_DOCKER_NO_CACHE_FLAG) \
316
318
  --tag $(MLRUN_IMAGE_NAME_TAGGED) .
@@ -344,6 +346,7 @@ mlrun-kfp: common-image-3.9 update-version-file ## Build mlrun docker image with
344
346
  --build-arg MLRUN_VERSION=$(MLRUN_VERSION) \
345
347
  --build-arg MLRUN_PIP_VERSION=$(MLRUN_PIP_VERSION) \
346
348
  --build-arg DOCKER_DEFAULT_PLATFORM=$(DOCKER_DEFAULT_PLATFORM) \
349
+ --platform $(DOCKER_DEFAULT_PLATFORM) \
347
350
  $(MLRUN_KFP_IMAGE_DOCKER_CACHE_FROM_FLAG) \
348
351
  $(MLRUN_DOCKER_NO_CACHE_FLAG) \
349
352
  --tag $(MLRUN_KFP_IMAGE_NAME):$(MLRUN_DOCKER_TAG)$(MLRUN_PYTHON_VERSION_SUFFIX) .
@@ -386,6 +389,7 @@ mlrun-gpu: update-version-file ## Build mlrun gpu docker image
386
389
  --build-arg MLRUN_GPU_BASE_IMAGE=$(MLRUN_GPU_BASE_IMAGE) \
387
390
  --build-arg MLRUN_UV_IMAGE=$(MLRUN_UV_IMAGE) \
388
391
  --build-arg MLRUN_PIP_VERSION=$(MLRUN_PIP_VERSION) \
392
+ --platform $(DOCKER_DEFAULT_PLATFORM) \
389
393
  $(MLRUN_GPU_IMAGE_DOCKER_CACHE_FROM_FLAG) \
390
394
  $(MLRUN_DOCKER_NO_CACHE_FLAG) \
391
395
  --tag $(MLRUN_GPU_IMAGE_NAME_TAGGED) \
@@ -407,6 +411,7 @@ prebake-mlrun-gpu: ## Build prebake mlrun GPU based docker image
407
411
  --build-arg CUDA_VER=$(MLRUN_GPU_CUDA_VERSION) \
408
412
  --build-arg MLRUN_ANACONDA_PYTHON_DISTRIBUTION=$(MLRUN_ANACONDA_PYTHON_DISTRIBUTION) \
409
413
  --build-arg MLRUN_PIP_VERSION=$(MLRUN_PIP_VERSION) \
414
+ --platform $(DOCKER_DEFAULT_PLATFORM) \
410
415
  --tag $(MLRUN_GPU_PREBAKED_IMAGE_NAME_TAGGED) \
411
416
  .
412
417
 
@@ -432,6 +437,7 @@ jupyter: update-version-file ## Build mlrun jupyter docker image
432
437
  --build-arg MLRUN_CACHE_DATE=$(MLRUN_CACHE_DATE) \
433
438
  --build-arg MLRUN_PYTHON_VERSION=$(MLRUN_PYTHON_VERSION) \
434
439
  --build-arg MLRUN_UV_IMAGE=$(MLRUN_UV_IMAGE) \
440
+ --platform $(DOCKER_DEFAULT_PLATFORM) \
435
441
  $(MLRUN_JUPYTER_IMAGE_DOCKER_CACHE_FROM_FLAG) \
436
442
  $(MLRUN_DOCKER_NO_CACHE_FLAG) \
437
443
  --tag $(MLRUN_JUPYTER_IMAGE_NAME_TAGGED) \
@@ -505,6 +511,7 @@ $(COMMON_STAMP): $(COMMON_DOCKERFILE)
505
511
  docker build \
506
512
  --build-arg MLRUN_PYTHON_VERSION=$(MLRUN_PYTHON_VERSION) \
507
513
  --build-arg DOCKER_DEFAULT_PLATFORM=$(DOCKER_DEFAULT_PLATFORM) \
514
+ --platform $(DOCKER_DEFAULT_PLATFORM) \
508
515
  -f $(COMMON_DOCKERFILE) \
509
516
  -t $(COMMON_IMAGE_NAME) . \
510
517
  && mkdir -p $(dir $@) && touch $@
@@ -515,6 +522,7 @@ common-image:
515
522
  --no-cache $(COMMON_DOCKER_ARGS) \
516
523
  --build-arg MLRUN_PYTHON_VERSION=$(MLRUN_PYTHON_VERSION) \
517
524
  --build-arg DOCKER_DEFAULT_PLATFORM=$(DOCKER_DEFAULT_PLATFORM) \
525
+ --platform $(DOCKER_DEFAULT_PLATFORM) \
518
526
  -f $(COMMON_DOCKERFILE) \
519
527
  -t $(COMMON_IMAGE_NAME) .
520
528
  endif
@@ -546,6 +554,7 @@ api: common-image-3.11 compile-schemas update-version-file ## Build mlrun-api d
546
554
  --build-arg MLRUN_PYTHON_VERSION=$(MLRUN_PYTHON_VERSION) \
547
555
  --build-arg MLRUN_UV_IMAGE=$(MLRUN_UV_IMAGE) \
548
556
  --build-arg DOCKER_DEFAULT_PLATFORM=$(DOCKER_DEFAULT_PLATFORM) \
557
+ --platform $(DOCKER_DEFAULT_PLATFORM) \
549
558
  $(MLRUN_API_IMAGE_DOCKER_CACHE_FROM_FLAG) \
550
559
  $(MLRUN_DOCKER_NO_CACHE_FLAG) \
551
560
  --tag $(MLRUN_API_IMAGE_NAME_TAGGED) .
@@ -578,6 +587,7 @@ build-test: common-image compile-schemas update-version-file ## Build test docke
578
587
  --build-arg MLRUN_PIPELINES_KFP_VERSION=$(MLRUN_PIPELINES_KFP_VERSION) \
579
588
  --build-arg MLRUN_UV_VERSION=$(MLRUN_UV_VERSION) \
580
589
  --build-arg DOCKER_DEFAULT_PLATFORM=$(DOCKER_DEFAULT_PLATFORM) \
590
+ --platform $(DOCKER_DEFAULT_PLATFORM) \
581
591
  $(MLRUN_TEST_IMAGE_DOCKER_CACHE_FROM_FLAG) \
582
592
  $(MLRUN_DOCKER_NO_CACHE_FLAG) \
583
593
  --tag $(MLRUN_TEST_IMAGE_NAME_TAGGED) .
@@ -597,6 +607,7 @@ build-test-system: common-image compile-schemas update-version-file ## Build sys
597
607
  --build-arg MLRUN_PIP_VERSION=$(MLRUN_PIP_VERSION) \
598
608
  --build-arg MLRUN_UV_VERSION=$(MLRUN_UV_VERSION) \
599
609
  --build-arg DOCKER_DEFAULT_PLATFORM=$(DOCKER_DEFAULT_PLATFORM) \
610
+ --platform $(DOCKER_DEFAULT_PLATFORM) \
600
611
  $(MLRUN_DOCKER_NO_CACHE_FLAG) \
601
612
  --tag $(MLRUN_SYSTEM_TEST_IMAGE_NAME) .
602
613
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mlrun
3
- Version: 1.10.0rc21
3
+ Version: 1.10.0rc23
4
4
  Summary: Tracking and config of machine learning runs
5
5
  Home-page: https://github.com/mlrun/mlrun
6
6
  Author: Yaron Haviv
@@ -39,13 +39,13 @@ Requires-Dist: tabulate~=0.8.6
39
39
  Requires-Dist: v3io~=0.7.0
40
40
  Requires-Dist: pydantic>=1.10.15
41
41
  Requires-Dist: mergedeep~=1.3
42
- Requires-Dist: v3io-frames~=0.10.14; python_version < "3.11"
42
+ Requires-Dist: v3io-frames~=0.10.15; python_version < "3.11"
43
43
  Requires-Dist: v3io-frames>=0.13.0; python_version >= "3.11"
44
44
  Requires-Dist: semver~=3.0
45
45
  Requires-Dist: dependency-injector~=4.41
46
46
  Requires-Dist: fsspec<2024.7,>=2023.9.2
47
47
  Requires-Dist: v3iofs~=0.1.17
48
- Requires-Dist: storey~=1.10.10
48
+ Requires-Dist: storey~=1.10.11
49
49
  Requires-Dist: inflection~=0.5.0
50
50
  Requires-Dist: python-dotenv~=1.0
51
51
  Requires-Dist: setuptools>=75.2
@@ -83,19 +83,20 @@ class LLMPromptArtifactSpec(ArtifactSpec):
83
83
  raise mlrun.errors.MLRunInvalidArgumentError(
84
84
  "Expected prompt_template to be a list of dicts"
85
85
  )
86
- keys_to_pop = []
87
86
  for message in prompt_template:
87
+ if set(key.lower() for key in message.keys()) != set(
88
+ self.PROMPT_TEMPLATE_KEYS
89
+ ):
90
+ raise mlrun.errors.MLRunInvalidArgumentError(
91
+ f"Expected prompt_template to contain dicts with keys "
92
+ f"{self.PROMPT_TEMPLATE_KEYS}, got {message.keys()}"
93
+ )
94
+ keys_to_pop = []
88
95
  for key in message.keys():
89
96
  if isinstance(key, str):
90
- if key.lower() not in self.PROMPT_TEMPLATE_KEYS:
91
- raise mlrun.errors.MLRunInvalidArgumentError(
92
- f"Expected prompt_template to contain dict that "
93
- f"only has keys from {self.PROMPT_TEMPLATE_KEYS}"
94
- )
95
- else:
96
- if not key.islower():
97
- message[key.lower()] = message[key]
98
- keys_to_pop.append(key)
97
+ if not key.islower():
98
+ message[key.lower()] = message[key]
99
+ keys_to_pop.append(key)
99
100
  else:
100
101
  raise mlrun.errors.MLRunInvalidArgumentError(
101
102
  f"Expected prompt_template to contain dict that only"
@@ -190,10 +190,10 @@ class ModelArtifact(Artifact):
190
190
  """
191
191
  super().__init__(key, body, format=format, target_path=target_path, **kwargs)
192
192
  model_file = str(model_file or "")
193
- if model_file and model_url:
193
+ if (model_file or model_dir or body) and model_url:
194
194
  raise mlrun.errors.MLRunInvalidArgumentError(
195
- "Arguments 'model_file' and 'model_dir' cannot be"
196
- " used together with 'model_url'."
195
+ "Arguments 'model_file' and 'model_url' cannot be"
196
+ " used together with 'model_file', 'model_dir' or 'body'."
197
197
  )
198
198
  if model_file and "/" in model_file:
199
199
  if model_dir:
@@ -55,6 +55,7 @@ class AuthorizationResourceTypes(mlrun.common.types.StrEnum):
55
55
  secret = "secret"
56
56
  run = "run"
57
57
  model_endpoint = "model-endpoint"
58
+ model_monitoring = "model-monitoring"
58
59
  pipeline = "pipeline"
59
60
  hub_source = "hub-source"
60
61
  workflow = "workflow"
@@ -96,6 +97,7 @@ class AuthorizationResourceTypes(mlrun.common.types.StrEnum):
96
97
  # runtime resource doesn't have an identifier, we don't need any auth granularity behind project level
97
98
  AuthorizationResourceTypes.runtime_resource: "/projects/{project_name}/runtime-resources",
98
99
  AuthorizationResourceTypes.model_endpoint: "/projects/{project_name}/model-endpoints/{resource_name}",
100
+ AuthorizationResourceTypes.model_monitoring: "/projects/{project_name}/model-monitoring/{resource_name}",
99
101
  AuthorizationResourceTypes.pipeline: "/projects/{project_name}/pipelines/{resource_name}",
100
102
  AuthorizationResourceTypes.datastore_profile: "/projects/{project_name}/datastore_profiles",
101
103
  # Hub sources are not project-scoped, and auth is globally on the sources endpoint.
@@ -54,12 +54,21 @@ class FunctionSummary(BaseModel):
54
54
 
55
55
  return cls(
56
56
  type=func_type,
57
- name=func_dict["metadata"]["name"],
57
+ name=func_dict["metadata"]["name"]
58
+ if func_type != FunctionsType.APPLICATION
59
+ else func_dict["spec"]
60
+ .get("graph", {})
61
+ .get("steps", {})
62
+ .get("PrepareMonitoringEvent", {})
63
+ .get("class_args", {})
64
+ .get("application_name"),
58
65
  application_class=""
59
66
  if func_type != FunctionsType.APPLICATION
60
- else func_dict["spec"]["graph"]["steps"]["PushToMonitoringWriter"]["after"][
61
- 0
62
- ],
67
+ else func_dict["spec"]
68
+ .get("graph", {})
69
+ .get("steps", {})
70
+ .get("PushToMonitoringWriter", {})
71
+ .get("after", [None])[0],
63
72
  project_name=func_dict["metadata"]["project"],
64
73
  updated_time=func_dict["metadata"].get("updated"),
65
74
  status=func_dict["status"].get("state"),
@@ -39,6 +39,7 @@ from .base import DataItem, DataStore, HttpStore
39
39
  from .filestore import FileStore
40
40
  from .inmem import InMemoryStore
41
41
  from .model_provider.huggingface_provider import HuggingFaceProvider
42
+ from .model_provider.mock_model_provider import MockModelProvider
42
43
  from .model_provider.openai_provider import OpenAIProvider
43
44
  from .store_resources import get_store_resource, is_store_uri
44
45
  from .v3io import V3ioStore
@@ -103,7 +104,11 @@ def schema_to_store(schema) -> DataStore.__subclasses__():
103
104
  def schema_to_model_provider(
104
105
  schema: str, raise_missing_schema_exception=True
105
106
  ) -> type[ModelProvider]:
106
- schema_dict = {"openai": OpenAIProvider, "huggingface": HuggingFaceProvider}
107
+ schema_dict = {
108
+ "openai": OpenAIProvider,
109
+ "huggingface": HuggingFaceProvider,
110
+ "mock": MockModelProvider,
111
+ }
107
112
  provider_class = schema_dict.get(schema, None)
108
113
  if not provider_class:
109
114
  if raise_missing_schema_exception:
@@ -0,0 +1,87 @@
1
+ # Copyright 2023 Iguazio
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ from typing import Any, Optional, Union
16
+
17
+ import mlrun
18
+ from mlrun.datastore.model_provider.model_provider import (
19
+ InvokeResponseFormat,
20
+ ModelProvider,
21
+ UsageResponseKeys,
22
+ )
23
+
24
+
25
+ class MockModelProvider(ModelProvider):
26
+ support_async = False
27
+
28
+ def __init__(
29
+ self,
30
+ parent,
31
+ kind,
32
+ name,
33
+ endpoint="",
34
+ secrets: Optional[dict] = None,
35
+ default_invoke_kwargs: Optional[dict] = None,
36
+ ):
37
+ super().__init__(
38
+ parent=parent, name=name, kind=kind, endpoint=endpoint, secrets=secrets
39
+ )
40
+ self.default_invoke_kwargs = default_invoke_kwargs or {}
41
+ self._client = None
42
+ self._async_client = None
43
+
44
+ @staticmethod
45
+ def _extract_string_output(response: Any) -> str:
46
+ """
47
+ Extracts string response from response object
48
+ """
49
+ pass
50
+
51
+ def load_client(self) -> None:
52
+ """
53
+ Initializes the SDK client for the model provider with the given keyword arguments
54
+ and assigns it to an instance attribute (e.g., self._client).
55
+
56
+ Subclasses should override this method to:
57
+ - Create and configure the provider-specific client instance.
58
+ - Assign the client instance to self._client.
59
+ """
60
+
61
+ pass
62
+
63
+ def invoke(
64
+ self,
65
+ messages: Union[list[dict], Any],
66
+ invoke_response_format: InvokeResponseFormat = InvokeResponseFormat.FULL,
67
+ **invoke_kwargs,
68
+ ) -> Union[str, dict[str, Any], Any]:
69
+ if invoke_response_format == InvokeResponseFormat.STRING:
70
+ return (
71
+ "You are using a mock model provider, no actual inference is performed."
72
+ )
73
+ elif invoke_response_format == InvokeResponseFormat.FULL:
74
+ return {
75
+ UsageResponseKeys.USAGE: {"prompt_tokens": 0, "completion_tokens": 0},
76
+ UsageResponseKeys.ANSWER: "You are using a mock model provider, no actual inference is performed.",
77
+ "extra": {},
78
+ }
79
+ elif invoke_response_format == InvokeResponseFormat.USAGE:
80
+ return {
81
+ UsageResponseKeys.ANSWER: "You are using a mock model provider, no actual inference is performed.",
82
+ UsageResponseKeys.USAGE: {"prompt_tokens": 0, "completion_tokens": 0},
83
+ }
84
+ else:
85
+ raise mlrun.errors.MLRunInvalidArgumentError(
86
+ f"Unsupported invoke response format: {invoke_response_format}"
87
+ )
@@ -1111,6 +1111,15 @@ class RunDBInterface(ABC):
1111
1111
  ) -> None:
1112
1112
  pass
1113
1113
 
1114
+ @abstractmethod
1115
+ def delete_model_monitoring_metrics(
1116
+ self,
1117
+ project: str,
1118
+ application_name: str,
1119
+ endpoint_ids: Optional[list[str]] = None,
1120
+ ) -> None:
1121
+ pass
1122
+
1114
1123
  @abstractmethod
1115
1124
  def get_monitoring_function_summaries(
1116
1125
  self,
@@ -3580,7 +3580,7 @@ class HTTPRunDB(RunDBInterface):
3580
3580
  intersection {"intersect_metrics":[], "intersect_results":[]}
3581
3581
  :return: A dictionary of application metrics and/or results for the model endpoints formatted by events_format.
3582
3582
  """
3583
- path = f"projects/{project}/model-endpoints/metrics"
3583
+ path = f"projects/{project}/model-monitoring/metrics"
3584
3584
  params = {
3585
3585
  "type": type,
3586
3586
  "endpoint-id": endpoint_ids,
@@ -4121,6 +4121,26 @@ class HTTPRunDB(RunDBInterface):
4121
4121
  params={**credentials, "replace_creds": replace_creds},
4122
4122
  )
4123
4123
 
4124
+ def delete_model_monitoring_metrics(
4125
+ self,
4126
+ project: str,
4127
+ application_name: str,
4128
+ endpoint_ids: Optional[list[str]] = None,
4129
+ ) -> None:
4130
+ """
4131
+ Delete model endpoints metrics values.
4132
+
4133
+ :param project: The name of the project.
4134
+ :param application_name: The name of the application.
4135
+ :param endpoint_ids: The unique IDs of the model endpoints to delete metrics values from. If none is
4136
+ provided, the metrics values will be deleted from all project's model endpoints.
4137
+ """
4138
+ self.api_call(
4139
+ method=mlrun.common.types.HTTPMethod.DELETE,
4140
+ path=f"projects/{project}/model-monitoring/metrics",
4141
+ params={"endpoint-id": endpoint_ids, "application-name": application_name},
4142
+ )
4143
+
4124
4144
  def get_monitoring_function_summaries(
4125
4145
  self,
4126
4146
  project: str,
@@ -885,6 +885,14 @@ class NopDB(RunDBInterface):
885
885
  ) -> None:
886
886
  pass
887
887
 
888
+ def delete_model_monitoring_metrics(
889
+ self,
890
+ project: str,
891
+ application_name: str,
892
+ endpoint_ids: Optional[list[str]] = None,
893
+ ) -> None:
894
+ pass
895
+
888
896
  def get_monitoring_function_summaries(
889
897
  self,
890
898
  project: str,
@@ -934,14 +934,51 @@ class MLClientCtx:
934
934
 
935
935
  Examples::
936
936
 
937
- # Log an inline prompt
937
+ # Log directly with an inline prompt template
938
938
  context.log_llm_prompt(
939
- key="qa-prompt",
940
- prompt_template=[{"role: "user", "content": "question with {place_holder}"}],
939
+ key="customer_support_prompt",
940
+ prompt_template=[
941
+ {
942
+ "role": "system",
943
+ "content": "You are a helpful customer support assistant.",
944
+ },
945
+ {
946
+ "role": "user",
947
+ "content": "The customer reports: {issue_description}",
948
+ },
949
+ ],
950
+ prompt_legend={
951
+ "issue_description": {
952
+ "field": "user_issue",
953
+ "description": "Detailed description of the customer's issue",
954
+ },
955
+ "solution": {
956
+ "field": "proposed_solution",
957
+ "description": "Suggested fix for the customer's issue",
958
+ },
959
+ },
941
960
  model_artifact=model,
942
- prompt_legend={"question": "user_input"},
943
- model_configuration={"temperature": 0.7, "max_tokens": 128},
944
- tag="latest",
961
+ model_configuration={"temperature": 0.5, "max_tokens": 200},
962
+ description="Prompt for handling customer support queries",
963
+ tag="support-v1",
964
+ labels={"domain": "support"},
965
+ )
966
+
967
+ # Log a prompt from file
968
+ context.log_llm_prompt(
969
+ key="qa_prompt",
970
+ prompt_path="prompts/template.json",
971
+ prompt_legend={
972
+ "question": {
973
+ "field": "user_question",
974
+ "description": "The actual question asked by the user",
975
+ }
976
+ },
977
+ model_artifact=model,
978
+ model_configuration={"temperature": 0.7, "max_tokens": 256},
979
+ description="Q&A prompt template with user-provided question",
980
+ tag="v2",
981
+ labels={"task": "qa", "stage": "experiment"},
945
982
  )
946
983
 
947
984
  :param key: Unique name of the artifact.
@@ -950,7 +987,10 @@ class MLClientCtx:
950
987
  "role": "user", "content": "I need your help with {profession}"]. only "role" and "content" keys allow in any
951
988
  str format (upper/lower case), keys will be modified to lower case.
952
989
  Cannot be used with `prompt_path`.
953
- :param prompt_path: Path to a file containing the prompt content. Cannot be used with `prompt_string`.
990
+ :param prompt_path: Path to a JSON file containing the prompt template.
991
+ Cannot be used together with `prompt_template`.
992
+ The file should define a list of dictionaries in the same format
993
+ supported by `prompt_template`.
954
994
  :param prompt_legend: A dictionary where each key is a placeholder in the prompt (e.g., ``{user_name}``)
955
995
  and the value is a dictionary holding two keys, "field", "description". "field" points to the field in
956
996
  the event where the value of the place-holder inside the event, if None or not exist will be replaced
@@ -958,9 +998,11 @@ class MLClientCtx:
958
998
  Useful for documenting and clarifying dynamic parts of the prompt.
959
999
  :param model_artifact: Reference to the parent model (either `ModelArtifact` or model URI string).
960
1000
  :param model_configuration: Dictionary of generation parameters (e.g., temperature, max_tokens).
961
- :param description: Optional description of the prompt.
962
- :param target_path: Path to write the artifact locally.
963
- :param artifact_path: Path in the artifact store (defaults to project artifact path).
1001
+ :param description: Optional description of the prompt.
1002
+ :param target_path: Absolute target path (instead of using artifact_path + local_path)
1003
+ :param artifact_path: Target artifact path (when not using the default)
1004
+ To define a subpath under the default location use:
1005
+ `artifact_path=context.artifact_subpath('data')`
964
1006
  :param tag: Tag/version to assign to the prompt artifact.
965
1007
  :param labels: Labels to tag the artifact (e.g., list or dict of key-value pairs).
966
1008
  :param upload: Whether to upload the artifact to the store (defaults to True).
@@ -26,6 +26,10 @@ from .config import config as mlconfig
26
26
 
27
27
  _running_inside_kubernetes_cluster = None
28
28
 
29
+ K8sObj = typing.Union[kubernetes.client.V1Affinity, kubernetes.client.V1Toleration]
30
+ SanitizedK8sObj = dict[str, typing.Any]
31
+ K8sObjList = typing.Union[list[K8sObj], list[SanitizedK8sObj]]
32
+
29
33
 
30
34
  def is_running_inside_kubernetes_cluster():
31
35
  global _running_inside_kubernetes_cluster
@@ -232,6 +236,54 @@ def validate_node_selectors(
232
236
  return True
233
237
 
234
238
 
239
+ def sanitize_k8s_objects(
240
+ k8s_objects: typing.Union[None, K8sObjList, SanitizedK8sObj, K8sObj],
241
+ ) -> typing.Union[list[SanitizedK8sObj], SanitizedK8sObj]:
242
+ """Convert K8s objects to dicts. Handles single objects or lists."""
243
+ api_client = kubernetes.client.ApiClient()
244
+ if not k8s_objects:
245
+ return k8s_objects
246
+
247
+ def _sanitize_k8s_object(k8s_obj):
248
+ return (
249
+ api_client.sanitize_for_serialization(k8s_obj)
250
+ if hasattr(k8s_obj, "to_dict")
251
+ else k8s_obj
252
+ )
253
+
254
+ return (
255
+ [_sanitize_k8s_object(k8s_obj) for k8s_obj in k8s_objects]
256
+ if isinstance(k8s_objects, list)
257
+ else _sanitize_k8s_object(k8s_objects)
258
+ )
259
+
260
+
261
+ def sanitize_scheduling_configuration(
262
+ tolerations: typing.Optional[list[kubernetes.client.V1Toleration]] = None,
263
+ affinity: typing.Optional[kubernetes.client.V1Affinity] = None,
264
+ ) -> tuple[
265
+ typing.Optional[list[dict]],
266
+ typing.Optional[dict],
267
+ ]:
268
+ """
269
+ Sanitizes pod scheduling configuration for serialization.
270
+
271
+ Takes affinity and tolerations and converts them to
272
+ JSON-serializable dictionaries using the Kubernetes API client's
273
+ sanitization method.
274
+
275
+ Args:
276
+ affinity: Pod affinity/anti-affinity rules
277
+ tolerations: List of toleration rules
278
+
279
+ Returns:
280
+ Tuple of (sanitized_affinity, sanitized_tolerations)
281
+ - affinity: Sanitized dict representation or None
282
+ - tolerations: List of sanitized dict representations or None
283
+ """
284
+ return sanitize_k8s_objects(tolerations), sanitize_k8s_objects(affinity)
285
+
286
+
235
287
  def enrich_preemption_mode(
236
288
  preemption_mode: typing.Optional[str],
237
289
  node_selector: dict[str, str],
@@ -269,8 +321,8 @@ def enrich_preemption_mode(
269
321
  )
270
322
 
271
323
  enriched_node_selector = copy.deepcopy(node_selector or {})
272
- enriched_tolerations = copy.deepcopy(tolerations or [])
273
- enriched_affinity = copy.deepcopy(affinity)
324
+ enriched_tolerations = _safe_copy_tolerations(tolerations or [])
325
+ enriched_affinity = _safe_copy_affinity(affinity)
274
326
  preemptible_tolerations = generate_preemptible_tolerations()
275
327
 
276
328
  if handler := _get_mode_handler(preemption_mode):
@@ -288,6 +340,57 @@ def enrich_preemption_mode(
288
340
  )
289
341
 
290
342
 
343
+ def _safe_copy_tolerations(
344
+ tolerations: list[kubernetes.client.V1Toleration],
345
+ ) -> list[kubernetes.client.V1Toleration]:
346
+ """
347
+ Safely copy a list of V1Toleration objects without mutating the originals.
348
+
349
+ Explicitly reconstructs V1Toleration objects instead of using deepcopy() to avoid
350
+ serialization errors with K8s client objects that contain threading primitives
351
+ and non-copyable elements like RLock objects.
352
+
353
+ Args:
354
+ tolerations: List of V1Toleration objects to copy
355
+
356
+ Returns:
357
+ New list containing copied V1Toleration objects with identical field values"""
358
+ return [
359
+ kubernetes.client.V1Toleration(
360
+ effect=toleration.effect,
361
+ key=toleration.key,
362
+ value=toleration.value,
363
+ operator=toleration.operator,
364
+ toleration_seconds=toleration.toleration_seconds,
365
+ )
366
+ for toleration in tolerations
367
+ ]
368
+
369
+
370
+ def _safe_copy_affinity(
371
+ affinity: kubernetes.client.V1Affinity,
372
+ ) -> kubernetes.client.V1Affinity:
373
+ """
374
+ Safely create a deep copy of a V1Affinity object.
375
+
376
+ Uses K8s API client serialization/deserialization instead of deepcopy() to avoid
377
+ errors with threading primitives and complex internal structures in K8s objects.
378
+ Serializes to dict then deserializes back to a clean V1Affinity object.
379
+
380
+ Args:
381
+ affinity: V1Affinity object to copy, or None
382
+
383
+ Returns:
384
+ New V1Affinity object with identical field values, or None if input was None
385
+ """
386
+ if not affinity:
387
+ return None
388
+ api_client = kubernetes.client.ApiClient()
389
+ # Convert to dict then back to object properly
390
+ affinity_dict = api_client.sanitize_for_serialization(affinity)
391
+ return api_client._ApiClient__deserialize(affinity_dict, "V1Affinity")
392
+
393
+
291
394
  def _get_mode_handler(mode: str):
292
395
  return {
293
396
  mlrun.common.schemas.PreemptionModes.prevent: _handle_prevent_mode,
@@ -12,6 +12,6 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- from .base import ModelMonitoringApplicationBase
15
+ from .base import ExistingDataHandling, ModelMonitoringApplicationBase
16
16
  from .context import MonitoringApplicationContext
17
17
  from .results import ModelMonitoringApplicationMetric, ModelMonitoringApplicationResult