mlrun 1.10.0rc15__tar.gz → 1.10.0rc16__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 (395) hide show
  1. {mlrun-1.10.0rc15/mlrun.egg-info → mlrun-1.10.0rc16}/PKG-INFO +1 -1
  2. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/artifacts/llm_prompt.py +6 -0
  3. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/constants.py +1 -0
  4. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/workflow.py +2 -0
  5. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/db/base.py +6 -0
  6. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/db/httpdb.py +22 -0
  7. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/db/nopdb.py +5 -0
  8. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/launcher/local.py +13 -0
  9. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/projects/pipelines.py +44 -24
  10. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/projects/project.py +0 -1
  11. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/utils.py +0 -2
  12. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/serving/server.py +27 -27
  13. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/serving/states.py +112 -44
  14. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/serving/system_steps.py +84 -58
  15. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/helpers.py +46 -0
  16. mlrun-1.10.0rc16/mlrun/utils/version/version.json +4 -0
  17. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16/mlrun.egg-info}/PKG-INFO +1 -1
  18. mlrun-1.10.0rc15/mlrun/utils/version/version.json +0 -4
  19. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/LICENSE +0 -0
  20. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/MANIFEST.in +0 -0
  21. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/Makefile +0 -0
  22. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/README.md +0 -0
  23. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/dependencies.py +0 -0
  24. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/dev-requirements.txt +0 -0
  25. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/dockerfiles/mlrun-api/requirements.txt +0 -0
  26. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/archive.zip +0 -0
  27. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/function.py +0 -0
  28. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/handler.py +0 -0
  29. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/infile.txt +0 -0
  30. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/load-project.ipynb +0 -0
  31. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/mlrun_basics.ipynb +0 -0
  32. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/mlrun_dask.ipynb +0 -0
  33. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/mlrun_db.ipynb +0 -0
  34. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/mlrun_export_import.ipynb +0 -0
  35. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/mlrun_jobs.ipynb +0 -0
  36. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/mlrun_sparkk8s.ipynb +0 -0
  37. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/mlrun_vault.ipynb +0 -0
  38. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/model.bst +0 -0
  39. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/new-project.ipynb +0 -0
  40. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/nulltst.py +0 -0
  41. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/params.csv +0 -0
  42. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/remote-spark.ipynb +0 -0
  43. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/secrets.txt +0 -0
  44. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/spark-function.py +0 -0
  45. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/training.py +0 -0
  46. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/v2_model_server.ipynb +0 -0
  47. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/examples/xgb_serving.ipynb +0 -0
  48. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/extras-requirements.txt +0 -0
  49. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/__init__.py +0 -0
  50. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/__main__.py +0 -0
  51. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/alerts/__init__.py +0 -0
  52. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/alerts/alert.py +0 -0
  53. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/api/schemas/__init__.py +0 -0
  54. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/artifacts/__init__.py +0 -0
  55. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/artifacts/base.py +0 -0
  56. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/artifacts/dataset.py +0 -0
  57. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/artifacts/document.py +0 -0
  58. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/artifacts/helpers.py +0 -0
  59. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/artifacts/manager.py +0 -0
  60. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/artifacts/model.py +0 -0
  61. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/artifacts/plots.py +0 -0
  62. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/__init__.py +0 -0
  63. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/db/__init__.py +0 -0
  64. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/db/dialects.py +0 -0
  65. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/formatters/__init__.py +0 -0
  66. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/formatters/artifact.py +0 -0
  67. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/formatters/base.py +0 -0
  68. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/formatters/feature_set.py +0 -0
  69. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/formatters/function.py +0 -0
  70. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/formatters/model_endpoint.py +0 -0
  71. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/formatters/pipeline.py +0 -0
  72. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/formatters/project.py +0 -0
  73. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/formatters/run.py +0 -0
  74. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/helpers.py +0 -0
  75. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/model_monitoring/__init__.py +0 -0
  76. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/model_monitoring/helpers.py +0 -0
  77. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/runtimes/constants.py +0 -0
  78. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/__init__.py +0 -0
  79. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/alert.py +0 -0
  80. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/api_gateway.py +0 -0
  81. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/artifact.py +0 -0
  82. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/auth.py +0 -0
  83. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/background_task.py +0 -0
  84. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/client_spec.py +0 -0
  85. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/clusterization_spec.py +0 -0
  86. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/common.py +0 -0
  87. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/constants.py +0 -0
  88. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/datastore_profile.py +0 -0
  89. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/events.py +0 -0
  90. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/feature_store.py +0 -0
  91. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/frontend_spec.py +0 -0
  92. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/function.py +0 -0
  93. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/http.py +0 -0
  94. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/hub.py +0 -0
  95. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/k8s.py +0 -0
  96. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/memory_reports.py +0 -0
  97. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/model_monitoring/__init__.py +0 -0
  98. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/model_monitoring/constants.py +0 -0
  99. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/model_monitoring/functions.py +0 -0
  100. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/model_monitoring/grafana.py +0 -0
  101. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/model_monitoring/model_endpoints.py +0 -0
  102. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/notification.py +0 -0
  103. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/object.py +0 -0
  104. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/pagination.py +0 -0
  105. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/partition.py +0 -0
  106. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/pipeline.py +0 -0
  107. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/project.py +0 -0
  108. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/regex.py +0 -0
  109. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/runs.py +0 -0
  110. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/runtime_resource.py +0 -0
  111. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/schedule.py +0 -0
  112. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/secret.py +0 -0
  113. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/serving.py +0 -0
  114. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/schemas/tag.py +0 -0
  115. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/secrets.py +0 -0
  116. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/common/types.py +0 -0
  117. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/config.py +0 -0
  118. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/data_types/__init__.py +0 -0
  119. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/data_types/data_types.py +0 -0
  120. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/data_types/infer.py +0 -0
  121. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/data_types/spark.py +0 -0
  122. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/data_types/to_pandas.py +0 -0
  123. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/__init__.py +0 -0
  124. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/alibaba_oss.py +0 -0
  125. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/azure_blob.py +0 -0
  126. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/base.py +0 -0
  127. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/datastore.py +0 -0
  128. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/datastore_profile.py +0 -0
  129. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/dbfs_store.py +0 -0
  130. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/filestore.py +0 -0
  131. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/google_cloud_storage.py +0 -0
  132. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/hdfs.py +0 -0
  133. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/inmem.py +0 -0
  134. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/model_provider/__init__.py +0 -0
  135. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/model_provider/model_provider.py +0 -0
  136. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/model_provider/openai_provider.py +0 -0
  137. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/redis.py +0 -0
  138. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/remote_client.py +0 -0
  139. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/s3.py +0 -0
  140. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/snowflake_utils.py +0 -0
  141. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/sources.py +0 -0
  142. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/spark_udf.py +0 -0
  143. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/spark_utils.py +0 -0
  144. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/store_resources.py +0 -0
  145. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/storeytargets.py +0 -0
  146. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/targets.py +0 -0
  147. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/utils.py +0 -0
  148. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/v3io.py +0 -0
  149. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/vectorstore.py +0 -0
  150. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/wasbfs/__init__.py +0 -0
  151. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/datastore/wasbfs/fs.py +0 -0
  152. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/db/__init__.py +0 -0
  153. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/db/auth_utils.py +0 -0
  154. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/db/factory.py +0 -0
  155. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/errors.py +0 -0
  156. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/execution.py +0 -0
  157. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/__init__.py +0 -0
  158. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/api.py +0 -0
  159. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/common.py +0 -0
  160. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/feature_set.py +0 -0
  161. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/feature_vector.py +0 -0
  162. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/feature_vector_utils.py +0 -0
  163. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/ingestion.py +0 -0
  164. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/retrieval/__init__.py +0 -0
  165. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/retrieval/base.py +0 -0
  166. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/retrieval/dask_merger.py +0 -0
  167. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/retrieval/job.py +0 -0
  168. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/retrieval/local_merger.py +0 -0
  169. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/retrieval/spark_merger.py +0 -0
  170. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/retrieval/storey_merger.py +0 -0
  171. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/feature_store/steps.py +0 -0
  172. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/features.py +0 -0
  173. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/__init__.py +0 -0
  174. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_common/__init__.py +0 -0
  175. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_common/artifacts_library.py +0 -0
  176. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_common/mlrun_interface.py +0 -0
  177. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_common/model_handler.py +0 -0
  178. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_common/plan.py +0 -0
  179. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_common/producer.py +0 -0
  180. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_common/utils.py +0 -0
  181. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_dl_common/__init__.py +0 -0
  182. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_dl_common/loggers/__init__.py +0 -0
  183. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_dl_common/loggers/logger.py +0 -0
  184. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_dl_common/loggers/mlrun_logger.py +0 -0
  185. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_dl_common/loggers/tensorboard_logger.py +0 -0
  186. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_dl_common/model_handler.py +0 -0
  187. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_dl_common/utils.py +0 -0
  188. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/__init__.py +0 -0
  189. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/artifacts_library.py +0 -0
  190. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/loggers/__init__.py +0 -0
  191. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/loggers/logger.py +0 -0
  192. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/loggers/mlrun_logger.py +0 -0
  193. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/model_handler.py +0 -0
  194. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/pkl_model_server.py +0 -0
  195. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/plan.py +0 -0
  196. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/plans/__init__.py +0 -0
  197. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/plans/calibration_curve_plan.py +0 -0
  198. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/plans/confusion_matrix_plan.py +0 -0
  199. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/plans/dataset_plan.py +0 -0
  200. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/plans/feature_importance_plan.py +0 -0
  201. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/plans/roc_curve_plan.py +0 -0
  202. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/producer.py +0 -0
  203. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/_ml_common/utils.py +0 -0
  204. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/auto_mlrun/__init__.py +0 -0
  205. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/auto_mlrun/auto_mlrun.py +0 -0
  206. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/huggingface/__init__.py +0 -0
  207. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/huggingface/model_server.py +0 -0
  208. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/lgbm/__init__.py +0 -0
  209. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/lgbm/callbacks/__init__.py +0 -0
  210. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/lgbm/callbacks/callback.py +0 -0
  211. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/lgbm/callbacks/logging_callback.py +0 -0
  212. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/lgbm/callbacks/mlrun_logging_callback.py +0 -0
  213. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/lgbm/mlrun_interfaces/__init__.py +0 -0
  214. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/lgbm/mlrun_interfaces/booster_mlrun_interface.py +0 -0
  215. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/lgbm/mlrun_interfaces/mlrun_interface.py +0 -0
  216. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/lgbm/mlrun_interfaces/model_mlrun_interface.py +0 -0
  217. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/lgbm/model_handler.py +0 -0
  218. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/lgbm/model_server.py +0 -0
  219. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/lgbm/utils.py +0 -0
  220. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/onnx/__init__.py +0 -0
  221. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/onnx/dataset.py +0 -0
  222. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/onnx/mlrun_interface.py +0 -0
  223. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/onnx/model_handler.py +0 -0
  224. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/onnx/model_server.py +0 -0
  225. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/parallel_coordinates.py +0 -0
  226. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/pytorch/__init__.py +0 -0
  227. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/pytorch/callbacks/__init__.py +0 -0
  228. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/pytorch/callbacks/callback.py +0 -0
  229. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/pytorch/callbacks/logging_callback.py +0 -0
  230. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/pytorch/callbacks/mlrun_logging_callback.py +0 -0
  231. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/pytorch/callbacks/tensorboard_logging_callback.py +0 -0
  232. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/pytorch/callbacks_handler.py +0 -0
  233. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/pytorch/mlrun_interface.py +0 -0
  234. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/pytorch/model_handler.py +0 -0
  235. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/pytorch/model_server.py +0 -0
  236. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/pytorch/utils.py +0 -0
  237. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/sklearn/__init__.py +0 -0
  238. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/sklearn/estimator.py +0 -0
  239. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/sklearn/metric.py +0 -0
  240. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/sklearn/metrics_library.py +0 -0
  241. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/sklearn/mlrun_interface.py +0 -0
  242. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/sklearn/model_handler.py +0 -0
  243. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/sklearn/utils.py +0 -0
  244. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/tf_keras/__init__.py +0 -0
  245. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/tf_keras/callbacks/__init__.py +0 -0
  246. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/tf_keras/callbacks/logging_callback.py +0 -0
  247. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/tf_keras/callbacks/mlrun_logging_callback.py +0 -0
  248. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/tf_keras/callbacks/tensorboard_logging_callback.py +0 -0
  249. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/tf_keras/mlrun_interface.py +0 -0
  250. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/tf_keras/model_handler.py +0 -0
  251. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/tf_keras/model_server.py +0 -0
  252. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/tf_keras/utils.py +0 -0
  253. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/xgboost/__init__.py +0 -0
  254. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/xgboost/mlrun_interface.py +0 -0
  255. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/xgboost/model_handler.py +0 -0
  256. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/frameworks/xgboost/utils.py +0 -0
  257. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/k8s_utils.py +0 -0
  258. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/launcher/__init__.py +0 -0
  259. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/launcher/base.py +0 -0
  260. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/launcher/client.py +0 -0
  261. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/launcher/factory.py +0 -0
  262. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/launcher/remote.py +0 -0
  263. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/lists.py +0 -0
  264. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model.py +0 -0
  265. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/__init__.py +0 -0
  266. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/api.py +0 -0
  267. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/applications/__init__.py +0 -0
  268. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/applications/_application_steps.py +0 -0
  269. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/applications/base.py +0 -0
  270. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/applications/context.py +0 -0
  271. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/applications/evidently/__init__.py +0 -0
  272. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/applications/evidently/base.py +0 -0
  273. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/applications/histogram_data_drift.py +0 -0
  274. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/applications/results.py +0 -0
  275. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/controller.py +0 -0
  276. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/__init__.py +0 -0
  277. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/_schedules.py +0 -0
  278. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/_stats.py +0 -0
  279. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/tsdb/__init__.py +0 -0
  280. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/tsdb/base.py +0 -0
  281. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/tsdb/helpers.py +0 -0
  282. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/tsdb/tdengine/__init__.py +0 -0
  283. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/tsdb/tdengine/schemas.py +0 -0
  284. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/tsdb/tdengine/stream_graph_steps.py +0 -0
  285. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connection.py +0 -0
  286. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py +0 -0
  287. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/tsdb/v3io/__init__.py +0 -0
  288. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/tsdb/v3io/stream_graph_steps.py +0 -0
  289. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py +0 -0
  290. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/features_drift_table.py +0 -0
  291. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/helpers.py +0 -0
  292. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/metrics/__init__.py +0 -0
  293. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/metrics/histogram_distance.py +0 -0
  294. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/stream_processing.py +0 -0
  295. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/model_monitoring/writer.py +0 -0
  296. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/__init__.py +0 -0
  297. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/context_handler.py +0 -0
  298. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/errors.py +0 -0
  299. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/packager.py +0 -0
  300. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/packagers/__init__.py +0 -0
  301. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/packagers/default_packager.py +0 -0
  302. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/packagers/numpy_packagers.py +0 -0
  303. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/packagers/pandas_packagers.py +0 -0
  304. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/packagers/python_standard_library_packagers.py +0 -0
  305. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/packagers_manager.py +0 -0
  306. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/utils/__init__.py +0 -0
  307. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/utils/_archiver.py +0 -0
  308. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/utils/_formatter.py +0 -0
  309. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/utils/_pickler.py +0 -0
  310. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/utils/_supported_format.py +0 -0
  311. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/utils/log_hint_utils.py +0 -0
  312. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/package/utils/type_hint_utils.py +0 -0
  313. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/platforms/__init__.py +0 -0
  314. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/platforms/iguazio.py +0 -0
  315. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/projects/__init__.py +0 -0
  316. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/projects/operations.py +0 -0
  317. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/render.py +0 -0
  318. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/run.py +0 -0
  319. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/__init__.py +0 -0
  320. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/base.py +0 -0
  321. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/daskjob.py +0 -0
  322. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/databricks_job/__init__.py +0 -0
  323. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/databricks_job/databricks_cancel_task.py +0 -0
  324. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/databricks_job/databricks_runtime.py +0 -0
  325. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/databricks_job/databricks_wrapper.py +0 -0
  326. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/funcdoc.py +0 -0
  327. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/function_reference.py +0 -0
  328. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/generators.py +0 -0
  329. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/kubejob.py +0 -0
  330. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/local.py +0 -0
  331. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/mounts.py +0 -0
  332. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/mpijob/__init__.py +0 -0
  333. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/mpijob/abstract.py +0 -0
  334. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/mpijob/v1.py +0 -0
  335. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/nuclio/__init__.py +0 -0
  336. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/nuclio/api_gateway.py +0 -0
  337. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/nuclio/application/__init__.py +0 -0
  338. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/nuclio/application/application.py +0 -0
  339. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/nuclio/application/reverse_proxy.go +0 -0
  340. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/nuclio/function.py +0 -0
  341. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/nuclio/nuclio.py +0 -0
  342. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/nuclio/serving.py +0 -0
  343. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/pod.py +0 -0
  344. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/remotesparkjob.py +0 -0
  345. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/sparkjob/__init__.py +0 -0
  346. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/runtimes/sparkjob/spark3job.py +0 -0
  347. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/secrets.py +0 -0
  348. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/serving/__init__.py +0 -0
  349. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/serving/merger.py +0 -0
  350. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/serving/remote.py +0 -0
  351. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/serving/routers.py +0 -0
  352. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/serving/serving_wrapper.py +0 -0
  353. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/serving/utils.py +0 -0
  354. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/serving/v1_serving.py +0 -0
  355. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/serving/v2_serving.py +0 -0
  356. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/track/__init__.py +0 -0
  357. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/track/tracker.py +0 -0
  358. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/track/tracker_manager.py +0 -0
  359. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/track/trackers/__init__.py +0 -0
  360. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/track/trackers/mlflow_tracker.py +0 -0
  361. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/__init__.py +0 -0
  362. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/async_http.py +0 -0
  363. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/azure_vault.py +0 -0
  364. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/clones.py +0 -0
  365. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/condition_evaluator.py +0 -0
  366. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/http.py +0 -0
  367. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/logger.py +0 -0
  368. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/notifications/__init__.py +0 -0
  369. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/notifications/notification/__init__.py +0 -0
  370. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/notifications/notification/base.py +0 -0
  371. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/notifications/notification/console.py +0 -0
  372. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/notifications/notification/git.py +0 -0
  373. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/notifications/notification/ipython.py +0 -0
  374. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/notifications/notification/mail.py +0 -0
  375. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/notifications/notification/slack.py +0 -0
  376. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/notifications/notification/webhook.py +0 -0
  377. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/notifications/notification_pusher.py +0 -0
  378. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/regex.py +0 -0
  379. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/retryer.py +0 -0
  380. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/singleton.py +0 -0
  381. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/v3io_clients.py +0 -0
  382. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/vault.py +0 -0
  383. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/version/__init__.py +0 -0
  384. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun/utils/version/version.py +0 -0
  385. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun.egg-info/SOURCES.txt +0 -0
  386. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun.egg-info/dependency_links.txt +0 -0
  387. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun.egg-info/entry_points.txt +0 -0
  388. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun.egg-info/not-zip-safe +0 -0
  389. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun.egg-info/requires.txt +0 -0
  390. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/mlrun.egg-info/top_level.txt +0 -0
  391. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/packages.py +0 -0
  392. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/pyproject.toml +0 -0
  393. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/requirements.txt +0 -0
  394. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/setup.cfg +0 -0
  395. {mlrun-1.10.0rc15 → mlrun-1.10.0rc16}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mlrun
3
- Version: 1.10.0rc15
3
+ Version: 1.10.0rc16
4
4
  Summary: Tracking and config of machine learning runs
5
5
  Home-page: https://github.com/mlrun/mlrun
6
6
  Author: Yaron Haviv
@@ -13,6 +13,7 @@
13
13
  # limitations under the License.
14
14
  import json
15
15
  import tempfile
16
+ from collections import defaultdict
16
17
  from typing import Optional, Union
17
18
 
18
19
  import mlrun
@@ -253,3 +254,8 @@ class LLMPromptArtifact(Artifact):
253
254
  self.spec.prompt_template = None
254
255
  self._src_is_temp = True
255
256
  super().before_log()
257
+
258
+
259
+ class PlaceholderDefaultDict(defaultdict):
260
+ def __missing__(self, key):
261
+ return f"{{{key}}}"
@@ -83,6 +83,7 @@ class MLRunInternalLabels:
83
83
  mlrun_type = "mlrun__type"
84
84
  original_workflow_id = "original-workflow-id"
85
85
  workflow_id = "workflow-id"
86
+ retrying = "retrying"
86
87
 
87
88
  owner = "owner"
88
89
  v3io_user = "v3io_user"
@@ -51,6 +51,8 @@ class RerunWorkflowRequest(pydantic.v1.BaseModel):
51
51
  run_id: typing.Optional[str] = None
52
52
  notifications: typing.Optional[list[Notification]] = None
53
53
  workflow_runner_node_selector: typing.Optional[dict[str, str]] = None
54
+ original_workflow_runner_uid: typing.Optional[str] = None
55
+ original_workflow_name: typing.Optional[str] = None
54
56
 
55
57
 
56
58
  class WorkflowResponse(pydantic.v1.BaseModel):
@@ -55,6 +55,12 @@ class RunDBInterface(ABC):
55
55
  def update_run(self, updates: dict, uid, project="", iter=0):
56
56
  pass
57
57
 
58
+ @abstractmethod
59
+ def set_run_retrying_status(
60
+ self, project: str, name: str, run_id: str, retrying: bool
61
+ ):
62
+ pass
63
+
58
64
  @abstractmethod
59
65
  def abort_run(self, uid, project="", iter=0, timeout=45, status_text=""):
60
66
  pass
@@ -4741,6 +4741,28 @@ class HTTPRunDB(RunDBInterface):
4741
4741
  )
4742
4742
  return mlrun.common.schemas.GetWorkflowResponse(**response.json())
4743
4743
 
4744
+ def set_run_retrying_status(
4745
+ self, project: str, name: str, run_id: str, retrying: bool = False
4746
+ ):
4747
+ """
4748
+ Toggle the “retrying” label on a workflow-runner run.
4749
+
4750
+ This will POST to the workflows endpoint to either add or remove the
4751
+ `retrying` flag on a specific run, which prevents parallel retries.
4752
+
4753
+ :param project: The project name under which the workflow is defined.
4754
+ :param name: The workflow name (as in the URL path).
4755
+ :param run_id: The UID of the workflow-runner run to update.
4756
+ :param retrying: True to add the `retrying` label, False to remove it.
4757
+
4758
+ :raises MLRunHTTPError: If the HTTP request fails or returns an error status.
4759
+ """
4760
+ path = f"projects/{project}/workflows/{name}/runs/{run_id}/set-retry-status"
4761
+ params = {"retrying": retrying}
4762
+ self.api_call(
4763
+ "POST", path, f"set retrying on {project}/{run_id}", params=params
4764
+ )
4765
+
4744
4766
  def load_project(
4745
4767
  self,
4746
4768
  name: str,
@@ -72,6 +72,11 @@ class NopDB(RunDBInterface):
72
72
  def update_run(self, updates: dict, uid, project="", iter=0):
73
73
  pass
74
74
 
75
+ def set_run_retrying_status(
76
+ self, project: str, name: str, run_id: str, retrying: bool
77
+ ):
78
+ pass
79
+
75
80
  def abort_run(self, uid, project="", iter=0, timeout=45, status_text=""):
76
81
  pass
77
82
 
@@ -276,6 +276,19 @@ class ClientLocalLauncher(launcher.ClientBaseLauncher):
276
276
  args = sp[1:]
277
277
  return command, args
278
278
 
279
+ def _validate_run(
280
+ self,
281
+ runtime: "mlrun.runtimes.BaseRuntime",
282
+ run: "mlrun.run.RunObject",
283
+ ):
284
+ super()._validate_run(runtime, run)
285
+ if self._is_run_local and run.spec.retry.count:
286
+ logger.warning(
287
+ "Retry is not supported for local runs, ignoring retry settings",
288
+ retry=run.spec.retry.to_dict(),
289
+ )
290
+ run.spec.retry.count = 0
291
+
279
292
  def _push_notifications(
280
293
  self, runobj: "mlrun.run.RunObject", runtime: "mlrun.runtimes.BaseRuntime"
281
294
  ):
@@ -1072,7 +1072,11 @@ def github_webhook(request):
1072
1072
 
1073
1073
 
1074
1074
  def rerun_workflow(
1075
- context: mlrun.execution.MLClientCtx, run_uid: str, project_name: str
1075
+ context: mlrun.execution.MLClientCtx,
1076
+ run_uid: str,
1077
+ project_name: str,
1078
+ original_runner_uid: str,
1079
+ original_workflow_name: str,
1076
1080
  ):
1077
1081
  """
1078
1082
  Re-run a workflow by retrying a previously failed KFP pipeline.
@@ -1080,8 +1084,11 @@ def rerun_workflow(
1080
1084
  :param context: MLRun context.
1081
1085
  :param run_uid: The run UID of the original workflow to retry.
1082
1086
  :param project_name: The project name.
1087
+ :param original_runner_uid: The original workflow runner UID.
1088
+ :param original_workflow_name: The original workflow name.
1083
1089
  """
1084
1090
  db = mlrun.get_run_db()
1091
+ new_pipeline_id = None
1085
1092
 
1086
1093
  try:
1087
1094
  # Invoke the KFP retry endpoint (direct-submit mode)
@@ -1096,6 +1103,24 @@ def rerun_workflow(
1096
1103
  rerun_of_workflow=run_uid,
1097
1104
  )
1098
1105
 
1106
+ # Enqueue "running" notifications server-side for this RerunRunner run
1107
+ db.push_run_notifications(context.uid, project_name)
1108
+
1109
+ context.set_label(
1110
+ mlrun_constants.MLRunInternalLabels.workflow_id, new_pipeline_id
1111
+ )
1112
+ context.update_run()
1113
+
1114
+ context.log_result("workflow_id", new_pipeline_id)
1115
+
1116
+ pipeline = wait_for_pipeline_completion(
1117
+ new_pipeline_id,
1118
+ project=project_name,
1119
+ )
1120
+
1121
+ final_state = pipeline["run"]["status"]
1122
+ context.log_result("workflow_state", final_state, commit=True)
1123
+
1099
1124
  except mlrun.errors.MLRunHTTPError as http_exc:
1100
1125
  logger.error(
1101
1126
  "Failed calling KFP retry API",
@@ -1104,33 +1129,28 @@ def rerun_workflow(
1104
1129
  )
1105
1130
  raise
1106
1131
 
1107
- # Enqueue "running" notifications server-side for this RerunRunner run
1108
- db.push_run_notifications(context.uid, project_name)
1109
-
1110
- context.set_label(mlrun_constants.MLRunInternalLabels.workflow_id, new_pipeline_id)
1111
- context.update_run()
1112
-
1113
- context.log_result("workflow_id", new_pipeline_id)
1114
-
1115
- try:
1116
- pipeline = wait_for_pipeline_completion(
1117
- new_pipeline_id,
1118
- project=project_name,
1119
- )
1120
1132
  except Exception as exc:
1121
- mlrun.utils.logger.error(
1122
- "Failed waiting for workflow completion",
1133
+ logger.error(
1134
+ "Error during rerun_workflow execution",
1135
+ error=err_to_str(exc),
1123
1136
  rerun_pipeline_id=new_pipeline_id,
1124
- exc=err_to_str(exc),
1125
1137
  )
1126
- else:
1127
- final_state = pipeline["run"]["status"]
1128
- context.log_result("workflow_state", final_state, commit=True)
1138
+ raise
1129
1139
 
1130
- if final_state != mlrun_pipelines.common.models.RunStatuses.succeeded:
1131
- raise mlrun.errors.MLRunRuntimeError(
1132
- f"Pipeline retry of {run_uid} finished in state={final_state}"
1133
- )
1140
+ finally:
1141
+ # Once the rerun has finished, clear the “retrying” label on the original runner
1142
+ # so that subsequent retry requests can acquire the lock again.
1143
+ db.set_run_retrying_status(
1144
+ project=project_name,
1145
+ name=original_workflow_name,
1146
+ run_id=original_runner_uid,
1147
+ retrying=False,
1148
+ )
1149
+
1150
+ if final_state != mlrun_pipelines.common.models.RunStatuses.succeeded:
1151
+ raise mlrun.errors.MLRunRuntimeError(
1152
+ f"Pipeline retry of {run_uid} finished in state={final_state}"
1153
+ )
1134
1154
 
1135
1155
 
1136
1156
  def load_and_run(context, *args, **kwargs):
@@ -5073,7 +5073,6 @@ class MlrunProject(ModelObj):
5073
5073
  :param states: List only runs whose state is one of the provided states.
5074
5074
  :param sort: Whether to sort the result according to their start time. Otherwise, results will be
5075
5075
  returned by their internal order in the DB (order will not be guaranteed).
5076
- :param last: Deprecated - currently not used (will be removed in 1.10.0).
5077
5076
  :param iter: If ``True`` return runs from all iterations. Otherwise, return only runs whose ``iter`` is 0.
5078
5077
  :param start_time_from: Filter by run start time in ``[start_time_from, start_time_to]``.
5079
5078
  :param start_time_to: Filter by run start time in ``[start_time_from, start_time_to]``.
@@ -445,8 +445,6 @@ def enrich_run_labels(
445
445
  labels_enrichment = {
446
446
  mlrun_constants.MLRunInternalLabels.owner: os.environ.get("V3IO_USERNAME")
447
447
  or getpass.getuser(),
448
- # TODO: remove this in 1.10.0
449
- mlrun_constants.MLRunInternalLabels.v3io_user: os.environ.get("V3IO_USERNAME"),
450
448
  }
451
449
 
452
450
  # Resolve which label keys to enrich
@@ -350,33 +350,33 @@ def add_error_raiser_step(
350
350
  monitored_steps_raisers = {}
351
351
  user_steps = list(graph.steps.values())
352
352
  for monitored_step in monitored_steps.values():
353
- if monitored_step.raise_exception:
354
- error_step = graph.add_step(
355
- class_name="mlrun.serving.states.ModelRunnerErrorRaiser",
356
- name=f"{monitored_step.name}_error_raise",
357
- after=monitored_step.name,
358
- full_event=True,
359
- raise_exception=monitored_step.raise_exception,
360
- models_names=list(monitored_step.class_args["models"].keys()),
361
- model_endpoint_creation_strategy=mlrun.common.schemas.ModelEndpointCreationStrategy.SKIP,
362
- )
363
- if monitored_step.responder:
364
- monitored_step.responder = False
365
- error_step.respond()
366
- monitored_steps_raisers[monitored_step.name] = error_step.name
367
- error_step.on_error = monitored_step.on_error
368
- for step in user_steps:
369
- if step.after:
370
- if isinstance(step.after, list):
371
- for i in range(len(step.after)):
372
- if step.after[i] in monitored_steps_raisers:
373
- step.after[i] = monitored_steps_raisers[step.after[i]]
374
- else:
375
- if (
376
- isinstance(step.after, str)
377
- and step.after in monitored_steps_raisers
378
- ):
379
- step.after = monitored_steps_raisers[step.after]
353
+ error_step = graph.add_step(
354
+ class_name="mlrun.serving.states.ModelRunnerErrorRaiser",
355
+ name=f"{monitored_step.name}_error_raise",
356
+ after=monitored_step.name,
357
+ full_event=True,
358
+ raise_exception=monitored_step.raise_exception,
359
+ models_names=list(monitored_step.class_args["models"].keys()),
360
+ model_endpoint_creation_strategy=mlrun.common.schemas.ModelEndpointCreationStrategy.SKIP,
361
+ )
362
+ if monitored_step.responder:
363
+ monitored_step.responder = False
364
+ error_step.respond()
365
+ monitored_steps_raisers[monitored_step.name] = error_step.name
366
+ error_step.on_error = monitored_step.on_error
367
+ if monitored_steps_raisers:
368
+ for step in user_steps:
369
+ if step.after:
370
+ if isinstance(step.after, list):
371
+ for i in range(len(step.after)):
372
+ if step.after[i] in monitored_steps_raisers:
373
+ step.after[i] = monitored_steps_raisers[step.after[i]]
374
+ else:
375
+ if (
376
+ isinstance(step.after, str)
377
+ and step.after in monitored_steps_raisers
378
+ ):
379
+ step.after = monitored_steps_raisers[step.after]
380
380
  return graph
381
381
 
382
382
 
@@ -35,7 +35,7 @@ from storey import ParallelExecutionMechanisms
35
35
  import mlrun
36
36
  import mlrun.artifacts
37
37
  import mlrun.common.schemas as schemas
38
- from mlrun.artifacts.llm_prompt import LLMPromptArtifact
38
+ from mlrun.artifacts.llm_prompt import LLMPromptArtifact, PlaceholderDefaultDict
39
39
  from mlrun.artifacts.model import ModelArtifact
40
40
  from mlrun.datastore.datastore_profile import (
41
41
  DatastoreProfileKafkaSource,
@@ -45,7 +45,7 @@ from mlrun.datastore.datastore_profile import (
45
45
  )
46
46
  from mlrun.datastore.model_provider.model_provider import ModelProvider
47
47
  from mlrun.datastore.storeytargets import KafkaStoreyTarget, StreamStoreyTarget
48
- from mlrun.utils import logger
48
+ from mlrun.utils import get_data_from_path, logger, split_path
49
49
 
50
50
  from ..config import config
51
51
  from ..datastore import get_stream_pusher
@@ -501,10 +501,15 @@ class BaseStep(ModelObj):
501
501
  def verify_model_runner_step(
502
502
  self,
503
503
  step: "ModelRunnerStep",
504
+ step_model_endpoints_names: Optional[list[str]] = None,
505
+ verify_shared_models: bool = True,
504
506
  ):
505
507
  """
506
508
  Verify ModelRunnerStep, can be part of Flow graph and models can not repeat in graph.
507
- :param step: ModelRunnerStep to verify
509
+ :param step: ModelRunnerStep to verify
510
+ :param step_model_endpoints_names: List of model endpoints names that are in the step.
511
+ if provided will ignore step models and verify only the models on list.
512
+ :param verify_shared_models: If True, verify that shared models are defined in the graph.
508
513
  """
509
514
 
510
515
  if not isinstance(step, ModelRunnerStep):
@@ -516,7 +521,7 @@ class BaseStep(ModelObj):
516
521
  raise GraphError(
517
522
  "ModelRunnerStep can be added to 'Flow' topology graph only"
518
523
  )
519
- step_model_endpoints_names = list(
524
+ step_model_endpoints_names = step_model_endpoints_names or list(
520
525
  step.class_args.get(schemas.ModelRunnerStepData.MODELS, {}).keys()
521
526
  )
522
527
  # Get all model_endpoints names that are in both lists
@@ -530,8 +535,9 @@ class BaseStep(ModelObj):
530
535
  f"The graph already contains the model endpoints named - {common_endpoints_names}."
531
536
  )
532
537
 
533
- # Check if shared models are defined in the graph
534
- self._verify_shared_models(root, step, step_model_endpoints_names)
538
+ if verify_shared_models:
539
+ # Check if shared models are defined in the graph
540
+ self._verify_shared_models(root, step, step_model_endpoints_names)
535
541
  # Update model endpoints names in the root step
536
542
  root.update_model_endpoints_names(step_model_endpoints_names)
537
543
 
@@ -569,7 +575,9 @@ class BaseStep(ModelObj):
569
575
  llm_artifact, _ = mlrun.store_manager.get_store_artifact(
570
576
  model_artifact_uri
571
577
  )
572
- model_artifact_uri = llm_artifact.spec.parent_uri
578
+ model_artifact_uri = mlrun.utils.remove_tag_from_artifact_uri(
579
+ llm_artifact.spec.parent_uri
580
+ )
573
581
  actual_shared_name = root.get_shared_model_name_by_artifact_uri(
574
582
  model_artifact_uri
575
583
  )
@@ -1148,11 +1156,11 @@ class Model(storey.ParallelExecutionRunnable, ModelObj):
1148
1156
  def init(self):
1149
1157
  self.load()
1150
1158
 
1151
- def predict(self, body: Any) -> Any:
1159
+ def predict(self, body: Any, **kwargs) -> Any:
1152
1160
  """Override to implement prediction logic. If the logic requires asyncio, override predict_async() instead."""
1153
1161
  return body
1154
1162
 
1155
- async def predict_async(self, body: Any) -> Any:
1163
+ async def predict_async(self, body: Any, **kwargs) -> Any:
1156
1164
  """Override to implement prediction logic if the logic requires asyncio."""
1157
1165
  return body
1158
1166
 
@@ -1197,11 +1205,18 @@ class Model(storey.ParallelExecutionRunnable, ModelObj):
1197
1205
 
1198
1206
 
1199
1207
  class LLModel(Model):
1200
- def __init__(self, name: str, **kwargs):
1208
+ def __init__(
1209
+ self, name: str, input_path: Optional[Union[str, list[str]]], **kwargs
1210
+ ):
1201
1211
  super().__init__(name, **kwargs)
1212
+ self._input_path = split_path(input_path)
1202
1213
 
1203
1214
  def predict(
1204
- self, body: Any, messages: list[dict], model_configuration: dict
1215
+ self,
1216
+ body: Any,
1217
+ messages: Optional[list[dict]] = None,
1218
+ model_configuration: Optional[dict] = None,
1219
+ **kwargs,
1205
1220
  ) -> Any:
1206
1221
  if isinstance(
1207
1222
  self.invocation_artifact, mlrun.artifacts.LLMPromptArtifact
@@ -1214,7 +1229,11 @@ class LLModel(Model):
1214
1229
  return body
1215
1230
 
1216
1231
  async def predict_async(
1217
- self, body: Any, messages: list[dict], model_configuration: dict
1232
+ self,
1233
+ body: Any,
1234
+ messages: Optional[list[dict]] = None,
1235
+ model_configuration: Optional[dict] = None,
1236
+ **kwargs,
1218
1237
  ) -> Any:
1219
1238
  if isinstance(
1220
1239
  self.invocation_artifact, mlrun.artifacts.LLMPromptArtifact
@@ -1262,12 +1281,34 @@ class LLModel(Model):
1262
1281
  return None, None
1263
1282
  prompt_legend = llm_prompt_artifact.spec.prompt_legend
1264
1283
  prompt_template = deepcopy(llm_prompt_artifact.read_prompt())
1265
- kwargs = {
1266
- place_holder: body.get(body_map["field"])
1267
- for place_holder, body_map in prompt_legend.items()
1268
- }
1269
- for d in prompt_template:
1270
- d["content"] = d["content"].format(**kwargs)
1284
+ input_data = copy(get_data_from_path(self._input_path, body))
1285
+ if isinstance(input_data, dict):
1286
+ kwargs = (
1287
+ {
1288
+ place_holder: input_data.get(body_map["field"])
1289
+ for place_holder, body_map in prompt_legend.items()
1290
+ }
1291
+ if prompt_legend
1292
+ else {}
1293
+ )
1294
+ input_data.update(kwargs)
1295
+ default_place_holders = PlaceholderDefaultDict(lambda: None, input_data)
1296
+ for message in prompt_template:
1297
+ try:
1298
+ message["content"] = message["content"].format(**input_data)
1299
+ except KeyError as e:
1300
+ logger.warning(
1301
+ "Input data was missing a placeholder, placeholder stay unformatted",
1302
+ key_error=e,
1303
+ )
1304
+ message["content"] = message["content"].format_map(
1305
+ default_place_holders
1306
+ )
1307
+ else:
1308
+ logger.warning(
1309
+ f"Expected input data to be a dict, but received input data from type {type(input_data)} prompt "
1310
+ f"template stay unformatted",
1311
+ )
1271
1312
  return prompt_template, llm_prompt_artifact.spec.model_configuration
1272
1313
 
1273
1314
 
@@ -1567,11 +1608,27 @@ class ModelRunnerStep(MonitoredStep):
1567
1608
  :param outputs: list of the model outputs (e.g. labels) ,if provided will override the outputs
1568
1609
  that been configured in the model artifact, please note that those outputs need to
1569
1610
  be equal to the model_class predict method outputs (length, and order)
1570
- :param input_path: input path inside the user event, expect scopes to be defined by dot notation
1571
- (e.g "inputs.my_model_inputs"). expects list or dictionary type object in path.
1572
- :param result_path: result path inside the user output event, expect scopes to be defined by dot
1573
- notation (e.g "outputs.my_model_outputs") expects list or dictionary type object
1574
- in path.
1611
+ :param input_path: when specified selects the key/path in the event to use as model monitoring inputs
1612
+ this require that the event body will behave like a dict, expects scopes to be
1613
+ defined by dot notation (e.g "data.d").
1614
+ examples: input_path="data.b"
1615
+ event: {"data":{"a": 5, "b": 7}}, means monitored body will be 7.
1616
+ event: {"data":{"a": [5, 9], "b": [7, 8]}} means monitored body will be [7,8].
1617
+ event: {"data":{"a": "extra_data", "b": {"f0": [1, 2]}}} means monitored body will
1618
+ be {"f0": [1, 2]}.
1619
+ if a ``list`` or ``list of lists`` is provided, it must follow the order and
1620
+ size defined by the input schema.
1621
+ :param result_path: when specified selects the key/path in the output event to use as model monitoring
1622
+ outputs this require that the output event body will behave like a dict,
1623
+ expects scopes to be defined by dot notation (e.g "data.d").
1624
+ examples: result_path="out.b"
1625
+ event: {"out":{"a": 5, "b": 7}}, means monitored body will be 7.
1626
+ event: {"out":{"a": [5, 9], "b": [7, 8]}} means monitored body will be [7,8]
1627
+ event: {"out":{"a": "extra_data", "b": {"f0": [1, 2]}}} means monitored body will
1628
+ be {"f0": [1, 2]}
1629
+ if a ``list`` or ``list of lists`` is provided, it must follow the order and
1630
+ size defined by the output schema.
1631
+
1575
1632
  :param override: bool allow override existing model on the current ModelRunnerStep.
1576
1633
  :param model_parameters: Parameters for model instantiation
1577
1634
  """
@@ -1590,7 +1647,7 @@ class ModelRunnerStep(MonitoredStep):
1590
1647
  ):
1591
1648
  try:
1592
1649
  model_artifact, _ = mlrun.store_manager.get_store_artifact(
1593
- model_artifact
1650
+ mlrun.utils.remove_tag_from_artifact_uri(model_artifact)
1594
1651
  )
1595
1652
  except mlrun.errors.MLRunNotFoundError:
1596
1653
  raise mlrun.errors.MLRunInvalidArgumentError("Artifact not found.")
@@ -1602,6 +1659,11 @@ class ModelRunnerStep(MonitoredStep):
1602
1659
  if isinstance(model_artifact, mlrun.artifacts.Artifact)
1603
1660
  else model_artifact
1604
1661
  )
1662
+ model_artifact = (
1663
+ mlrun.utils.remove_tag_from_artifact_uri(model_artifact)
1664
+ if model_artifact
1665
+ else None
1666
+ )
1605
1667
  model_parameters["artifact_uri"] = model_parameters.get(
1606
1668
  "artifact_uri", model_artifact
1607
1669
  )
@@ -1617,6 +1679,11 @@ class ModelRunnerStep(MonitoredStep):
1617
1679
  raise mlrun.errors.MLRunInvalidArgumentError(
1618
1680
  f"Model with name {endpoint_name} already exists in this ModelRunnerStep."
1619
1681
  )
1682
+ root = self._extract_root_step()
1683
+ if isinstance(root, RootFlowStep):
1684
+ self.verify_model_runner_step(
1685
+ self, [endpoint_name], verify_shared_models=False
1686
+ )
1620
1687
  ParallelExecutionMechanisms.validate(execution_mechanism)
1621
1688
  self.class_args[schemas.ModelRunnerStepData.MODEL_TO_EXECUTION_MECHANISM] = (
1622
1689
  self.class_args.get(
@@ -1693,15 +1760,6 @@ class ModelRunnerStep(MonitoredStep):
1693
1760
  )
1694
1761
  return output_schema
1695
1762
 
1696
- @staticmethod
1697
- def _split_path(path: str) -> Union[str, list[str], None]:
1698
- if path is not None:
1699
- parsed_path = path.split(".")
1700
- if len(parsed_path) == 1:
1701
- parsed_path = parsed_path[0]
1702
- return parsed_path
1703
- return path
1704
-
1705
1763
  def _calculate_monitoring_data(self) -> dict[str, dict[str, str]]:
1706
1764
  monitoring_data = deepcopy(
1707
1765
  self.class_args.get(
@@ -1726,15 +1784,11 @@ class ModelRunnerStep(MonitoredStep):
1726
1784
  ][model][schemas.MonitoringData.OUTPUTS] = monitoring_data[model][
1727
1785
  schemas.MonitoringData.OUTPUTS
1728
1786
  ]
1729
- monitoring_data[model][schemas.MonitoringData.INPUT_PATH] = (
1730
- self._split_path(
1731
- monitoring_data[model][schemas.MonitoringData.INPUT_PATH]
1732
- )
1787
+ monitoring_data[model][schemas.MonitoringData.INPUT_PATH] = split_path(
1788
+ monitoring_data[model][schemas.MonitoringData.INPUT_PATH]
1733
1789
  )
1734
- monitoring_data[model][schemas.MonitoringData.RESULT_PATH] = (
1735
- self._split_path(
1736
- monitoring_data[model][schemas.MonitoringData.RESULT_PATH]
1737
- )
1790
+ monitoring_data[model][schemas.MonitoringData.RESULT_PATH] = split_path(
1791
+ monitoring_data[model][schemas.MonitoringData.RESULT_PATH]
1738
1792
  )
1739
1793
  return monitoring_data
1740
1794
 
@@ -1752,6 +1806,13 @@ class ModelRunnerStep(MonitoredStep):
1752
1806
  model_selector = get_class(model_selector, namespace)()
1753
1807
  model_objects = []
1754
1808
  for model, model_params in models.values():
1809
+ model_params[schemas.MonitoringData.INPUT_PATH] = (
1810
+ self.class_args.get(
1811
+ mlrun.common.schemas.ModelRunnerStepData.MONITORING_DATA, {}
1812
+ )
1813
+ .get(model_params.get("name"), {})
1814
+ .get(schemas.MonitoringData.INPUT_PATH)
1815
+ )
1755
1816
  model = get_class(model, namespace).from_dict(
1756
1817
  model_params, init_with_params=True
1757
1818
  )
@@ -2401,7 +2462,13 @@ class FlowStep(BaseStep):
2401
2462
  if not step.before and not any(
2402
2463
  [step.name in other_step.after for other_step in self._steps.values()]
2403
2464
  ):
2404
- step.responder = True
2465
+ if any(
2466
+ [
2467
+ getattr(step_in_graph, "responder", False)
2468
+ for step_in_graph in self._steps.values()
2469
+ ]
2470
+ ):
2471
+ step.responder = True
2405
2472
  return
2406
2473
 
2407
2474
  for step_name in step.before:
@@ -2484,7 +2551,7 @@ class RootFlowStep(FlowStep):
2484
2551
  name: str,
2485
2552
  model_class: Union[str, Model],
2486
2553
  execution_mechanism: Union[str, ParallelExecutionMechanisms],
2487
- model_artifact: Optional[Union[str, ModelArtifact]],
2554
+ model_artifact: Union[str, ModelArtifact],
2488
2555
  override: bool = False,
2489
2556
  **model_parameters,
2490
2557
  ) -> None:
@@ -2536,6 +2603,7 @@ class RootFlowStep(FlowStep):
2536
2603
  if isinstance(model_artifact, mlrun.artifacts.Artifact)
2537
2604
  else model_artifact
2538
2605
  )
2606
+ model_artifact = mlrun.utils.remove_tag_from_artifact_uri(model_artifact)
2539
2607
  model_parameters["artifact_uri"] = model_parameters.get(
2540
2608
  "artifact_uri", model_artifact
2541
2609
  )
@@ -2923,7 +2991,7 @@ def params_to_step(
2923
2991
  step = QueueStep(name, **class_args)
2924
2992
 
2925
2993
  elif class_name and hasattr(class_name, "to_dict"):
2926
- struct = class_name.to_dict()
2994
+ struct = deepcopy(class_name.to_dict())
2927
2995
  kind = struct.get("kind", StepKinds.task)
2928
2996
  name = (
2929
2997
  name