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.
- {mlrun-1.10.0rc18/mlrun.egg-info → mlrun-1.10.0rc19}/PKG-INFO +1 -1
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/dev-requirements.txt +1 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/__init__.py +21 -2
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/constants.py +1 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/__init__.py +9 -1
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/model_provider/huggingface_provider.py +10 -11
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/model_provider/model_provider.py +57 -61
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/model_provider/openai_provider.py +10 -8
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/launcher/base.py +13 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/run.py +1 -1
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/base.py +5 -2
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/daskjob.py +1 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/nuclio/application/application.py +84 -5
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/nuclio/function.py +3 -1
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/serving/server.py +1 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/serving/states.py +4 -1
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/helpers.py +10 -0
- mlrun-1.10.0rc19/mlrun/utils/version/version.json +4 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19/mlrun.egg-info}/PKG-INFO +1 -1
- mlrun-1.10.0rc18/mlrun/utils/version/version.json +0 -4
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/LICENSE +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/MANIFEST.in +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/Makefile +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/README.md +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/dependencies.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/dockerfiles/mlrun-api/requirements.txt +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/archive.zip +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/function.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/handler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/infile.txt +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/load-project.ipynb +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/mlrun_basics.ipynb +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/mlrun_dask.ipynb +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/mlrun_db.ipynb +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/mlrun_export_import.ipynb +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/mlrun_jobs.ipynb +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/mlrun_sparkk8s.ipynb +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/mlrun_vault.ipynb +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/model.bst +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/new-project.ipynb +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/nulltst.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/params.csv +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/remote-spark.ipynb +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/secrets.txt +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/spark-function.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/training.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/v2_model_server.ipynb +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/examples/xgb_serving.ipynb +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/extras-requirements.txt +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/__main__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/alerts/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/alerts/alert.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/api/schemas/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/artifacts/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/artifacts/base.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/artifacts/dataset.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/artifacts/document.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/artifacts/helpers.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/artifacts/llm_prompt.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/artifacts/manager.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/artifacts/model.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/artifacts/plots.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/db/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/db/dialects.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/formatters/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/formatters/artifact.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/formatters/base.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/formatters/feature_set.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/formatters/function.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/formatters/model_endpoint.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/formatters/pipeline.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/formatters/project.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/formatters/run.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/helpers.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/model_monitoring/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/model_monitoring/helpers.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/runtimes/constants.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/alert.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/api_gateway.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/artifact.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/auth.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/background_task.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/client_spec.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/clusterization_spec.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/common.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/constants.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/datastore_profile.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/events.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/feature_store.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/frontend_spec.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/function.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/http.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/hub.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/k8s.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/memory_reports.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/model_monitoring/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/model_monitoring/constants.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/model_monitoring/functions.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/model_monitoring/grafana.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/model_monitoring/model_endpoints.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/notification.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/object.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/pagination.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/partition.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/pipeline.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/project.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/regex.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/runs.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/runtime_resource.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/schedule.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/secret.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/serving.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/tag.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/schemas/workflow.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/secrets.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/common/types.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/config.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/data_types/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/data_types/data_types.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/data_types/infer.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/data_types/spark.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/data_types/to_pandas.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/alibaba_oss.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/azure_blob.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/base.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/datastore.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/datastore_profile.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/dbfs_store.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/filestore.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/google_cloud_storage.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/hdfs.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/inmem.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/model_provider/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/redis.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/remote_client.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/s3.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/snowflake_utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/sources.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/spark_udf.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/spark_utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/store_resources.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/storeytargets.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/targets.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/v3io.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/vectorstore.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/wasbfs/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/wasbfs/fs.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/db/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/db/auth_utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/db/base.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/db/factory.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/db/httpdb.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/db/nopdb.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/errors.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/execution.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/api.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/common.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/feature_set.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/feature_vector.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/feature_vector_utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/ingestion.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/retrieval/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/retrieval/base.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/retrieval/dask_merger.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/retrieval/job.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/retrieval/local_merger.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/retrieval/spark_merger.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/retrieval/storey_merger.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/feature_store/steps.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/features.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_common/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_common/artifacts_library.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_common/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_common/model_handler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_common/plan.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_common/producer.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_common/utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_dl_common/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_dl_common/loggers/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_dl_common/loggers/logger.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_dl_common/loggers/mlrun_logger.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_dl_common/loggers/tensorboard_logger.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_dl_common/model_handler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_dl_common/utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/artifacts_library.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/loggers/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/loggers/logger.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/loggers/mlrun_logger.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/model_handler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/pkl_model_server.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/plan.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/plans/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/plans/calibration_curve_plan.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/plans/confusion_matrix_plan.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/plans/dataset_plan.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/plans/feature_importance_plan.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/plans/roc_curve_plan.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/producer.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/_ml_common/utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/auto_mlrun/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/auto_mlrun/auto_mlrun.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/huggingface/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/huggingface/model_server.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/lgbm/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/lgbm/callbacks/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/lgbm/callbacks/callback.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/lgbm/callbacks/logging_callback.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/lgbm/callbacks/mlrun_logging_callback.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/lgbm/mlrun_interfaces/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/lgbm/mlrun_interfaces/booster_mlrun_interface.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/lgbm/mlrun_interfaces/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/lgbm/mlrun_interfaces/model_mlrun_interface.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/lgbm/model_handler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/lgbm/model_server.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/lgbm/utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/onnx/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/onnx/dataset.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/onnx/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/onnx/model_handler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/onnx/model_server.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/parallel_coordinates.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/pytorch/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/pytorch/callbacks/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/pytorch/callbacks/callback.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/pytorch/callbacks/logging_callback.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/pytorch/callbacks/mlrun_logging_callback.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/pytorch/callbacks/tensorboard_logging_callback.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/pytorch/callbacks_handler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/pytorch/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/pytorch/model_handler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/pytorch/model_server.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/pytorch/utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/sklearn/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/sklearn/estimator.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/sklearn/metric.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/sklearn/metrics_library.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/sklearn/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/sklearn/model_handler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/sklearn/utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/tf_keras/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/tf_keras/callbacks/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/tf_keras/callbacks/logging_callback.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/tf_keras/callbacks/mlrun_logging_callback.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/tf_keras/callbacks/tensorboard_logging_callback.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/tf_keras/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/tf_keras/model_handler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/tf_keras/model_server.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/tf_keras/utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/xgboost/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/xgboost/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/xgboost/model_handler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/frameworks/xgboost/utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/k8s_utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/launcher/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/launcher/client.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/launcher/factory.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/launcher/local.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/launcher/remote.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/lists.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/api.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/applications/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/applications/_application_steps.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/applications/base.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/applications/context.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/applications/evidently/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/applications/evidently/base.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/applications/histogram_data_drift.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/applications/results.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/controller.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/_schedules.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/_stats.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/tsdb/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/tsdb/base.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/tsdb/helpers.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/tsdb/tdengine/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/tsdb/tdengine/schemas.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/tsdb/tdengine/stream_graph_steps.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connection.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/tsdb/v3io/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/tsdb/v3io/stream_graph_steps.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/features_drift_table.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/helpers.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/metrics/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/metrics/histogram_distance.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/stream_processing.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/model_monitoring/writer.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/context_handler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/errors.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/packager.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/packagers/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/packagers/default_packager.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/packagers/numpy_packagers.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/packagers/pandas_packagers.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/packagers/python_standard_library_packagers.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/packagers_manager.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/utils/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/utils/_archiver.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/utils/_formatter.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/utils/_pickler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/utils/_supported_format.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/utils/log_hint_utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/package/utils/type_hint_utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/platforms/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/platforms/iguazio.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/projects/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/projects/operations.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/projects/pipelines.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/projects/project.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/render.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/databricks_job/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/databricks_job/databricks_cancel_task.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/databricks_job/databricks_runtime.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/databricks_job/databricks_wrapper.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/funcdoc.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/function_reference.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/generators.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/kubejob.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/local.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/mounts.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/mpijob/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/mpijob/abstract.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/mpijob/v1.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/nuclio/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/nuclio/api_gateway.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/nuclio/application/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/nuclio/application/reverse_proxy.go +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/nuclio/nuclio.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/nuclio/serving.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/pod.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/remotesparkjob.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/sparkjob/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/sparkjob/spark3job.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/runtimes/utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/secrets.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/serving/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/serving/merger.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/serving/remote.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/serving/routers.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/serving/serving_wrapper.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/serving/system_steps.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/serving/utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/serving/v1_serving.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/serving/v2_serving.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/track/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/track/tracker.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/track/tracker_manager.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/track/trackers/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/track/trackers/mlflow_tracker.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/async_http.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/azure_vault.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/clones.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/condition_evaluator.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/http.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/logger.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/notifications/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/notifications/notification/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/notifications/notification/base.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/notifications/notification/console.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/notifications/notification/git.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/notifications/notification/ipython.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/notifications/notification/mail.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/notifications/notification/slack.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/notifications/notification/webhook.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/notifications/notification_pusher.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/regex.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/retryer.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/singleton.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/v3io_clients.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/vault.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/version/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/utils/version/version.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun.egg-info/SOURCES.txt +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun.egg-info/dependency_links.txt +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun.egg-info/entry_points.txt +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun.egg-info/not-zip-safe +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun.egg-info/requires.txt +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun.egg-info/top_level.txt +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/packages.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/pyproject.toml +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/requirements.txt +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/setup.cfg +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/setup.py +0 -0
|
@@ -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
|
|
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
|
|
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)
|
{mlrun-1.10.0rc18 → mlrun-1.10.0rc19}/mlrun/datastore/model_provider/huggingface_provider.py
RENAMED
|
@@ -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,
|
|
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
|
-
) ->
|
|
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
|
-
) ->
|
|
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`,
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
the
|
|
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,
|
|
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
|
-
) ->
|
|
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
|
-
) ->
|
|
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,
|
|
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
|
-
|
|
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
|
|
105
|
-
) ->
|
|
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[
|
|
144
|
+
operation: Optional[Callable[..., Awaitable[Any]]] = None,
|
|
143
145
|
**invoke_kwargs,
|
|
144
|
-
) ->
|
|
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
|
-
) ->
|
|
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.
|
|
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
|
-
|
|
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[
|
|
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:
|
|
@@ -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
|
-
|
|
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 =
|
|
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.
|
|
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
|
-
|
|
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
|