mlrun 1.10.0rc10__tar.gz → 1.10.0rc11__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 (393) hide show
  1. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/Makefile +5 -2
  2. {mlrun-1.10.0rc10/mlrun.egg-info → mlrun-1.10.0rc11}/PKG-INFO +13 -6
  3. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/dependencies.py +2 -0
  4. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/dev-requirements.txt +3 -1
  5. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/dockerfiles/mlrun-api/requirements.txt +1 -1
  6. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/extras-requirements.txt +1 -0
  7. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/artifacts/manager.py +1 -1
  8. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/constants.py +11 -0
  9. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/model_monitoring/__init__.py +2 -0
  10. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/model_monitoring/functions.py +2 -0
  11. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/model_monitoring/model_endpoints.py +19 -1
  12. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/serving.py +1 -0
  13. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/workflow.py +3 -2
  14. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/datastore/azure_blob.py +1 -1
  15. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/datastore/base.py +4 -2
  16. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/datastore/datastore.py +46 -14
  17. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/datastore/google_cloud_storage.py +1 -1
  18. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/datastore/s3.py +16 -5
  19. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/datastore/sources.py +2 -2
  20. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/datastore/targets.py +2 -2
  21. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/db/__init__.py +0 -1
  22. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/db/base.py +12 -0
  23. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/db/httpdb.py +35 -0
  24. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/db/nopdb.py +10 -0
  25. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/execution.py +12 -0
  26. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/tf_keras/mlrun_interface.py +7 -18
  27. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/launcher/base.py +1 -0
  28. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/launcher/client.py +1 -0
  29. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/launcher/local.py +4 -0
  30. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model.py +15 -4
  31. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/applications/base.py +74 -56
  32. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/db/tsdb/base.py +52 -19
  33. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py +179 -11
  34. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py +26 -11
  35. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/helpers.py +48 -0
  36. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/projects/pipelines.py +12 -3
  37. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/projects/project.py +30 -0
  38. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/daskjob.py +2 -0
  39. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/kubejob.py +4 -0
  40. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/mpijob/abstract.py +2 -0
  41. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/mpijob/v1.py +2 -0
  42. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/nuclio/function.py +2 -0
  43. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/nuclio/serving.py +59 -0
  44. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/pod.py +3 -0
  45. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/remotesparkjob.py +2 -0
  46. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/sparkjob/spark3job.py +2 -0
  47. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/serving/server.py +97 -3
  48. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/serving/states.py +146 -38
  49. mlrun-1.10.0rc11/mlrun/utils/version/version.json +4 -0
  50. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11/mlrun.egg-info}/PKG-INFO +13 -6
  51. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun.egg-info/SOURCES.txt +0 -2
  52. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun.egg-info/requires.txt +14 -5
  53. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/requirements.txt +3 -3
  54. mlrun-1.10.0rc10/mlrun/db/sql_types.py +0 -160
  55. mlrun-1.10.0rc10/mlrun/utils/db.py +0 -71
  56. mlrun-1.10.0rc10/mlrun/utils/version/version.json +0 -4
  57. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/LICENSE +0 -0
  58. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/MANIFEST.in +0 -0
  59. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/README.md +0 -0
  60. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/examples/archive.zip +0 -0
  61. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/examples/function.py +0 -0
  62. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/examples/handler.py +0 -0
  63. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/examples/infile.txt +0 -0
  64. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/examples/load-project.ipynb +0 -0
  65. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/examples/mlrun_basics.ipynb +0 -0
  66. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/examples/mlrun_dask.ipynb +0 -0
  67. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/examples/mlrun_db.ipynb +0 -0
  68. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/examples/mlrun_export_import.ipynb +0 -0
  69. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/examples/mlrun_jobs.ipynb +0 -0
  70. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/examples/mlrun_sparkk8s.ipynb +0 -0
  71. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/examples/mlrun_vault.ipynb +0 -0
  72. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/examples/model.bst +0 -0
  73. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/examples/new-project.ipynb +0 -0
  74. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/examples/nulltst.py +0 -0
  75. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/examples/params.csv +0 -0
  76. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/examples/remote-spark.ipynb +0 -0
  77. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/examples/secrets.txt +0 -0
  78. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/examples/spark-function.py +0 -0
  79. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/examples/training.py +0 -0
  80. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/examples/v2_model_server.ipynb +0 -0
  81. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/examples/xgb_serving.ipynb +0 -0
  82. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/__init__.py +0 -0
  83. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/__main__.py +0 -0
  84. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/alerts/__init__.py +0 -0
  85. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/alerts/alert.py +0 -0
  86. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/api/schemas/__init__.py +0 -0
  87. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/artifacts/__init__.py +0 -0
  88. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/artifacts/base.py +0 -0
  89. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/artifacts/dataset.py +0 -0
  90. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/artifacts/document.py +0 -0
  91. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/artifacts/helpers.py +0 -0
  92. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/artifacts/llm_prompt.py +0 -0
  93. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/artifacts/model.py +0 -0
  94. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/artifacts/plots.py +0 -0
  95. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/__init__.py +0 -0
  96. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/db/__init__.py +0 -0
  97. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/db/dialects.py +0 -0
  98. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/formatters/__init__.py +0 -0
  99. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/formatters/artifact.py +0 -0
  100. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/formatters/base.py +0 -0
  101. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/formatters/feature_set.py +0 -0
  102. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/formatters/function.py +0 -0
  103. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/formatters/model_endpoint.py +0 -0
  104. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/formatters/pipeline.py +0 -0
  105. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/formatters/project.py +0 -0
  106. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/formatters/run.py +0 -0
  107. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/helpers.py +0 -0
  108. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/model_monitoring/__init__.py +0 -0
  109. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/model_monitoring/helpers.py +0 -0
  110. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/runtimes/constants.py +0 -0
  111. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/__init__.py +0 -0
  112. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/alert.py +0 -0
  113. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/api_gateway.py +0 -0
  114. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/artifact.py +0 -0
  115. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/auth.py +0 -0
  116. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/background_task.py +0 -0
  117. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/client_spec.py +0 -0
  118. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/clusterization_spec.py +0 -0
  119. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/common.py +0 -0
  120. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/constants.py +0 -0
  121. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/datastore_profile.py +0 -0
  122. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/events.py +0 -0
  123. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/feature_store.py +0 -0
  124. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/frontend_spec.py +0 -0
  125. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/function.py +0 -0
  126. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/http.py +0 -0
  127. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/hub.py +0 -0
  128. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/k8s.py +0 -0
  129. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/memory_reports.py +0 -0
  130. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/model_monitoring/constants.py +0 -0
  131. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/model_monitoring/grafana.py +0 -0
  132. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/notification.py +0 -0
  133. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/object.py +0 -0
  134. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/pagination.py +0 -0
  135. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/partition.py +0 -0
  136. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/pipeline.py +0 -0
  137. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/project.py +0 -0
  138. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/regex.py +0 -0
  139. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/runs.py +0 -0
  140. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/runtime_resource.py +0 -0
  141. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/schedule.py +0 -0
  142. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/secret.py +0 -0
  143. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/schemas/tag.py +0 -0
  144. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/secrets.py +0 -0
  145. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/common/types.py +0 -0
  146. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/config.py +0 -0
  147. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/data_types/__init__.py +0 -0
  148. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/data_types/data_types.py +0 -0
  149. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/data_types/infer.py +0 -0
  150. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/data_types/spark.py +0 -0
  151. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/data_types/to_pandas.py +0 -0
  152. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/datastore/__init__.py +0 -0
  153. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/datastore/alibaba_oss.py +0 -0
  154. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/datastore/datastore_profile.py +0 -0
  155. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/datastore/dbfs_store.py +0 -0
  156. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/datastore/filestore.py +0 -0
  157. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/datastore/hdfs.py +0 -0
  158. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/datastore/inmem.py +0 -0
  159. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/datastore/redis.py +0 -0
  160. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/datastore/snowflake_utils.py +0 -0
  161. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/datastore/spark_udf.py +0 -0
  162. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/datastore/spark_utils.py +0 -0
  163. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/datastore/store_resources.py +0 -0
  164. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/datastore/storeytargets.py +0 -0
  165. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/datastore/utils.py +0 -0
  166. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/datastore/v3io.py +0 -0
  167. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/datastore/vectorstore.py +0 -0
  168. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/datastore/wasbfs/__init__.py +0 -0
  169. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/datastore/wasbfs/fs.py +0 -0
  170. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/db/auth_utils.py +0 -0
  171. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/db/factory.py +0 -0
  172. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/errors.py +0 -0
  173. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/feature_store/__init__.py +0 -0
  174. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/feature_store/api.py +0 -0
  175. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/feature_store/common.py +0 -0
  176. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/feature_store/feature_set.py +0 -0
  177. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/feature_store/feature_vector.py +0 -0
  178. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/feature_store/feature_vector_utils.py +0 -0
  179. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/feature_store/ingestion.py +0 -0
  180. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/feature_store/retrieval/__init__.py +0 -0
  181. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/feature_store/retrieval/base.py +0 -0
  182. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/feature_store/retrieval/dask_merger.py +0 -0
  183. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/feature_store/retrieval/job.py +0 -0
  184. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/feature_store/retrieval/local_merger.py +0 -0
  185. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/feature_store/retrieval/spark_merger.py +0 -0
  186. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/feature_store/retrieval/storey_merger.py +0 -0
  187. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/feature_store/steps.py +0 -0
  188. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/features.py +0 -0
  189. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/__init__.py +0 -0
  190. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_common/__init__.py +0 -0
  191. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_common/artifacts_library.py +0 -0
  192. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_common/mlrun_interface.py +0 -0
  193. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_common/model_handler.py +0 -0
  194. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_common/plan.py +0 -0
  195. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_common/producer.py +0 -0
  196. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_common/utils.py +0 -0
  197. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_dl_common/__init__.py +0 -0
  198. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_dl_common/loggers/__init__.py +0 -0
  199. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_dl_common/loggers/logger.py +0 -0
  200. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_dl_common/loggers/mlrun_logger.py +0 -0
  201. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_dl_common/loggers/tensorboard_logger.py +0 -0
  202. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_dl_common/model_handler.py +0 -0
  203. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_dl_common/utils.py +0 -0
  204. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_ml_common/__init__.py +0 -0
  205. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_ml_common/artifacts_library.py +0 -0
  206. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_ml_common/loggers/__init__.py +0 -0
  207. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_ml_common/loggers/logger.py +0 -0
  208. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_ml_common/loggers/mlrun_logger.py +0 -0
  209. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_ml_common/model_handler.py +0 -0
  210. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_ml_common/pkl_model_server.py +0 -0
  211. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_ml_common/plan.py +0 -0
  212. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_ml_common/plans/__init__.py +0 -0
  213. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_ml_common/plans/calibration_curve_plan.py +0 -0
  214. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_ml_common/plans/confusion_matrix_plan.py +0 -0
  215. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_ml_common/plans/dataset_plan.py +0 -0
  216. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_ml_common/plans/feature_importance_plan.py +0 -0
  217. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_ml_common/plans/roc_curve_plan.py +0 -0
  218. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_ml_common/producer.py +0 -0
  219. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/_ml_common/utils.py +0 -0
  220. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/auto_mlrun/__init__.py +0 -0
  221. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/auto_mlrun/auto_mlrun.py +0 -0
  222. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/huggingface/__init__.py +0 -0
  223. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/huggingface/model_server.py +0 -0
  224. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/lgbm/__init__.py +0 -0
  225. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/lgbm/callbacks/__init__.py +0 -0
  226. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/lgbm/callbacks/callback.py +0 -0
  227. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/lgbm/callbacks/logging_callback.py +0 -0
  228. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/lgbm/callbacks/mlrun_logging_callback.py +0 -0
  229. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/lgbm/mlrun_interfaces/__init__.py +0 -0
  230. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/lgbm/mlrun_interfaces/booster_mlrun_interface.py +0 -0
  231. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/lgbm/mlrun_interfaces/mlrun_interface.py +0 -0
  232. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/lgbm/mlrun_interfaces/model_mlrun_interface.py +0 -0
  233. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/lgbm/model_handler.py +0 -0
  234. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/lgbm/model_server.py +0 -0
  235. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/lgbm/utils.py +0 -0
  236. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/onnx/__init__.py +0 -0
  237. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/onnx/dataset.py +0 -0
  238. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/onnx/mlrun_interface.py +0 -0
  239. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/onnx/model_handler.py +0 -0
  240. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/onnx/model_server.py +0 -0
  241. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/parallel_coordinates.py +0 -0
  242. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/pytorch/__init__.py +0 -0
  243. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/pytorch/callbacks/__init__.py +0 -0
  244. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/pytorch/callbacks/callback.py +0 -0
  245. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/pytorch/callbacks/logging_callback.py +0 -0
  246. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/pytorch/callbacks/mlrun_logging_callback.py +0 -0
  247. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/pytorch/callbacks/tensorboard_logging_callback.py +0 -0
  248. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/pytorch/callbacks_handler.py +0 -0
  249. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/pytorch/mlrun_interface.py +0 -0
  250. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/pytorch/model_handler.py +0 -0
  251. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/pytorch/model_server.py +0 -0
  252. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/pytorch/utils.py +0 -0
  253. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/sklearn/__init__.py +0 -0
  254. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/sklearn/estimator.py +0 -0
  255. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/sklearn/metric.py +0 -0
  256. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/sklearn/metrics_library.py +0 -0
  257. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/sklearn/mlrun_interface.py +0 -0
  258. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/sklearn/model_handler.py +0 -0
  259. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/sklearn/utils.py +0 -0
  260. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/tf_keras/__init__.py +0 -0
  261. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/tf_keras/callbacks/__init__.py +0 -0
  262. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/tf_keras/callbacks/logging_callback.py +0 -0
  263. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/tf_keras/callbacks/mlrun_logging_callback.py +0 -0
  264. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/tf_keras/callbacks/tensorboard_logging_callback.py +0 -0
  265. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/tf_keras/model_handler.py +0 -0
  266. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/tf_keras/model_server.py +0 -0
  267. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/tf_keras/utils.py +0 -0
  268. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/xgboost/__init__.py +0 -0
  269. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/xgboost/mlrun_interface.py +0 -0
  270. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/xgboost/model_handler.py +0 -0
  271. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/frameworks/xgboost/utils.py +0 -0
  272. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/k8s_utils.py +0 -0
  273. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/launcher/__init__.py +0 -0
  274. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/launcher/factory.py +0 -0
  275. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/launcher/remote.py +0 -0
  276. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/lists.py +0 -0
  277. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/__init__.py +0 -0
  278. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/api.py +0 -0
  279. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/applications/__init__.py +0 -0
  280. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/applications/_application_steps.py +0 -0
  281. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/applications/context.py +0 -0
  282. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/applications/evidently/__init__.py +0 -0
  283. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/applications/evidently/base.py +0 -0
  284. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/applications/histogram_data_drift.py +0 -0
  285. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/applications/results.py +0 -0
  286. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/controller.py +0 -0
  287. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/db/__init__.py +0 -0
  288. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/db/_schedules.py +0 -0
  289. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/db/_stats.py +0 -0
  290. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/db/tsdb/__init__.py +0 -0
  291. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/db/tsdb/helpers.py +0 -0
  292. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/db/tsdb/tdengine/__init__.py +0 -0
  293. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/db/tsdb/tdengine/schemas.py +0 -0
  294. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/db/tsdb/tdengine/stream_graph_steps.py +0 -0
  295. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connection.py +0 -0
  296. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/db/tsdb/v3io/__init__.py +0 -0
  297. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/db/tsdb/v3io/stream_graph_steps.py +0 -0
  298. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/features_drift_table.py +0 -0
  299. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/metrics/__init__.py +0 -0
  300. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/metrics/histogram_distance.py +0 -0
  301. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/stream_processing.py +0 -0
  302. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/model_monitoring/writer.py +0 -0
  303. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/package/__init__.py +0 -0
  304. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/package/context_handler.py +0 -0
  305. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/package/errors.py +0 -0
  306. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/package/packager.py +0 -0
  307. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/package/packagers/__init__.py +0 -0
  308. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/package/packagers/default_packager.py +0 -0
  309. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/package/packagers/numpy_packagers.py +0 -0
  310. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/package/packagers/pandas_packagers.py +0 -0
  311. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/package/packagers/python_standard_library_packagers.py +0 -0
  312. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/package/packagers_manager.py +0 -0
  313. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/package/utils/__init__.py +0 -0
  314. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/package/utils/_archiver.py +0 -0
  315. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/package/utils/_formatter.py +0 -0
  316. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/package/utils/_pickler.py +0 -0
  317. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/package/utils/_supported_format.py +0 -0
  318. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/package/utils/log_hint_utils.py +0 -0
  319. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/package/utils/type_hint_utils.py +0 -0
  320. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/platforms/__init__.py +0 -0
  321. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/platforms/iguazio.py +0 -0
  322. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/projects/__init__.py +0 -0
  323. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/projects/operations.py +0 -0
  324. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/render.py +0 -0
  325. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/run.py +0 -0
  326. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/__init__.py +0 -0
  327. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/base.py +0 -0
  328. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/databricks_job/__init__.py +0 -0
  329. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/databricks_job/databricks_cancel_task.py +0 -0
  330. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/databricks_job/databricks_runtime.py +0 -0
  331. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/databricks_job/databricks_wrapper.py +0 -0
  332. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/funcdoc.py +0 -0
  333. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/function_reference.py +0 -0
  334. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/generators.py +0 -0
  335. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/local.py +0 -0
  336. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/mounts.py +0 -0
  337. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/mpijob/__init__.py +0 -0
  338. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/nuclio/__init__.py +0 -0
  339. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/nuclio/api_gateway.py +0 -0
  340. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/nuclio/application/__init__.py +0 -0
  341. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/nuclio/application/application.py +0 -0
  342. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/nuclio/application/reverse_proxy.go +0 -0
  343. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/nuclio/nuclio.py +0 -0
  344. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/sparkjob/__init__.py +0 -0
  345. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/runtimes/utils.py +0 -0
  346. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/secrets.py +0 -0
  347. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/serving/__init__.py +0 -0
  348. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/serving/merger.py +0 -0
  349. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/serving/remote.py +0 -0
  350. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/serving/routers.py +0 -0
  351. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/serving/serving_wrapper.py +0 -0
  352. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/serving/system_steps.py +0 -0
  353. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/serving/utils.py +0 -0
  354. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/serving/v1_serving.py +0 -0
  355. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/serving/v2_serving.py +0 -0
  356. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/track/__init__.py +0 -0
  357. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/track/tracker.py +0 -0
  358. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/track/tracker_manager.py +0 -0
  359. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/track/trackers/__init__.py +0 -0
  360. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/track/trackers/mlflow_tracker.py +0 -0
  361. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/utils/__init__.py +0 -0
  362. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/utils/async_http.py +0 -0
  363. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/utils/azure_vault.py +0 -0
  364. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/utils/clones.py +0 -0
  365. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/utils/condition_evaluator.py +0 -0
  366. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/utils/helpers.py +0 -0
  367. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/utils/http.py +0 -0
  368. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/utils/logger.py +0 -0
  369. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/utils/notifications/__init__.py +0 -0
  370. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/utils/notifications/notification/__init__.py +0 -0
  371. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/utils/notifications/notification/base.py +0 -0
  372. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/utils/notifications/notification/console.py +0 -0
  373. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/utils/notifications/notification/git.py +0 -0
  374. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/utils/notifications/notification/ipython.py +0 -0
  375. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/utils/notifications/notification/mail.py +0 -0
  376. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/utils/notifications/notification/slack.py +0 -0
  377. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/utils/notifications/notification/webhook.py +0 -0
  378. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/utils/notifications/notification_pusher.py +0 -0
  379. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/utils/regex.py +0 -0
  380. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/utils/retryer.py +0 -0
  381. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/utils/singleton.py +0 -0
  382. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/utils/v3io_clients.py +0 -0
  383. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/utils/vault.py +0 -0
  384. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/utils/version/__init__.py +0 -0
  385. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun/utils/version/version.py +0 -0
  386. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun.egg-info/dependency_links.txt +0 -0
  387. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun.egg-info/entry_points.txt +0 -0
  388. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun.egg-info/not-zip-safe +0 -0
  389. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/mlrun.egg-info/top_level.txt +0 -0
  390. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/packages.py +0 -0
  391. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/pyproject.toml +0 -0
  392. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/setup.cfg +0 -0
  393. {mlrun-1.10.0rc10 → mlrun-1.10.0rc11}/setup.py +0 -0
@@ -195,13 +195,13 @@ endif
195
195
  install-complete-requirements: ## Install all requirements needed for development and testing
196
196
  $(MLRUN_PYTHON_VENV_PIP_INSTALL) --upgrade $(MLRUN_PIP_NO_CACHE_FLAG) pip~=$(MLRUN_PIP_VERSION)
197
197
  $(eval MLRUN_PIP_INSTALL_FLAG := $(if $(and $(MLRUN_PYTHON_PACKAGE_INSTALLER),$(filter -m pip,$(MLRUN_PYTHON_PACKAGE_INSTALLER))),--ignore-requires-python,))
198
- $(MLRUN_PYTHON_VENV_PIP_INSTALL) .[complete] $(MLRUN_PIP_INSTALL_FLAG)
198
+ $(MLRUN_PYTHON_VENV_PIP_INSTALL) .[complete,dev-postgres] $(MLRUN_PIP_INSTALL_FLAG)
199
199
 
200
200
  .PHONY: install-complete-kfp-requirements
201
201
  install-complete-kfp-requirements: ## Install all requirements needed for development and testing + KFP 1.8
202
202
  $(MLRUN_PYTHON_VENV_PIP_INSTALL) --upgrade $(MLRUN_PIP_NO_CACHE_FLAG) pip~=$(MLRUN_PIP_VERSION)
203
203
  $(eval MLRUN_PIP_INSTALL_FLAG := $(if $(and $(MLRUN_PYTHON_PACKAGE_INSTALLER),$(filter -m pip,$(MLRUN_PYTHON_PACKAGE_INSTALLER))),--ignore-requires-python,))
204
- $(MLRUN_PYTHON_VENV_PIP_INSTALL) .[complete,kfp18] $(MLRUN_PIP_INSTALL_FLAG)
204
+ $(MLRUN_PYTHON_VENV_PIP_INSTALL) .[complete,kfp18,dev-postgres] $(MLRUN_PIP_INSTALL_FLAG)
205
205
 
206
206
  .PHONY: install-all-requirements
207
207
  install-all-requirements: ## Install all requirements needed for development and testing
@@ -580,6 +580,7 @@ test: clean ## Run mlrun tests
580
580
  set -e ; \
581
581
  COMMON_IGNORE_TEST_FLAGS=$$(echo "\
582
582
  --ignore=tests/integration \
583
+ --ignore=server/py/services/api/tests/integration \
583
584
  --ignore=tests/system \
584
585
  --ignore=tests/rundb/test_httpdb.py \
585
586
  --ignore=server/py/services/api/migrations \
@@ -629,6 +630,7 @@ test-integration-dockerized: build-test ## Run mlrun integration tests in docker
629
630
  -v /var/run/docker.sock:/var/run/docker.sock \
630
631
  -v $$COVERAGE_MOUNT_PATH:/mlrun/tests/coverage_reports \
631
632
  -e RUN_COVERAGE=$(RUN_COVERAGE) \
633
+ --add-host=host.docker.internal:host-gateway \
632
634
  $(MLRUN_TEST_IMAGE_NAME_TAGGED) make test-integration
633
635
 
634
636
  .PHONY: test-integration
@@ -644,6 +646,7 @@ test-integration: clean ## Run mlrun integration tests
644
646
  --durations=100 \
645
647
  -rf \
646
648
  tests/integration \
649
+ server/py/services/api/tests/integration \
647
650
  tests/rundb/test_httpdb.py && \
648
651
  $(PRINT_COVERAGE_REPORT);
649
652
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mlrun
3
- Version: 1.10.0rc10
3
+ Version: 1.10.0rc11
4
4
  Summary: Tracking and config of machine learning runs
5
5
  Home-page: https://github.com/mlrun/mlrun
6
6
  Author: Yaron Haviv
@@ -44,15 +44,15 @@ Requires-Dist: semver~=3.0
44
44
  Requires-Dist: dependency-injector~=4.41
45
45
  Requires-Dist: fsspec<2024.7,>=2023.9.2
46
46
  Requires-Dist: v3iofs~=0.1.17
47
- Requires-Dist: storey~=1.10.2
47
+ Requires-Dist: storey~=1.10.7
48
48
  Requires-Dist: inflection~=0.5.0
49
49
  Requires-Dist: python-dotenv~=1.0
50
50
  Requires-Dist: setuptools>=75.2
51
51
  Requires-Dist: deprecated~=1.2
52
52
  Requires-Dist: jinja2>=3.1.6,~=3.1
53
53
  Requires-Dist: orjson<4,>=3.9.15
54
- Requires-Dist: mlrun-pipelines-kfp-common~=0.5.6
55
- Requires-Dist: mlrun-pipelines-kfp-v1-8~=0.5.4
54
+ Requires-Dist: mlrun-pipelines-kfp-common~=0.5.8
55
+ Requires-Dist: mlrun-pipelines-kfp-v1-8~=0.5.7
56
56
  Requires-Dist: docstring_parser~=0.16
57
57
  Requires-Dist: aiosmtplib~=3.0
58
58
  Provides-Extra: s3
@@ -101,6 +101,10 @@ Provides-Extra: tdengine
101
101
  Requires-Dist: taos-ws-py==0.3.2; extra == "tdengine"
102
102
  Provides-Extra: snowflake
103
103
  Requires-Dist: snowflake-connector-python~=3.7; extra == "snowflake"
104
+ Provides-Extra: openai
105
+ Requires-Dist: openai~=1.88; extra == "openai"
106
+ Provides-Extra: dev-postgres
107
+ Requires-Dist: pytest-mock-resources[postgres]~=2.12; extra == "dev-postgres"
104
108
  Provides-Extra: kfp18
105
109
  Requires-Dist: mlrun_pipelines_kfp_v1_8[kfp]>=0.5.0; python_version < "3.11" and extra == "kfp18"
106
110
  Provides-Extra: api
@@ -120,7 +124,7 @@ Requires-Dist: timelength~=1.1; extra == "api"
120
124
  Requires-Dist: memray~=1.12; sys_platform != "win32" and extra == "api"
121
125
  Requires-Dist: aiosmtplib~=3.0; extra == "api"
122
126
  Requires-Dist: pydantic<2,>=1; extra == "api"
123
- Requires-Dist: mlrun-pipelines-kfp-v1-8~=0.5.4; extra == "api"
127
+ Requires-Dist: mlrun-pipelines-kfp-v1-8~=0.5.7; extra == "api"
124
128
  Requires-Dist: grpcio~=1.70.0; extra == "api"
125
129
  Provides-Extra: all
126
130
  Requires-Dist: adlfs==2023.9.0; extra == "all"
@@ -144,6 +148,7 @@ Requires-Dist: graphviz~=0.20.0; extra == "all"
144
148
  Requires-Dist: kafka-python~=2.1.0; extra == "all"
145
149
  Requires-Dist: mlflow~=2.22; extra == "all"
146
150
  Requires-Dist: msrest~=0.6.21; extra == "all"
151
+ Requires-Dist: openai~=1.88; extra == "all"
147
152
  Requires-Dist: oss2==2.18.1; extra == "all"
148
153
  Requires-Dist: ossfs==2023.12.0; extra == "all"
149
154
  Requires-Dist: plotly~=5.23; extra == "all"
@@ -175,6 +180,7 @@ Requires-Dist: graphviz~=0.20.0; extra == "complete"
175
180
  Requires-Dist: kafka-python~=2.1.0; extra == "complete"
176
181
  Requires-Dist: mlflow~=2.22; extra == "complete"
177
182
  Requires-Dist: msrest~=0.6.21; extra == "complete"
183
+ Requires-Dist: openai~=1.88; extra == "complete"
178
184
  Requires-Dist: oss2==2.18.1; extra == "complete"
179
185
  Requires-Dist: ossfs==2023.12.0; extra == "complete"
180
186
  Requires-Dist: plotly~=5.23; extra == "complete"
@@ -214,9 +220,10 @@ Requires-Dist: igz-mgmt~=0.4.1; extra == "complete-api"
214
220
  Requires-Dist: kafka-python~=2.1.0; extra == "complete-api"
215
221
  Requires-Dist: memray~=1.12; sys_platform != "win32" and extra == "complete-api"
216
222
  Requires-Dist: mlflow~=2.22; extra == "complete-api"
217
- Requires-Dist: mlrun-pipelines-kfp-v1-8~=0.5.4; extra == "complete-api"
223
+ Requires-Dist: mlrun-pipelines-kfp-v1-8~=0.5.7; extra == "complete-api"
218
224
  Requires-Dist: msrest~=0.6.21; extra == "complete-api"
219
225
  Requires-Dist: objgraph~=3.6; extra == "complete-api"
226
+ Requires-Dist: openai~=1.88; extra == "complete-api"
220
227
  Requires-Dist: oss2==2.18.1; extra == "complete-api"
221
228
  Requires-Dist: ossfs==2023.12.0; extra == "complete-api"
222
229
  Requires-Dist: plotly~=5.23; extra == "complete-api"
@@ -75,6 +75,7 @@ def extra_requirements() -> dict[str, list[str]]:
75
75
  "alibaba-oss": ["ossfs==2023.12.0", "oss2==2.18.1"],
76
76
  "tdengine": ["taos-ws-py==0.3.2"],
77
77
  "snowflake": ["snowflake-connector-python~=3.7"],
78
+ "openai": ["openai~=1.88"],
78
79
  }
79
80
 
80
81
  api_deps = list(
@@ -82,6 +83,7 @@ def extra_requirements() -> dict[str, list[str]]:
82
83
  )
83
84
  extras_require.update(
84
85
  {
86
+ "dev-postgres": ["pytest-mock-resources[postgres]~=2.12"],
85
87
  "kfp18": ["mlrun_pipelines_kfp_v1_8[kfp]>=0.5.0; python_version < '3.11'"],
86
88
  # TODO uncomment when KFP 1.8 support is removed
87
89
  # "kfp2": ["mlrun_pipelines_kfp_v2[kfp]>=0.5.0 ; python_version >= '3.11'"],
@@ -11,7 +11,8 @@ pytest-asyncio~=0.21.2
11
11
  pytest-alembic~=0.11.0
12
12
  pytest-httpserver~=1.0
13
13
  pytest-timeout~=2.0
14
- pytest-mock-resources[mysql,postgres]~=2.12
14
+ pytest-mock-resources[mysql]~=2.12
15
+ testcontainers[k3s]~=4.10
15
16
  aioresponses~=0.7
16
17
  requests-mock~=1.8
17
18
  httpx~=0.27.0
@@ -19,6 +20,7 @@ deepdiff~=7.0
19
20
  hypothesis[numpy]~=6.103
20
21
  pytest-rerunfailures~=14.0
21
22
  pytest-forked~=1.6
23
+ tiktoken~=0.9.0
22
24
 
23
25
  # system tests
24
26
  matplotlib~=3.5
@@ -17,5 +17,5 @@ memray~=1.12; sys_platform != 'win32'
17
17
  aiosmtplib~=3.0
18
18
  # until https://github.com/fastapi/fastapi/issues/10360 is solved
19
19
  pydantic>=1,<2
20
- mlrun-pipelines-kfp-v1-8~=0.5.4
20
+ mlrun-pipelines-kfp-v1-8~=0.5.7
21
21
  grpcio~=1.70.0
@@ -52,3 +52,4 @@ dask~=2024.12.1; python_version >= "3.11"
52
52
  distributed~=2024.12.1; python_version >= "3.11"
53
53
  taos-ws-py==0.3.2
54
54
  snowflake-connector-python~=3.7
55
+ openai~=1.88
@@ -413,8 +413,8 @@ class ArtifactManager:
413
413
  self.artifact_db.del_artifact(
414
414
  key=item.db_key,
415
415
  project=item.project,
416
- tag=item.tag,
417
416
  tree=item.tree,
417
+ uid=item.uid,
418
418
  iter=item.iter,
419
419
  deletion_strategy=deletion_strategy,
420
420
  secrets=secrets,
@@ -27,6 +27,10 @@ DASK_LABEL_PREFIX = "dask.org/"
27
27
  NUCLIO_LABEL_PREFIX = "nuclio.io/"
28
28
  RESERVED_TAG_NAME_LATEST = "latest"
29
29
 
30
+ JOB_TYPE_WORKFLOW_RUNNER = "workflow-runner"
31
+ JOB_TYPE_PROJECT_LOADER = "project-loader"
32
+ JOB_TYPE_RERUN_WORKFLOW_RUNNER = "rerun-workflow-runner"
33
+
30
34
 
31
35
  class MLRunInternalLabels:
32
36
  ### dask
@@ -76,7 +80,9 @@ class MLRunInternalLabels:
76
80
  kind = "kind"
77
81
  component = "component"
78
82
  mlrun_type = "mlrun__type"
83
+ rerun_of = "rerun-of"
79
84
  original_workflow_id = "original-workflow-id"
85
+ workflow_id = "workflow-id"
80
86
 
81
87
  owner = "owner"
82
88
  v3io_user = "v3io_user"
@@ -102,3 +108,8 @@ class MLRunInternalLabels:
102
108
  class DeployStatusTextKind(mlrun.common.types.StrEnum):
103
109
  logs = "logs"
104
110
  events = "events"
111
+
112
+
113
+ class WorkflowSubmitMode(mlrun.common.types.StrEnum):
114
+ direct = "direct" # call KFP retry API directly
115
+ rerun = "rerun" # launch a RerunRunner function
@@ -54,6 +54,8 @@ from .grafana import (
54
54
  GrafanaTable,
55
55
  )
56
56
  from .model_endpoints import (
57
+ ApplicationMetricRecord,
58
+ ApplicationResultRecord,
57
59
  Features,
58
60
  FeatureValues,
59
61
  ModelEndpoint,
@@ -34,6 +34,7 @@ class FunctionSummary(BaseModel):
34
34
  type: FunctionsType
35
35
  name: str
36
36
  application_class: str
37
+ project_name: str
37
38
  updated_time: datetime
38
39
  status: Optional[str] = None
39
40
  base_period: Optional[int] = None
@@ -59,6 +60,7 @@ class FunctionSummary(BaseModel):
59
60
  else func_dict["spec"]["graph"]["steps"]["PushToMonitoringWriter"]["after"][
60
61
  0
61
62
  ],
63
+ project_name=func_dict["metadata"]["project"],
62
64
  updated_time=func_dict["metadata"].get("updated"),
63
65
  status=func_dict["status"].get("state"),
64
66
  base_period=base_period,
@@ -14,7 +14,7 @@
14
14
  import abc
15
15
  import json
16
16
  from datetime import datetime
17
- from typing import Any, NamedTuple, Optional, TypeVar
17
+ from typing import Any, Literal, NamedTuple, Optional, TypeVar
18
18
  from uuid import UUID
19
19
 
20
20
  from pydantic import validator # use `validator` if you’re still on Pydantic v1
@@ -334,6 +334,24 @@ class ModelEndpointMonitoringMetricNoData(_ModelEndpointMonitoringMetricValuesBa
334
334
  data: bool = False
335
335
 
336
336
 
337
+ class ApplicationBaseRecord(BaseModel):
338
+ type: Literal["metric", "result"]
339
+ time: datetime
340
+ value: float
341
+
342
+
343
+ class ApplicationResultRecord(ApplicationBaseRecord):
344
+ kind: ResultKindApp
345
+ status: ResultStatusApp
346
+ result_name: str
347
+ type: Literal["result"] = "result"
348
+
349
+
350
+ class ApplicationMetricRecord(ApplicationBaseRecord):
351
+ metric_name: str
352
+ type: Literal["metric"] = "metric"
353
+
354
+
337
355
  def _mapping_attributes(
338
356
  model_class: type[Model],
339
357
  flattened_dictionary: dict,
@@ -26,6 +26,7 @@ class DeployResponse(BaseModel):
26
26
 
27
27
  class ModelRunnerStepData(StrEnum):
28
28
  MODELS = "models"
29
+ MODEL_TO_EXECUTION_MECHANISM = "execution_mechanism_by_model_name"
29
30
  MONITORING_DATA = "monitoring_data"
30
31
 
31
32
 
@@ -47,8 +47,9 @@ class WorkflowRequest(pydantic.v1.BaseModel):
47
47
 
48
48
 
49
49
  class RerunWorkflowRequest(pydantic.v1.BaseModel):
50
- run_name: typing.Optional[str] = (None,)
51
- run_id: typing.Optional[str] = (None,)
50
+ run_name: typing.Optional[str] = None
51
+ run_id: typing.Optional[str] = None
52
+ original_workflow_id: typing.Optional[str] = None
52
53
  notifications: typing.Optional[list[Notification]] = None
53
54
  workflow_runner_node_selector: typing.Optional[dict[str, str]] = None
54
55
 
@@ -224,7 +224,7 @@ class AzureBlobStore(DataStore):
224
224
  path = self._convert_key_to_remote_path(key=path)
225
225
  super().rm(path=path, recursive=recursive, maxdepth=maxdepth)
226
226
 
227
- def get_spark_options(self):
227
+ def get_spark_options(self, path=None):
228
228
  res = {}
229
229
  st = self.storage_options
230
230
  service = "blob"
@@ -48,7 +48,9 @@ class FileStats:
48
48
  class DataStore:
49
49
  using_bucket = False
50
50
 
51
- def __init__(self, parent, name, kind, endpoint="", secrets: Optional[dict] = None):
51
+ def __init__(
52
+ self, parent, name, kind, endpoint="", secrets: Optional[dict] = None, **kwargs
53
+ ):
52
54
  self._parent = parent
53
55
  self.kind = kind
54
56
  self.name = name
@@ -176,7 +178,7 @@ class DataStore:
176
178
  def upload(self, key, src_path):
177
179
  pass
178
180
 
179
- def get_spark_options(self):
181
+ def get_spark_options(self, path=None):
180
182
  return {}
181
183
 
182
184
  @staticmethod
@@ -11,6 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
+ import warnings
14
15
  from typing import Optional
15
16
  from urllib.parse import urlparse
16
17
 
@@ -105,8 +106,7 @@ def schema_to_store(schema) -> DataStore.__subclasses__():
105
106
  from .alibaba_oss import OSSStore
106
107
 
107
108
  return OSSStore
108
- else:
109
- raise ValueError(f"unsupported store scheme ({schema})")
109
+ raise ValueError(f"unsupported store scheme ({schema})")
110
110
 
111
111
 
112
112
  def uri_to_ipython(link):
@@ -210,12 +210,20 @@ class StoreManager:
210
210
  artifact_url=artifact_url,
211
211
  )
212
212
 
213
- def get_or_create_store(
214
- self, url, secrets: Optional[dict] = None, project_name=""
213
+ def _get_or_create_remote_client(
214
+ self,
215
+ url,
216
+ secrets: Optional[dict] = None,
217
+ project_name="",
218
+ cache: Optional[dict] = None,
219
+ schema_to_class: callable = schema_to_store,
220
+ **kwargs,
215
221
  ) -> (DataStore, str, str):
222
+ # The cache can be an empty dictionary ({}), even if it is a _stores object
223
+ cache = cache if cache is not None else {}
216
224
  schema, endpoint, parsed_url = parse_url(url)
217
225
  subpath = parsed_url.path
218
- store_key = f"{schema}://{endpoint}" if endpoint else f"{schema}://"
226
+ cache_key = f"{schema}://{endpoint}" if endpoint else f"{schema}://"
219
227
 
220
228
  if schema == "ds":
221
229
  datastore_profile = datastore_profile_read(url, project_name, secrets)
@@ -237,24 +245,48 @@ class StoreManager:
237
245
  subpath = url.replace("file://", "", 1)
238
246
 
239
247
  if not schema and endpoint:
240
- if endpoint in self._stores.keys():
241
- return self._stores[endpoint], subpath, url
248
+ if endpoint in cache.keys():
249
+ return cache[endpoint], subpath, url
242
250
  else:
243
251
  raise ValueError(f"no such store ({endpoint})")
244
252
 
245
253
  if not secrets and not mlrun.config.is_running_as_api():
246
- if store_key in self._stores.keys():
247
- return self._stores[store_key], subpath, url
254
+ if cache_key in cache.keys():
255
+ return cache[cache_key], subpath, url
248
256
 
249
257
  # support u/p embedding in url (as done in redis) by setting netloc as the "endpoint" parameter
250
258
  # when running on server we don't cache the datastore, because there are multiple users and we don't want to
251
259
  # cache the credentials, so for each new request we create a new store
252
- store = schema_to_store(schema)(
253
- self, schema, store_key, parsed_url.netloc, secrets=secrets
260
+ remote_client_class = schema_to_class(schema)
261
+ remote_client = None
262
+ if remote_client_class:
263
+ remote_client = remote_client_class(
264
+ self, schema, cache_key, parsed_url.netloc, secrets=secrets, **kwargs
265
+ )
266
+ if not secrets and not mlrun.config.is_running_as_api():
267
+ cache[cache_key] = remote_client
268
+ else:
269
+ warnings.warn("scheme not found. Returning None")
270
+ return remote_client, subpath, url
271
+
272
+ def get_or_create_store(
273
+ self,
274
+ url,
275
+ secrets: Optional[dict] = None,
276
+ project_name="",
277
+ ) -> (DataStore, str, str):
278
+ datastore, sub_path, url = self._get_or_create_remote_client(
279
+ url=url,
280
+ secrets=secrets,
281
+ project_name=project_name,
282
+ cache=self._stores,
283
+ schema_to_class=schema_to_store,
254
284
  )
255
- if not secrets and not mlrun.config.is_running_as_api():
256
- self._stores[store_key] = store
257
- return store, subpath, url
285
+ if not isinstance(datastore, DataStore):
286
+ raise mlrun.errors.MLRunInvalidArgumentError(
287
+ "remote client by url is not datastore"
288
+ )
289
+ return datastore, sub_path, url
258
290
 
259
291
  def reset_secrets(self):
260
292
  self._secrets = {}
@@ -194,7 +194,7 @@ class GoogleCloudStorageStore(DataStore):
194
194
  self.filesystem.exists(path)
195
195
  super().rm(path, recursive=recursive, maxdepth=maxdepth)
196
196
 
197
- def get_spark_options(self):
197
+ def get_spark_options(self, path=None):
198
198
  res = {}
199
199
  st = self._get_credentials()
200
200
  if "token" in st:
@@ -14,6 +14,7 @@
14
14
 
15
15
  import time
16
16
  from typing import Optional
17
+ from urllib.parse import urlparse
17
18
 
18
19
  import boto3
19
20
  from boto3.s3.transfer import TransferConfig
@@ -115,17 +116,27 @@ class S3Store(DataStore):
115
116
  byterange += str(offset + size - 1)
116
117
  return byterange
117
118
 
118
- def get_spark_options(self):
119
+ def get_spark_options(self, path=None):
119
120
  res = {}
121
+ bucket_str = ""
122
+ if path:
123
+ parsed = urlparse(path)
124
+ if parsed.scheme: # s3:// or s3a://
125
+ bucket = parsed.hostname
126
+ else:
127
+ # drop a leading slash, if any and take 1st segment
128
+ bucket = path.lstrip("/").split("/", 1)[0]
129
+ bucket_str = f".bucket.{bucket}"
130
+
120
131
  st = self.get_storage_options()
121
132
  if st.get("key"):
122
- res["spark.hadoop.fs.s3a.access.key"] = st.get("key")
133
+ res[f"spark.hadoop.fs.s3a{bucket_str}.access.key"] = st.get("key")
123
134
  if st.get("secret"):
124
- res["spark.hadoop.fs.s3a.secret.key"] = st.get("secret")
135
+ res[f"spark.hadoop.fs.s3a{bucket_str}.secret.key"] = st.get("secret")
125
136
  if st.get("endpoint_url"):
126
- res["spark.hadoop.fs.s3a.endpoint"] = st.get("endpoint_url")
137
+ res[f"spark.hadoop.fs.s3a{bucket_str}.endpoint"] = st.get("endpoint_url")
127
138
  if st.get("profile"):
128
- res["spark.hadoop.fs.s3a.aws.profile"] = st.get("profile")
139
+ res[f"spark.hadoop.fs.s3a{bucket_str}.aws.profile"] = st.get("profile")
129
140
  return res
130
141
 
131
142
  @property
@@ -220,7 +220,7 @@ class CSVSource(BaseSourceDriver):
220
220
 
221
221
  def get_spark_options(self):
222
222
  store, path, _ = mlrun.store_manager.get_or_create_store(self.path)
223
- spark_options = store.get_spark_options()
223
+ spark_options = store.get_spark_options(store.spark_url + path)
224
224
  spark_options.update(
225
225
  {
226
226
  "path": store.spark_url + path,
@@ -407,7 +407,7 @@ class ParquetSource(BaseSourceDriver):
407
407
 
408
408
  def get_spark_options(self):
409
409
  store, path, _ = mlrun.store_manager.get_or_create_store(self.path)
410
- spark_options = store.get_spark_options()
410
+ spark_options = store.get_spark_options(store.spark_url + path)
411
411
  spark_options.update(
412
412
  {
413
413
  "path": store.spark_url + path,
@@ -970,7 +970,7 @@ class ParquetTarget(BaseStoreTarget):
970
970
  break
971
971
 
972
972
  store, path, url = self._get_store_and_path()
973
- spark_options = store.get_spark_options()
973
+ spark_options = store.get_spark_options(store.spark_url + path)
974
974
  spark_options.update(
975
975
  {
976
976
  "path": store.spark_url + path,
@@ -1104,7 +1104,7 @@ class CSVTarget(BaseStoreTarget):
1104
1104
 
1105
1105
  def get_spark_options(self, key_column=None, timestamp_key=None, overwrite=True):
1106
1106
  store, path, url = self._get_store_and_path()
1107
- spark_options = store.get_spark_options()
1107
+ spark_options = store.get_spark_options(store.spark_url + path)
1108
1108
  spark_options.update(
1109
1109
  {
1110
1110
  "path": store.spark_url + path,
@@ -14,7 +14,6 @@
14
14
  from os import environ
15
15
 
16
16
  from ..config import config
17
- from . import sql_types
18
17
  from .base import RunDBError, RunDBInterface # noqa
19
18
 
20
19
 
@@ -645,6 +645,7 @@ class RunDBInterface(ABC):
645
645
  project: str,
646
646
  namespace: Optional[str] = None,
647
647
  timeout: int = 30,
648
+ submit_mode: str = "",
648
649
  ):
649
650
  pass
650
651
 
@@ -1130,6 +1131,17 @@ class RunDBInterface(ABC):
1130
1131
  ) -> list[mlrun.common.schemas.model_monitoring.FunctionSummary]:
1131
1132
  pass
1132
1133
 
1134
+ @abstractmethod
1135
+ def get_monitoring_function_summary(
1136
+ self,
1137
+ project: str,
1138
+ function_name: str,
1139
+ start: Optional[datetime.datetime] = None,
1140
+ end: Optional[datetime.datetime] = None,
1141
+ include_latest_metrics: bool = False,
1142
+ ) -> mlrun.common.schemas.model_monitoring.FunctionSummary:
1143
+ pass
1144
+
1133
1145
  @abstractmethod
1134
1146
  def get_project_summary(self, project: str) -> mlrun.common.schemas.ProjectSummary:
1135
1147
  pass
@@ -2350,6 +2350,7 @@ class HTTPRunDB(RunDBInterface):
2350
2350
  project: str,
2351
2351
  namespace: Optional[str] = None,
2352
2352
  timeout: int = 30,
2353
+ submit_mode: str = "",
2353
2354
  ):
2354
2355
  """
2355
2356
  Retry a specific pipeline run using its run ID. This function sends an API request
@@ -2359,6 +2360,7 @@ class HTTPRunDB(RunDBInterface):
2359
2360
  :param namespace: Kubernetes namespace where the pipeline is running. Optional.
2360
2361
  :param timeout: Timeout (in seconds) for the API call. Defaults to 30 seconds.
2361
2362
  :param project: Name of the MLRun project associated with the pipeline.
2363
+ :param submit_mode: Whether to submit the pipeline directly to the API.
2362
2364
 
2363
2365
  :raises ValueError: Raised if the API response is not successful or contains an
2364
2366
  error.
@@ -2370,6 +2372,9 @@ class HTTPRunDB(RunDBInterface):
2370
2372
  if namespace:
2371
2373
  params["namespace"] = namespace
2372
2374
 
2375
+ if submit_mode:
2376
+ params["submit-mode"] = submit_mode
2377
+
2373
2378
  resp_text = ""
2374
2379
  resp_code = None
2375
2380
  try:
@@ -4188,6 +4193,36 @@ class HTTPRunDB(RunDBInterface):
4188
4193
  results.append(FunctionSummary(**item))
4189
4194
  return results
4190
4195
 
4196
+ def get_monitoring_function_summary(
4197
+ self,
4198
+ project: str,
4199
+ function_name: str,
4200
+ start: Optional[datetime] = None,
4201
+ end: Optional[datetime] = None,
4202
+ include_latest_metrics: bool = False,
4203
+ ) -> FunctionSummary:
4204
+ """
4205
+ Get a monitoring function summary for the specified project and function.
4206
+ :param project: The name of the project.
4207
+ :param function_name: The name of the function.
4208
+ :param start: Start time for filtering the results (optional).
4209
+ :param end: End time for filtering the results (optional).
4210
+ :param include_latest_metrics: Whether to include the latest metrics in the response (default is False).
4211
+
4212
+ :return: A FunctionSummary object containing information about the monitoring function.
4213
+ """
4214
+
4215
+ response = self.api_call(
4216
+ method=mlrun.common.types.HTTPMethod.GET,
4217
+ path=f"projects/{project}/model-monitoring/function-summaries/{function_name}",
4218
+ params={
4219
+ "start": datetime_to_iso(start),
4220
+ "end": datetime_to_iso(end),
4221
+ "include-latest-metrics": include_latest_metrics,
4222
+ },
4223
+ )
4224
+ return FunctionSummary(**response.json())
4225
+
4191
4226
  def create_hub_source(
4192
4227
  self, source: Union[dict, mlrun.common.schemas.IndexedHubSource]
4193
4228
  ):
@@ -902,6 +902,16 @@ class NopDB(RunDBInterface):
902
902
  ) -> [mlrun.common.schemas.model_monitoring.FunctionSummary]:
903
903
  pass
904
904
 
905
+ def get_monitoring_function_summary(
906
+ self,
907
+ project: str,
908
+ function_name: str,
909
+ start: Optional[datetime.datetime] = None,
910
+ end: Optional[datetime.datetime] = None,
911
+ include_latest_metrics: bool = False,
912
+ ) -> mlrun.common.schemas.model_monitoring.FunctionSummary:
913
+ pass
914
+
905
915
  def generate_event(
906
916
  self, name: str, event_data: Union[dict, mlrun.common.schemas.Event], project=""
907
917
  ):
@@ -1286,6 +1286,18 @@ class MLClientCtx:
1286
1286
  self.to_dict(), self._uid, self.project, iter=self._iteration
1287
1287
  )
1288
1288
 
1289
+ def update_run(self):
1290
+ """
1291
+ Store the run object in the DB - removes missing fields.
1292
+ Use _update_run for coherent updates.
1293
+ Should be called by the logging worker only (see is_logging_worker()).
1294
+ """
1295
+ self._write_tmpfile()
1296
+ if self._rundb:
1297
+ self._rundb.update_run(
1298
+ self.to_dict(), self._uid, self.project, iter=self._iteration
1299
+ )
1300
+
1289
1301
  def is_logging_worker(self):
1290
1302
  """
1291
1303
  Check if the current worker is the logging worker.