mlrun 1.10.0rc18__tar.gz → 1.10.0rc19__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mlrun might be problematic. Click here for more details.

Files changed (396) hide show
  1. {mlrun-1.10.0rc18/mlrun.egg-info → mlrun-1.10.0rc19}/PKG-INFO +1 -1
  2. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/dev-requirements.txt +1 -0
  3. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/__init__.py +21 -2
  4. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/constants.py +1 -0
  5. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/__init__.py +9 -1
  6. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/model_provider/huggingface_provider.py +10 -11
  7. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/model_provider/model_provider.py +57 -61
  8. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/model_provider/openai_provider.py +10 -8
  9. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/launcher/base.py +13 -0
  10. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/run.py +1 -1
  11. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/base.py +5 -2
  12. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/daskjob.py +1 -0
  13. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/nuclio/application/application.py +84 -5
  14. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/nuclio/function.py +3 -1
  15. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/serving/server.py +1 -0
  16. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/serving/states.py +4 -1
  17. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/helpers.py +10 -0
  18. mlrun-1.10.0rc19/mlrun/utils/version/version.json +4 -0
  19. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19/mlrun.egg-info}/PKG-INFO +1 -1
  20. mlrun-1.10.0rc18/mlrun/utils/version/version.json +0 -4
  21. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/LICENSE +0 -0
  22. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/MANIFEST.in +0 -0
  23. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/Makefile +0 -0
  24. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/README.md +0 -0
  25. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/dependencies.py +0 -0
  26. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/dockerfiles/mlrun-api/requirements.txt +0 -0
  27. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/archive.zip +0 -0
  28. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/function.py +0 -0
  29. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/handler.py +0 -0
  30. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/infile.txt +0 -0
  31. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/load-project.ipynb +0 -0
  32. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/mlrun_basics.ipynb +0 -0
  33. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/mlrun_dask.ipynb +0 -0
  34. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/mlrun_db.ipynb +0 -0
  35. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/mlrun_export_import.ipynb +0 -0
  36. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/mlrun_jobs.ipynb +0 -0
  37. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/mlrun_sparkk8s.ipynb +0 -0
  38. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/mlrun_vault.ipynb +0 -0
  39. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/model.bst +0 -0
  40. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/new-project.ipynb +0 -0
  41. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/nulltst.py +0 -0
  42. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/params.csv +0 -0
  43. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/remote-spark.ipynb +0 -0
  44. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/secrets.txt +0 -0
  45. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/spark-function.py +0 -0
  46. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/training.py +0 -0
  47. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/v2_model_server.ipynb +0 -0
  48. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/xgb_serving.ipynb +0 -0
  49. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/extras-requirements.txt +0 -0
  50. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/__main__.py +0 -0
  51. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/alerts/__init__.py +0 -0
  52. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/alerts/alert.py +0 -0
  53. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/api/schemas/__init__.py +0 -0
  54. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/artifacts/__init__.py +0 -0
  55. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/artifacts/base.py +0 -0
  56. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/artifacts/dataset.py +0 -0
  57. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/artifacts/document.py +0 -0
  58. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/artifacts/helpers.py +0 -0
  59. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/artifacts/llm_prompt.py +0 -0
  60. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/artifacts/manager.py +0 -0
  61. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/artifacts/model.py +0 -0
  62. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/artifacts/plots.py +0 -0
  63. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/__init__.py +0 -0
  64. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/db/__init__.py +0 -0
  65. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/db/dialects.py +0 -0
  66. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/formatters/__init__.py +0 -0
  67. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/formatters/artifact.py +0 -0
  68. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/formatters/base.py +0 -0
  69. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/formatters/feature_set.py +0 -0
  70. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/formatters/function.py +0 -0
  71. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/formatters/model_endpoint.py +0 -0
  72. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/formatters/pipeline.py +0 -0
  73. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/formatters/project.py +0 -0
  74. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/formatters/run.py +0 -0
  75. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/helpers.py +0 -0
  76. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/model_monitoring/__init__.py +0 -0
  77. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/model_monitoring/helpers.py +0 -0
  78. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/runtimes/constants.py +0 -0
  79. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/__init__.py +0 -0
  80. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/alert.py +0 -0
  81. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/api_gateway.py +0 -0
  82. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/artifact.py +0 -0
  83. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/auth.py +0 -0
  84. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/background_task.py +0 -0
  85. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/client_spec.py +0 -0
  86. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/clusterization_spec.py +0 -0
  87. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/common.py +0 -0
  88. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/constants.py +0 -0
  89. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/datastore_profile.py +0 -0
  90. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/events.py +0 -0
  91. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/feature_store.py +0 -0
  92. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/frontend_spec.py +0 -0
  93. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/function.py +0 -0
  94. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/http.py +0 -0
  95. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/hub.py +0 -0
  96. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/k8s.py +0 -0
  97. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/memory_reports.py +0 -0
  98. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/model_monitoring/__init__.py +0 -0
  99. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/model_monitoring/constants.py +0 -0
  100. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/model_monitoring/functions.py +0 -0
  101. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/model_monitoring/grafana.py +0 -0
  102. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/model_monitoring/model_endpoints.py +0 -0
  103. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/notification.py +0 -0
  104. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/object.py +0 -0
  105. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/pagination.py +0 -0
  106. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/partition.py +0 -0
  107. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/pipeline.py +0 -0
  108. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/project.py +0 -0
  109. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/regex.py +0 -0
  110. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/runs.py +0 -0
  111. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/runtime_resource.py +0 -0
  112. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/schedule.py +0 -0
  113. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/secret.py +0 -0
  114. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/serving.py +0 -0
  115. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/tag.py +0 -0
  116. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/workflow.py +0 -0
  117. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/secrets.py +0 -0
  118. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/types.py +0 -0
  119. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/config.py +0 -0
  120. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/data_types/__init__.py +0 -0
  121. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/data_types/data_types.py +0 -0
  122. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/data_types/infer.py +0 -0
  123. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/data_types/spark.py +0 -0
  124. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/data_types/to_pandas.py +0 -0
  125. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/alibaba_oss.py +0 -0
  126. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/azure_blob.py +0 -0
  127. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/base.py +0 -0
  128. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/datastore.py +0 -0
  129. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/datastore_profile.py +0 -0
  130. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/dbfs_store.py +0 -0
  131. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/filestore.py +0 -0
  132. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/google_cloud_storage.py +0 -0
  133. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/hdfs.py +0 -0
  134. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/inmem.py +0 -0
  135. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/model_provider/__init__.py +0 -0
  136. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/redis.py +0 -0
  137. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/remote_client.py +0 -0
  138. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/s3.py +0 -0
  139. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/snowflake_utils.py +0 -0
  140. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/sources.py +0 -0
  141. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/spark_udf.py +0 -0
  142. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/spark_utils.py +0 -0
  143. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/store_resources.py +0 -0
  144. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/storeytargets.py +0 -0
  145. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/targets.py +0 -0
  146. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/utils.py +0 -0
  147. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/v3io.py +0 -0
  148. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/vectorstore.py +0 -0
  149. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/wasbfs/__init__.py +0 -0
  150. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/wasbfs/fs.py +0 -0
  151. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/db/__init__.py +0 -0
  152. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/db/auth_utils.py +0 -0
  153. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/db/base.py +0 -0
  154. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/db/factory.py +0 -0
  155. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/db/httpdb.py +0 -0
  156. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/db/nopdb.py +0 -0
  157. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/errors.py +0 -0
  158. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/execution.py +0 -0
  159. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/__init__.py +0 -0
  160. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/api.py +0 -0
  161. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/common.py +0 -0
  162. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/feature_set.py +0 -0
  163. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/feature_vector.py +0 -0
  164. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/feature_vector_utils.py +0 -0
  165. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/ingestion.py +0 -0
  166. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/retrieval/__init__.py +0 -0
  167. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/retrieval/base.py +0 -0
  168. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/retrieval/dask_merger.py +0 -0
  169. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/retrieval/job.py +0 -0
  170. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/retrieval/local_merger.py +0 -0
  171. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/retrieval/spark_merger.py +0 -0
  172. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/retrieval/storey_merger.py +0 -0
  173. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/steps.py +0 -0
  174. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/features.py +0 -0
  175. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/__init__.py +0 -0
  176. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_common/__init__.py +0 -0
  177. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_common/artifacts_library.py +0 -0
  178. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_common/mlrun_interface.py +0 -0
  179. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_common/model_handler.py +0 -0
  180. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_common/plan.py +0 -0
  181. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_common/producer.py +0 -0
  182. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_common/utils.py +0 -0
  183. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_dl_common/__init__.py +0 -0
  184. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_dl_common/loggers/__init__.py +0 -0
  185. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_dl_common/loggers/logger.py +0 -0
  186. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_dl_common/loggers/mlrun_logger.py +0 -0
  187. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_dl_common/loggers/tensorboard_logger.py +0 -0
  188. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_dl_common/model_handler.py +0 -0
  189. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_dl_common/utils.py +0 -0
  190. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/__init__.py +0 -0
  191. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/artifacts_library.py +0 -0
  192. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/loggers/__init__.py +0 -0
  193. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/loggers/logger.py +0 -0
  194. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/loggers/mlrun_logger.py +0 -0
  195. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/model_handler.py +0 -0
  196. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/pkl_model_server.py +0 -0
  197. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/plan.py +0 -0
  198. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/plans/__init__.py +0 -0
  199. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/plans/calibration_curve_plan.py +0 -0
  200. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/plans/confusion_matrix_plan.py +0 -0
  201. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/plans/dataset_plan.py +0 -0
  202. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/plans/feature_importance_plan.py +0 -0
  203. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/plans/roc_curve_plan.py +0 -0
  204. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/producer.py +0 -0
  205. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/utils.py +0 -0
  206. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/auto_mlrun/__init__.py +0 -0
  207. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/auto_mlrun/auto_mlrun.py +0 -0
  208. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/huggingface/__init__.py +0 -0
  209. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/huggingface/model_server.py +0 -0
  210. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/lgbm/__init__.py +0 -0
  211. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/lgbm/callbacks/__init__.py +0 -0
  212. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/lgbm/callbacks/callback.py +0 -0
  213. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/lgbm/callbacks/logging_callback.py +0 -0
  214. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/lgbm/callbacks/mlrun_logging_callback.py +0 -0
  215. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/lgbm/mlrun_interfaces/__init__.py +0 -0
  216. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/lgbm/mlrun_interfaces/booster_mlrun_interface.py +0 -0
  217. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/lgbm/mlrun_interfaces/mlrun_interface.py +0 -0
  218. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/lgbm/mlrun_interfaces/model_mlrun_interface.py +0 -0
  219. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/lgbm/model_handler.py +0 -0
  220. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/lgbm/model_server.py +0 -0
  221. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/lgbm/utils.py +0 -0
  222. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/onnx/__init__.py +0 -0
  223. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/onnx/dataset.py +0 -0
  224. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/onnx/mlrun_interface.py +0 -0
  225. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/onnx/model_handler.py +0 -0
  226. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/onnx/model_server.py +0 -0
  227. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/parallel_coordinates.py +0 -0
  228. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/pytorch/__init__.py +0 -0
  229. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/pytorch/callbacks/__init__.py +0 -0
  230. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/pytorch/callbacks/callback.py +0 -0
  231. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/pytorch/callbacks/logging_callback.py +0 -0
  232. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/pytorch/callbacks/mlrun_logging_callback.py +0 -0
  233. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/pytorch/callbacks/tensorboard_logging_callback.py +0 -0
  234. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/pytorch/callbacks_handler.py +0 -0
  235. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/pytorch/mlrun_interface.py +0 -0
  236. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/pytorch/model_handler.py +0 -0
  237. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/pytorch/model_server.py +0 -0
  238. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/pytorch/utils.py +0 -0
  239. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/sklearn/__init__.py +0 -0
  240. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/sklearn/estimator.py +0 -0
  241. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/sklearn/metric.py +0 -0
  242. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/sklearn/metrics_library.py +0 -0
  243. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/sklearn/mlrun_interface.py +0 -0
  244. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/sklearn/model_handler.py +0 -0
  245. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/sklearn/utils.py +0 -0
  246. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/tf_keras/__init__.py +0 -0
  247. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/tf_keras/callbacks/__init__.py +0 -0
  248. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/tf_keras/callbacks/logging_callback.py +0 -0
  249. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/tf_keras/callbacks/mlrun_logging_callback.py +0 -0
  250. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/tf_keras/callbacks/tensorboard_logging_callback.py +0 -0
  251. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/tf_keras/mlrun_interface.py +0 -0
  252. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/tf_keras/model_handler.py +0 -0
  253. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/tf_keras/model_server.py +0 -0
  254. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/tf_keras/utils.py +0 -0
  255. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/xgboost/__init__.py +0 -0
  256. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/xgboost/mlrun_interface.py +0 -0
  257. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/xgboost/model_handler.py +0 -0
  258. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/xgboost/utils.py +0 -0
  259. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/k8s_utils.py +0 -0
  260. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/launcher/__init__.py +0 -0
  261. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/launcher/client.py +0 -0
  262. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/launcher/factory.py +0 -0
  263. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/launcher/local.py +0 -0
  264. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/launcher/remote.py +0 -0
  265. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/lists.py +0 -0
  266. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model.py +0 -0
  267. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/__init__.py +0 -0
  268. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/api.py +0 -0
  269. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/applications/__init__.py +0 -0
  270. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/applications/_application_steps.py +0 -0
  271. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/applications/base.py +0 -0
  272. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/applications/context.py +0 -0
  273. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/applications/evidently/__init__.py +0 -0
  274. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/applications/evidently/base.py +0 -0
  275. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/applications/histogram_data_drift.py +0 -0
  276. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/applications/results.py +0 -0
  277. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/controller.py +0 -0
  278. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/__init__.py +0 -0
  279. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/_schedules.py +0 -0
  280. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/_stats.py +0 -0
  281. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/tsdb/__init__.py +0 -0
  282. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/tsdb/base.py +0 -0
  283. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/tsdb/helpers.py +0 -0
  284. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/tsdb/tdengine/__init__.py +0 -0
  285. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/tsdb/tdengine/schemas.py +0 -0
  286. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/tsdb/tdengine/stream_graph_steps.py +0 -0
  287. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connection.py +0 -0
  288. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py +0 -0
  289. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/tsdb/v3io/__init__.py +0 -0
  290. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/tsdb/v3io/stream_graph_steps.py +0 -0
  291. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py +0 -0
  292. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/features_drift_table.py +0 -0
  293. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/helpers.py +0 -0
  294. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/metrics/__init__.py +0 -0
  295. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/metrics/histogram_distance.py +0 -0
  296. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/stream_processing.py +0 -0
  297. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/writer.py +0 -0
  298. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/__init__.py +0 -0
  299. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/context_handler.py +0 -0
  300. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/errors.py +0 -0
  301. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/packager.py +0 -0
  302. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/packagers/__init__.py +0 -0
  303. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/packagers/default_packager.py +0 -0
  304. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/packagers/numpy_packagers.py +0 -0
  305. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/packagers/pandas_packagers.py +0 -0
  306. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/packagers/python_standard_library_packagers.py +0 -0
  307. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/packagers_manager.py +0 -0
  308. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/utils/__init__.py +0 -0
  309. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/utils/_archiver.py +0 -0
  310. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/utils/_formatter.py +0 -0
  311. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/utils/_pickler.py +0 -0
  312. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/utils/_supported_format.py +0 -0
  313. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/utils/log_hint_utils.py +0 -0
  314. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/utils/type_hint_utils.py +0 -0
  315. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/platforms/__init__.py +0 -0
  316. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/platforms/iguazio.py +0 -0
  317. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/projects/__init__.py +0 -0
  318. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/projects/operations.py +0 -0
  319. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/projects/pipelines.py +0 -0
  320. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/projects/project.py +0 -0
  321. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/render.py +0 -0
  322. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/__init__.py +0 -0
  323. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/databricks_job/__init__.py +0 -0
  324. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/databricks_job/databricks_cancel_task.py +0 -0
  325. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/databricks_job/databricks_runtime.py +0 -0
  326. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/databricks_job/databricks_wrapper.py +0 -0
  327. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/funcdoc.py +0 -0
  328. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/function_reference.py +0 -0
  329. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/generators.py +0 -0
  330. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/kubejob.py +0 -0
  331. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/local.py +0 -0
  332. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/mounts.py +0 -0
  333. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/mpijob/__init__.py +0 -0
  334. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/mpijob/abstract.py +0 -0
  335. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/mpijob/v1.py +0 -0
  336. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/nuclio/__init__.py +0 -0
  337. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/nuclio/api_gateway.py +0 -0
  338. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/nuclio/application/__init__.py +0 -0
  339. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/nuclio/application/reverse_proxy.go +0 -0
  340. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/nuclio/nuclio.py +0 -0
  341. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/nuclio/serving.py +0 -0
  342. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/pod.py +0 -0
  343. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/remotesparkjob.py +0 -0
  344. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/sparkjob/__init__.py +0 -0
  345. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/sparkjob/spark3job.py +0 -0
  346. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/utils.py +0 -0
  347. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/secrets.py +0 -0
  348. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/serving/__init__.py +0 -0
  349. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/serving/merger.py +0 -0
  350. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/serving/remote.py +0 -0
  351. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/serving/routers.py +0 -0
  352. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/serving/serving_wrapper.py +0 -0
  353. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/serving/system_steps.py +0 -0
  354. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/serving/utils.py +0 -0
  355. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/serving/v1_serving.py +0 -0
  356. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/serving/v2_serving.py +0 -0
  357. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/track/__init__.py +0 -0
  358. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/track/tracker.py +0 -0
  359. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/track/tracker_manager.py +0 -0
  360. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/track/trackers/__init__.py +0 -0
  361. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/track/trackers/mlflow_tracker.py +0 -0
  362. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/__init__.py +0 -0
  363. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/async_http.py +0 -0
  364. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/azure_vault.py +0 -0
  365. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/clones.py +0 -0
  366. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/condition_evaluator.py +0 -0
  367. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/http.py +0 -0
  368. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/logger.py +0 -0
  369. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/notifications/__init__.py +0 -0
  370. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/notifications/notification/__init__.py +0 -0
  371. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/notifications/notification/base.py +0 -0
  372. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/notifications/notification/console.py +0 -0
  373. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/notifications/notification/git.py +0 -0
  374. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/notifications/notification/ipython.py +0 -0
  375. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/notifications/notification/mail.py +0 -0
  376. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/notifications/notification/slack.py +0 -0
  377. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/notifications/notification/webhook.py +0 -0
  378. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/notifications/notification_pusher.py +0 -0
  379. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/regex.py +0 -0
  380. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/retryer.py +0 -0
  381. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/singleton.py +0 -0
  382. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/v3io_clients.py +0 -0
  383. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/vault.py +0 -0
  384. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/version/__init__.py +0 -0
  385. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/version/version.py +0 -0
  386. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun.egg-info/SOURCES.txt +0 -0
  387. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun.egg-info/dependency_links.txt +0 -0
  388. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun.egg-info/entry_points.txt +0 -0
  389. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun.egg-info/not-zip-safe +0 -0
  390. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun.egg-info/requires.txt +0 -0
  391. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun.egg-info/top_level.txt +0 -0
  392. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/packages.py +0 -0
  393. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/pyproject.toml +0 -0
  394. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/requirements.txt +0 -0
  395. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/setup.cfg +0 -0
  396. {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mlrun
3
- Version: 1.10.0rc18
3
+ Version: 1.10.0rc19
4
4
  Summary: Tracking and config of machine learning runs
5
5
  Home-page: https://github.com/mlrun/mlrun
6
6
  Author: Yaron Haviv
@@ -48,3 +48,4 @@ openai~=1.88
48
48
  transformers~=4.53
49
49
  # for hugging face image classifier test:
50
50
  tf-keras~=2.18
51
+ pillow~=11.3
@@ -31,6 +31,7 @@ from typing import Optional
31
31
 
32
32
  import dotenv
33
33
 
34
+ from .common.constants import MLRUN_ACTIVE_PROJECT
34
35
  from .config import config as mlconf
35
36
  from .datastore import DataItem, ModelProvider, store_manager
36
37
  from .db import get_run_db
@@ -167,11 +168,29 @@ def set_environment(
167
168
 
168
169
 
169
170
  def get_current_project(silent: bool = False) -> Optional[MlrunProject]:
170
- if not pipeline_context.project and not silent:
171
+ if pipeline_context.project:
172
+ return pipeline_context.project
173
+
174
+ project_name = environ.get(MLRUN_ACTIVE_PROJECT, None)
175
+ if not project_name:
176
+ if not silent:
177
+ raise MLRunInvalidArgumentError(
178
+ "No current project is initialized. Use new, get or load project functions first."
179
+ )
180
+ return None
181
+
182
+ project = load_project(
183
+ name=project_name,
184
+ url=project_name,
185
+ save=False,
186
+ sync_functions=False,
187
+ )
188
+
189
+ if not project and not silent:
171
190
  raise MLRunInvalidArgumentError(
172
191
  "No current project is initialized. Use new, get or load project functions first."
173
192
  )
174
- return pipeline_context.project
193
+ return project
175
194
 
176
195
 
177
196
  def get_sample_path(subpath=""):
@@ -30,6 +30,7 @@ RESERVED_TAG_NAME_LATEST = "latest"
30
30
  JOB_TYPE_WORKFLOW_RUNNER = "workflow-runner"
31
31
  JOB_TYPE_PROJECT_LOADER = "project-loader"
32
32
  JOB_TYPE_RERUN_WORKFLOW_RUNNER = "rerun-workflow-runner"
33
+ MLRUN_ACTIVE_PROJECT = "MLRUN_ACTIVE_PROJECT"
33
34
 
34
35
 
35
36
  class MLRunInternalLabels:
@@ -39,6 +39,7 @@ __all__ = [
39
39
  from urllib.parse import urlparse
40
40
 
41
41
  import fsspec
42
+ import storey
42
43
 
43
44
  import mlrun.datastore.wasbfs
44
45
  from mlrun.datastore.datastore_profile import (
@@ -168,11 +169,12 @@ def get_stream_pusher(stream_path: str, **kwargs):
168
169
  raise ValueError(f"unsupported stream path {stream_path}")
169
170
 
170
171
 
171
- class _DummyStream:
172
+ class _DummyStream(storey.MapClass):
172
173
  """stream emulator for tests and debug"""
173
174
 
174
175
  def __init__(self, event_list=None, **kwargs):
175
176
  self.event_list = event_list or []
177
+ super().__init__(**kwargs)
176
178
 
177
179
  def push(self, data, **kwargs):
178
180
  if not isinstance(data, list):
@@ -180,3 +182,9 @@ class _DummyStream:
180
182
  for item in data:
181
183
  logger.info(f"dummy stream got event: {item}, kwargs={kwargs}")
182
184
  self.event_list.append(item)
185
+
186
+ def do(self, event):
187
+ if not isinstance(event, list):
188
+ event = [event]
189
+ for item in event:
190
+ self.event_list.append(item)
@@ -12,16 +12,14 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- from typing import TYPE_CHECKING, Optional, TypeVar, Union
15
+ from typing import TYPE_CHECKING, Any, Optional, Union
16
16
 
17
17
  import mlrun
18
18
  from mlrun.datastore.model_provider.model_provider import ModelProvider
19
19
 
20
20
  if TYPE_CHECKING:
21
21
  from transformers.pipelines.base import Pipeline
22
-
23
- T = TypeVar("T")
24
- ChatType = list[dict[str, str]] # according to transformers.pipelines.text_generation
22
+ from transformers.pipelines.text_generation import ChatType
25
23
 
26
24
 
27
25
  class HuggingFaceProvider(ModelProvider):
@@ -117,7 +115,7 @@ class HuggingFaceProvider(ModelProvider):
117
115
 
118
116
  def custom_invoke(
119
117
  self, operation: Optional["Pipeline"] = None, **invoke_kwargs
120
- ) -> Optional[T]:
118
+ ) -> Union[list, dict, Any]:
121
119
  """
122
120
  HuggingFace implementation of `ModelProvider.custom_invoke`.
123
121
  Use the default config in provider client/ user defined client:
@@ -150,22 +148,23 @@ class HuggingFaceProvider(ModelProvider):
150
148
 
151
149
  def invoke(
152
150
  self,
153
- messages: Union[str, list[str], ChatType, list[ChatType]] = None,
151
+ messages: Union[str, list[str], "ChatType", list["ChatType"]] = None,
154
152
  as_str: bool = False,
155
153
  **invoke_kwargs,
156
- ) -> Optional[Union[str, list, T]]:
154
+ ) -> Union[str, list]:
157
155
  """
158
156
  HuggingFace-specific implementation of `ModelProvider.invoke`.
159
157
  Invokes a HuggingFace model operation using the synchronous client.
160
158
  For complete usage details, refer to `ModelProvider.invoke`.
159
+
161
160
  :param messages:
162
161
  Same as ModelProvider.invoke.
163
162
 
164
163
  :param as_str:
165
- If `True`, returns only the main content from a single response
166
- (intended for single-response use cases).
167
- If `False`, returns the full response object, whose type depends on
168
- the client (e.g., `pipeline`).
164
+ If `True`, return only the main content (e.g., generated text) from a
165
+ **single-response output** — intended for use cases where you expect exactly one result.
166
+
167
+ If `False`, return the **full raw response object**, which is a list of dictionaries.
169
168
 
170
169
  :param invoke_kwargs:
171
170
  Same as ModelProvider.invoke.
@@ -12,15 +12,13 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  from collections.abc import Awaitable
15
- from typing import Any, Callable, Optional, TypeVar, Union
15
+ from typing import Any, Callable, Optional, Union
16
16
 
17
17
  import mlrun.errors
18
18
  from mlrun.datastore.remote_client import (
19
19
  BaseRemoteClient,
20
20
  )
21
21
 
22
- T = TypeVar("T")
23
-
24
22
 
25
23
  class ModelProvider(BaseRemoteClient):
26
24
  """
@@ -79,12 +77,66 @@ class ModelProvider(BaseRemoteClient):
79
77
 
80
78
  raise NotImplementedError("load_client method is not implemented")
81
79
 
80
+ @property
81
+ def client(self) -> Any:
82
+ return self._client
83
+
84
+ @property
85
+ def model(self) -> Optional[str]:
86
+ """
87
+ Returns the model identifier used by the underlying SDK.
88
+
89
+ :return: A string representing the model ID, or None if not set.
90
+ """
91
+ return self.endpoint
92
+
93
+ def get_invoke_kwargs(self, invoke_kwargs) -> dict:
94
+ kwargs = self.default_invoke_kwargs.copy()
95
+ kwargs.update(invoke_kwargs)
96
+ return kwargs
97
+
98
+ @property
99
+ def async_client(self) -> Any:
100
+ if not self.support_async:
101
+ raise mlrun.errors.MLRunInvalidArgumentError(
102
+ f"{self.__class__.__name__} does not support async operations"
103
+ )
104
+ return self._async_client
105
+
106
+ def custom_invoke(self, operation: Optional[Callable], **invoke_kwargs) -> Any:
107
+ """
108
+ Invokes a model operation from a provider (e.g., OpenAI, Hugging Face, etc.) with the given keyword arguments.
109
+
110
+ Useful for dynamically calling model methods like text generation, chat completions, or image generation.
111
+ The operation must be a callable that accepts keyword arguments.
112
+
113
+ :param operation: A callable representing the model operation (e.g., a client method).
114
+ :param invoke_kwargs: Keyword arguments to pass to the operation.
115
+ :return: The full response returned by the operation.
116
+ """
117
+ raise NotImplementedError("custom_invoke method is not implemented")
118
+
119
+ async def async_custom_invoke(
120
+ self, operation: Optional[Callable[..., Awaitable[Any]]], **invoke_kwargs
121
+ ) -> Any:
122
+ """
123
+ Asynchronously invokes a model operation from a provider (e.g., OpenAI, Hugging Face, etc.)
124
+ with the given keyword arguments.
125
+
126
+ The operation must be an async callable (e.g., a method from an async client) that accepts keyword arguments.
127
+
128
+ :param operation: An async callable representing the model operation (e.g., an async_client method).
129
+ :param invoke_kwargs: Keyword arguments to pass to the operation.
130
+ :return: The full response returned by the awaited operation.
131
+ """
132
+ raise NotImplementedError("async_custom_invoke is not implemented")
133
+
82
134
  def invoke(
83
135
  self,
84
136
  messages: Optional[list[dict]] = None,
85
137
  as_str: bool = False,
86
138
  **invoke_kwargs,
87
- ) -> Optional[Union[str, T]]:
139
+ ) -> Union[str, Any]:
88
140
  """
89
141
  Invokes a generative AI model with the provided messages and additional parameters.
90
142
  This method is designed to be a flexible interface for interacting with various
@@ -127,67 +179,11 @@ class ModelProvider(BaseRemoteClient):
127
179
  """
128
180
  raise NotImplementedError("invoke method is not implemented")
129
181
 
130
- def custom_invoke(
131
- self, operation: Optional[Callable[..., T]] = None, **invoke_kwargs
132
- ) -> Optional[T]:
133
- """
134
- Invokes a model operation from a provider (e.g., OpenAI, Hugging Face, etc.) with the given keyword arguments.
135
-
136
- Useful for dynamically calling model methods like text generation, chat completions, or image generation.
137
- The operation must be a callable that accepts keyword arguments.
138
-
139
- :param operation: A callable representing the model operation (e.g., a client method).
140
- :param invoke_kwargs: Keyword arguments to pass to the operation.
141
- :return: The full response returned by the operation.
142
- """
143
- raise NotImplementedError("custom_invoke method is not implemented")
144
-
145
- @property
146
- def client(self) -> Any:
147
- return self._client
148
-
149
- @property
150
- def model(self) -> Optional[str]:
151
- """
152
- Returns the model identifier used by the underlying SDK.
153
-
154
- :return: A string representing the model ID, or None if not set.
155
- """
156
- return self.endpoint
157
-
158
- def get_invoke_kwargs(self, invoke_kwargs) -> dict:
159
- kwargs = self.default_invoke_kwargs.copy()
160
- kwargs.update(invoke_kwargs)
161
- return kwargs
162
-
163
- @property
164
- def async_client(self) -> Any:
165
- if not self.support_async:
166
- raise mlrun.errors.MLRunInvalidArgumentError(
167
- f"{self.__class__.__name__} does not support async operations"
168
- )
169
- return self._async_client
170
-
171
- async def async_custom_invoke(
172
- self, operation: Optional[Callable[..., Awaitable[T]]], **invoke_kwargs
173
- ) -> Optional[T]:
174
- """
175
- Asynchronously invokes a model operation from a provider (e.g., OpenAI, Hugging Face, etc.)
176
- with the given keyword arguments.
177
-
178
- The operation must be an async callable (e.g., a method from an async client) that accepts keyword arguments.
179
-
180
- :param operation: An async callable representing the model operation (e.g., an async_client method).
181
- :param invoke_kwargs: Keyword arguments to pass to the operation.
182
- :return: The full response returned by the awaited operation.
183
- """
184
- raise NotImplementedError("async_custom_invoke is not implemented")
185
-
186
182
  async def async_invoke(
187
183
  self,
188
184
  messages: Optional[list[dict]] = None,
189
185
  as_str: bool = False,
190
186
  **invoke_kwargs,
191
- ) -> Optional[str]:
187
+ ) -> Union[str, Any]:
192
188
  """Async version of `invoke`. See `invoke` for full documentation."""
193
189
  raise NotImplementedError("async_invoke is not implemented")
@@ -13,13 +13,15 @@
13
13
  # limitations under the License.
14
14
  import inspect
15
15
  from collections.abc import Awaitable
16
- from typing import Callable, Optional, TypeVar, Union
16
+ from typing import TYPE_CHECKING, Any, Callable, Optional, Union
17
17
 
18
18
  import mlrun
19
19
  from mlrun.datastore.model_provider.model_provider import ModelProvider
20
20
  from mlrun.datastore.utils import accepts_param
21
21
 
22
- T = TypeVar("T")
22
+ if TYPE_CHECKING:
23
+ from openai._models import BaseModel # noqa
24
+ from openai.types.chat.chat_completion import ChatCompletion
23
25
 
24
26
 
25
27
  class OpenAIProvider(ModelProvider):
@@ -101,8 +103,8 @@ class OpenAIProvider(ModelProvider):
101
103
  return self._sanitize_options(res)
102
104
 
103
105
  def custom_invoke(
104
- self, operation: Optional[Callable[..., T]] = None, **invoke_kwargs
105
- ) -> Optional[T]:
106
+ self, operation: Optional[Callable] = None, **invoke_kwargs
107
+ ) -> Union["ChatCompletion", "BaseModel"]:
106
108
  """
107
109
  OpenAI-specific implementation of `ModelProvider.custom_invoke`.
108
110
 
@@ -139,9 +141,9 @@ class OpenAIProvider(ModelProvider):
139
141
 
140
142
  async def async_custom_invoke(
141
143
  self,
142
- operation: Optional[Callable[..., Awaitable[T]]] = None,
144
+ operation: Optional[Callable[..., Awaitable[Any]]] = None,
143
145
  **invoke_kwargs,
144
- ) -> Optional[T]:
146
+ ) -> Union["ChatCompletion", "BaseModel"]:
145
147
  """
146
148
  OpenAI-specific implementation of `ModelProvider.async_custom_invoke`.
147
149
 
@@ -183,7 +185,7 @@ class OpenAIProvider(ModelProvider):
183
185
  messages: Optional[list[dict]] = None,
184
186
  as_str: bool = False,
185
187
  **invoke_kwargs,
186
- ) -> Optional[Union[str, T]]:
188
+ ) -> Union[str, "ChatCompletion"]:
187
189
  """
188
190
  OpenAI-specific implementation of `ModelProvider.invoke`.
189
191
  Invokes an OpenAI model operation using the sync client.
@@ -212,7 +214,7 @@ class OpenAIProvider(ModelProvider):
212
214
  messages: Optional[list[dict]] = None,
213
215
  as_str: bool = False,
214
216
  **invoke_kwargs,
215
- ) -> str:
217
+ ) -> Union[str, "ChatCompletion"]:
216
218
  """
217
219
  OpenAI-specific implementation of `ModelProvider.async_invoke`.
218
220
  Invokes an OpenAI model operation using the async client.
@@ -157,6 +157,19 @@ class BaseLauncher(abc.ABC):
157
157
  ]:
158
158
  mlrun.utils.helpers.warn_on_deprecated_image(image)
159
159
 
160
+ # Raise an error if retry is configured for a runtime that doesn't support retries.
161
+ # For local runs, we intentionally skip this validation and allow the run to proceed, since they are typically
162
+ # used for debugging purposes, and in such cases we avoid blocking their execution.
163
+ if (
164
+ not mlrun.runtimes.RuntimeKinds.is_local_runtime(runtime.kind)
165
+ and run.spec.retry.count
166
+ and runtime.kind not in mlrun.runtimes.RuntimeKinds.retriable_runtimes()
167
+ ):
168
+ raise mlrun.errors.MLRunInvalidArgumentError(
169
+ f"Retry is not supported for {runtime.kind} runtime, supported runtimes are: "
170
+ f"{mlrun.runtimes.RuntimeKinds.retriable_runtimes()}"
171
+ )
172
+
160
173
  @staticmethod
161
174
  def _validate_output_path(
162
175
  runtime: "mlrun.runtimes.BaseRuntime",
@@ -365,7 +365,7 @@ def import_function(url="", secrets=None, db="", project=None, new_name=None):
365
365
  def import_function_to_dict(url, secrets=None):
366
366
  """Load function spec from local/remote YAML file"""
367
367
  obj = get_object(url, secrets)
368
- runtime = yaml.load(obj, Loader=yaml.FullLoader)
368
+ runtime = yaml.safe_load(obj)
369
369
  remote = "://" in url
370
370
 
371
371
  code = get_in(runtime, "spec.build.functionSourceCode")
@@ -447,14 +447,17 @@ class BaseRuntime(ModelObj):
447
447
  :return: Dictionary with all the variables that could be parsed
448
448
  """
449
449
  runtime_env = {
450
- "MLRUN_ACTIVE_PROJECT": self.metadata.project or config.active_project
450
+ mlrun_constants.MLRUN_ACTIVE_PROJECT: self.metadata.project
451
+ or config.active_project
451
452
  }
452
453
  if runobj:
453
454
  runtime_env["MLRUN_EXEC_CONFIG"] = runobj.to_json(
454
455
  exclude_notifications_params=True
455
456
  )
456
457
  if runobj.metadata.project:
457
- runtime_env["MLRUN_ACTIVE_PROJECT"] = runobj.metadata.project
458
+ runtime_env[mlrun_constants.MLRUN_ACTIVE_PROJECT] = (
459
+ runobj.metadata.project
460
+ )
458
461
  if runobj.spec.verbose:
459
462
  runtime_env["MLRUN_LOG_LEVEL"] = "DEBUG"
460
463
  if config.httpdb.api_url:
@@ -541,6 +541,7 @@ class DaskCluster(KubejobRuntime):
541
541
  notifications=notifications,
542
542
  returns=returns,
543
543
  state_thresholds=state_thresholds,
544
+ retry=retry,
544
545
  **launcher_kwargs,
545
546
  )
546
547
 
@@ -29,12 +29,13 @@ from mlrun.runtimes.nuclio.api_gateway import (
29
29
  APIGatewaySpec,
30
30
  )
31
31
  from mlrun.runtimes.nuclio.function import NuclioSpec, NuclioStatus
32
- from mlrun.utils import logger, update_in
32
+ from mlrun.utils import is_valid_port, logger, update_in
33
33
 
34
34
 
35
35
  class ApplicationSpec(NuclioSpec):
36
36
  _dict_fields = NuclioSpec._dict_fields + [
37
37
  "internal_application_port",
38
+ "application_ports",
38
39
  ]
39
40
 
40
41
  def __init__(
@@ -79,6 +80,7 @@ class ApplicationSpec(NuclioSpec):
79
80
  state_thresholds=None,
80
81
  disable_default_http_trigger=None,
81
82
  internal_application_port=None,
83
+ application_ports=None,
82
84
  ):
83
85
  super().__init__(
84
86
  command=command,
@@ -126,11 +128,54 @@ class ApplicationSpec(NuclioSpec):
126
128
  self.min_replicas = min_replicas or 1
127
129
  self.max_replicas = max_replicas or 1
128
130
 
131
+ # initializing internal application port and application ports
132
+ self._internal_application_port = None
133
+ self._application_ports = []
134
+
135
+ application_ports = application_ports or []
136
+
137
+ # if internal_application_port is not provided, use the first application port
138
+ if not internal_application_port and len(application_ports) > 0:
139
+ internal_application_port = application_ports[0]
140
+
141
+ # the port of application sidecar to which traffic will be routed from a nuclio function
129
142
  self.internal_application_port = (
130
143
  internal_application_port
131
144
  or mlrun.mlconf.function.application.default_sidecar_internal_port
132
145
  )
133
146
 
147
+ # all exposed ports by the application sidecar
148
+ self.application_ports = application_ports
149
+
150
+ @property
151
+ def application_ports(self):
152
+ return self._application_ports
153
+
154
+ @application_ports.setter
155
+ def application_ports(self, ports):
156
+ """
157
+ Set the application ports for the application sidecar.
158
+ The internal application port is always included and always first.
159
+ """
160
+ # Handle None / single int
161
+ if ports is None:
162
+ ports = []
163
+ elif isinstance(ports, int):
164
+ ports = [ports]
165
+ elif not isinstance(ports, list):
166
+ raise mlrun.errors.MLRunInvalidArgumentError(
167
+ "Application ports must be a list of integers"
168
+ )
169
+
170
+ # Validate and normalize
171
+ cleaned_ports = []
172
+ for port in ports:
173
+ is_valid_port(port, raise_on_error=True)
174
+ if port != self.internal_application_port:
175
+ cleaned_ports.append(port)
176
+
177
+ self._application_ports = [self.internal_application_port] + cleaned_ports
178
+
134
179
  @property
135
180
  def internal_application_port(self):
136
181
  return self._internal_application_port
@@ -138,10 +183,13 @@ class ApplicationSpec(NuclioSpec):
138
183
  @internal_application_port.setter
139
184
  def internal_application_port(self, port):
140
185
  port = int(port)
141
- if port < 0 or port > 65535:
142
- raise ValueError("Port must be in the range 0-65535")
186
+ is_valid_port(port, raise_on_error=True)
143
187
  self._internal_application_port = port
144
188
 
189
+ # when setting new internal application port, ensure that it is included in the application ports
190
+ # it just triggers setter logic, so setting to the same value is a no-op
191
+ self.application_ports = self._application_ports
192
+
145
193
 
146
194
  class ApplicationStatus(NuclioStatus):
147
195
  def __init__(
@@ -222,6 +270,32 @@ class ApplicationRuntime(RemoteRuntime):
222
270
  def set_internal_application_port(self, port: int):
223
271
  self.spec.internal_application_port = port
224
272
 
273
+ def with_sidecar(
274
+ self,
275
+ name: typing.Optional[str] = None,
276
+ image: typing.Optional[str] = None,
277
+ ports: typing.Optional[typing.Union[int, list[int]]] = None,
278
+ command: typing.Optional[str] = None,
279
+ args: typing.Optional[list[str]] = None,
280
+ ):
281
+ # wraps with_sidecar just to set the application ports
282
+ super().with_sidecar(
283
+ name=name,
284
+ image=image,
285
+ ports=ports,
286
+ command=command,
287
+ args=args,
288
+ )
289
+
290
+ if ports:
291
+ if self.spec.internal_application_port != ports[0]:
292
+ logger.info(
293
+ f"Setting internal application port to the first port from the sidecar: {ports[0]}. "
294
+ f"If this is not intended, please set the internal_application_port explicitly."
295
+ )
296
+ self.spec.internal_application_port = ports[0]
297
+ self.spec.application_ports = ports
298
+
225
299
  def pre_deploy_validation(self):
226
300
  super().pre_deploy_validation()
227
301
  if not self.spec.config.get("spec.sidecars"):
@@ -431,6 +505,7 @@ class ApplicationRuntime(RemoteRuntime):
431
505
  ssl_redirect: typing.Optional[bool] = None,
432
506
  set_as_default: bool = False,
433
507
  gateway_timeout: typing.Optional[int] = None,
508
+ port: typing.Optional[int] = None,
434
509
  ):
435
510
  """
436
511
  Create the application API gateway. Once the application is deployed, the API gateway can be created.
@@ -447,6 +522,8 @@ class ApplicationRuntime(RemoteRuntime):
447
522
  :param set_as_default: Set the API gateway as the default for the application (`status.api_gateway`)
448
523
  :param gateway_timeout: nginx ingress timeout in sec (request timeout, when will the gateway return an
449
524
  error)
525
+ :param port: The API gateway port, used only when direct_port_access=True
526
+
450
527
  :return: The API gateway URL
451
528
  """
452
529
  if not name:
@@ -467,7 +544,9 @@ class ApplicationRuntime(RemoteRuntime):
467
544
  "Authentication credentials not provided"
468
545
  )
469
546
 
470
- ports = self.spec.internal_application_port if direct_port_access else []
547
+ ports = (
548
+ port or self.spec.internal_application_port if direct_port_access else []
549
+ )
471
550
 
472
551
  api_gateway = APIGateway(
473
552
  APIGatewayMetadata(
@@ -728,7 +807,7 @@ class ApplicationRuntime(RemoteRuntime):
728
807
  self.with_sidecar(
729
808
  name=self.status.sidecar_name,
730
809
  image=self.status.application_image,
731
- ports=self.spec.internal_application_port,
810
+ ports=self.spec.application_ports,
732
811
  command=self.spec.command,
733
812
  args=self.spec.args,
734
813
  )
@@ -29,6 +29,7 @@ from kubernetes import client
29
29
  from nuclio.deploy import find_dashboard_url, get_deploy_status
30
30
  from nuclio.triggers import V3IOStreamTrigger
31
31
 
32
+ import mlrun.common.constants
32
33
  import mlrun.db
33
34
  import mlrun.errors
34
35
  import mlrun.k8s_utils
@@ -830,7 +831,8 @@ class RemoteRuntime(KubeResource):
830
831
  def _get_runtime_env(self):
831
832
  # for runtime specific env var enrichment (before deploy)
832
833
  runtime_env = {
833
- "MLRUN_ACTIVE_PROJECT": self.metadata.project or mlconf.active_project,
834
+ mlrun.common.constants.MLRUN_ACTIVE_PROJECT: self.metadata.project
835
+ or mlconf.active_project,
834
836
  }
835
837
  if mlconf.httpdb.api_url:
836
838
  runtime_env["MLRUN_DBPATH"] = mlconf.httpdb.api_url
@@ -361,6 +361,7 @@ def add_error_raiser_step(
361
361
  raise_exception=monitored_step.raise_exception,
362
362
  models_names=list(monitored_step.class_args["models"].keys()),
363
363
  model_endpoint_creation_strategy=mlrun.common.schemas.ModelEndpointCreationStrategy.SKIP,
364
+ function=monitored_step.function,
364
365
  )
365
366
  if monitored_step.responder:
366
367
  monitored_step.responder = False
@@ -48,7 +48,7 @@ from mlrun.datastore.storeytargets import KafkaStoreyTarget, StreamStoreyTarget
48
48
  from mlrun.utils import get_data_from_path, logger, split_path
49
49
 
50
50
  from ..config import config
51
- from ..datastore import get_stream_pusher
51
+ from ..datastore import _DummyStream, get_stream_pusher
52
52
  from ..datastore.utils import (
53
53
  get_kafka_brokers_from_dict,
54
54
  parse_kafka_url,
@@ -1287,6 +1287,7 @@ class LLModel(Model):
1287
1287
  {
1288
1288
  place_holder: input_data.get(body_map["field"])
1289
1289
  for place_holder, body_map in prompt_legend.items()
1290
+ if input_data.get(body_map["field"])
1290
1291
  }
1291
1292
  if prompt_legend
1292
1293
  else {}
@@ -3099,6 +3100,8 @@ def _init_async_objects(context, steps):
3099
3100
  context=context,
3100
3101
  **options,
3101
3102
  )
3103
+ elif stream_path.startswith("dummy://"):
3104
+ step._async_object = _DummyStream(context=context, **options)
3102
3105
  else:
3103
3106
  if stream_path.startswith("v3io://"):
3104
3107
  endpoint, stream_path = parse_path(step.path)
@@ -2427,3 +2427,13 @@ def get_data_from_path(
2427
2427
  if isinstance(output_data, (int, float)):
2428
2428
  output_data = [output_data]
2429
2429
  return output_data
2430
+
2431
+
2432
+ def is_valid_port(port: int, raise_on_error: bool = False) -> bool:
2433
+ if not port:
2434
+ return False
2435
+ if 0 <= port <= 65535:
2436
+ return True
2437
+ if raise_on_error:
2438
+ raise ValueError("Port must be in the range 0–65535")
2439
+ return False
@@ -0,0 +1,4 @@
1
+ {
2
+ "git_commit": "c6c790191ecb3442b09dc10bde02dc75f7216bb1",
3
+ "version": "1.10.0-rc19"
4
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mlrun
3
- Version: 1.10.0rc18
3
+ Version: 1.10.0rc19
4
4
  Summary: Tracking and config of machine learning runs
5
5
  Home-page: https://github.com/mlrun/mlrun
6
6
  Author: Yaron Haviv