mlrun 1.10.0rc18__tar.gz → 1.10.0rc20__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-1.10.0rc20}/Makefile +73 -12
- {mlrun-1.10.0rc18/mlrun.egg-info → mlrun-1.10.0rc20}/PKG-INFO +4 -4
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/dev-requirements.txt +1 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/dockerfiles/mlrun-api/requirements.txt +1 -1
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/__init__.py +21 -2
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/constants.py +1 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/function.py +10 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/model_monitoring/constants.py +4 -11
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/model_monitoring/model_endpoints.py +2 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/__init__.py +9 -1
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/model_provider/huggingface_provider.py +114 -26
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/model_provider/model_provider.py +144 -70
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/model_provider/openai_provider.py +95 -37
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/db/base.py +0 -19
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/db/httpdb.py +10 -46
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/db/nopdb.py +0 -10
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/launcher/base.py +13 -6
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/api.py +43 -22
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/applications/base.py +1 -1
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/controller.py +112 -38
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/db/_schedules.py +13 -9
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/stream_processing.py +16 -12
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/platforms/__init__.py +3 -2
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/projects/project.py +2 -2
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/run.py +1 -1
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/base.py +5 -2
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/daskjob.py +1 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/nuclio/application/application.py +84 -5
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/nuclio/function.py +3 -1
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/serving/server.py +24 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/serving/states.py +80 -30
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/serving/system_steps.py +60 -36
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/utils/helpers.py +37 -13
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/utils/notifications/notification_pusher.py +1 -1
- mlrun-1.10.0rc20/mlrun/utils/version/version.json +4 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20/mlrun.egg-info}/PKG-INFO +4 -4
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun.egg-info/SOURCES.txt +0 -1
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun.egg-info/requires.txt +3 -3
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/requirements.txt +1 -1
- mlrun-1.10.0rc18/mlrun/api/schemas/__init__.py +0 -259
- mlrun-1.10.0rc18/mlrun/utils/version/version.json +0 -4
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/LICENSE +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/MANIFEST.in +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/README.md +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/dependencies.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/examples/archive.zip +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/examples/function.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/examples/handler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/examples/infile.txt +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/examples/load-project.ipynb +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/examples/mlrun_basics.ipynb +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/examples/mlrun_dask.ipynb +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/examples/mlrun_db.ipynb +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/examples/mlrun_export_import.ipynb +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/examples/mlrun_jobs.ipynb +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/examples/mlrun_sparkk8s.ipynb +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/examples/mlrun_vault.ipynb +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/examples/model.bst +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/examples/new-project.ipynb +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/examples/nulltst.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/examples/params.csv +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/examples/remote-spark.ipynb +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/examples/secrets.txt +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/examples/spark-function.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/examples/training.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/examples/v2_model_server.ipynb +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/examples/xgb_serving.ipynb +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/extras-requirements.txt +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/__main__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/alerts/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/alerts/alert.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/artifacts/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/artifacts/base.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/artifacts/dataset.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/artifacts/document.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/artifacts/helpers.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/artifacts/llm_prompt.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/artifacts/manager.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/artifacts/model.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/artifacts/plots.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/db/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/db/dialects.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/formatters/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/formatters/artifact.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/formatters/base.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/formatters/feature_set.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/formatters/function.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/formatters/model_endpoint.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/formatters/pipeline.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/formatters/project.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/formatters/run.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/helpers.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/model_monitoring/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/model_monitoring/helpers.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/runtimes/constants.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/alert.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/api_gateway.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/artifact.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/auth.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/background_task.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/client_spec.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/clusterization_spec.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/common.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/constants.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/datastore_profile.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/events.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/feature_store.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/frontend_spec.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/http.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/hub.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/k8s.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/memory_reports.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/model_monitoring/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/model_monitoring/functions.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/model_monitoring/grafana.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/notification.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/object.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/pagination.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/partition.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/pipeline.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/project.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/regex.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/runs.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/runtime_resource.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/schedule.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/secret.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/serving.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/tag.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/workflow.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/secrets.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/types.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/config.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/data_types/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/data_types/data_types.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/data_types/infer.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/data_types/spark.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/data_types/to_pandas.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/alibaba_oss.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/azure_blob.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/base.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/datastore.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/datastore_profile.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/dbfs_store.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/filestore.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/google_cloud_storage.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/hdfs.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/inmem.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/model_provider/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/redis.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/remote_client.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/s3.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/snowflake_utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/sources.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/spark_udf.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/spark_utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/store_resources.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/storeytargets.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/targets.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/v3io.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/vectorstore.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/wasbfs/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/datastore/wasbfs/fs.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/db/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/db/auth_utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/db/factory.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/errors.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/execution.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/feature_store/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/feature_store/api.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/feature_store/common.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/feature_store/feature_set.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/feature_store/feature_vector.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/feature_store/feature_vector_utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/feature_store/ingestion.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/feature_store/retrieval/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/feature_store/retrieval/base.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/feature_store/retrieval/dask_merger.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/feature_store/retrieval/job.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/feature_store/retrieval/local_merger.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/feature_store/retrieval/spark_merger.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/feature_store/retrieval/storey_merger.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/feature_store/steps.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/features.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_common/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_common/artifacts_library.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_common/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_common/model_handler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_common/plan.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_common/producer.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_common/utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_dl_common/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_dl_common/loggers/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_dl_common/loggers/logger.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_dl_common/loggers/mlrun_logger.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_dl_common/loggers/tensorboard_logger.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_dl_common/model_handler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_dl_common/utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_ml_common/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_ml_common/artifacts_library.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_ml_common/loggers/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_ml_common/loggers/logger.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_ml_common/loggers/mlrun_logger.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_ml_common/model_handler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_ml_common/pkl_model_server.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_ml_common/plan.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_ml_common/plans/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_ml_common/plans/calibration_curve_plan.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_ml_common/plans/confusion_matrix_plan.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_ml_common/plans/dataset_plan.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_ml_common/plans/feature_importance_plan.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_ml_common/plans/roc_curve_plan.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_ml_common/producer.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/_ml_common/utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/auto_mlrun/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/auto_mlrun/auto_mlrun.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/huggingface/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/huggingface/model_server.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/lgbm/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/lgbm/callbacks/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/lgbm/callbacks/callback.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/lgbm/callbacks/logging_callback.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/lgbm/callbacks/mlrun_logging_callback.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/lgbm/mlrun_interfaces/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/lgbm/mlrun_interfaces/booster_mlrun_interface.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/lgbm/mlrun_interfaces/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/lgbm/mlrun_interfaces/model_mlrun_interface.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/lgbm/model_handler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/lgbm/model_server.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/lgbm/utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/onnx/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/onnx/dataset.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/onnx/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/onnx/model_handler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/onnx/model_server.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/parallel_coordinates.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/pytorch/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/pytorch/callbacks/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/pytorch/callbacks/callback.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/pytorch/callbacks/logging_callback.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/pytorch/callbacks/mlrun_logging_callback.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/pytorch/callbacks/tensorboard_logging_callback.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/pytorch/callbacks_handler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/pytorch/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/pytorch/model_handler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/pytorch/model_server.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/pytorch/utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/sklearn/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/sklearn/estimator.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/sklearn/metric.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/sklearn/metrics_library.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/sklearn/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/sklearn/model_handler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/sklearn/utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/tf_keras/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/tf_keras/callbacks/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/tf_keras/callbacks/logging_callback.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/tf_keras/callbacks/mlrun_logging_callback.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/tf_keras/callbacks/tensorboard_logging_callback.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/tf_keras/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/tf_keras/model_handler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/tf_keras/model_server.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/tf_keras/utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/xgboost/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/xgboost/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/xgboost/model_handler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/frameworks/xgboost/utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/k8s_utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/launcher/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/launcher/client.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/launcher/factory.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/launcher/local.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/launcher/remote.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/lists.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/applications/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/applications/_application_steps.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/applications/context.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/applications/evidently/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/applications/evidently/base.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/applications/histogram_data_drift.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/applications/results.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/db/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/db/_stats.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/db/tsdb/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/db/tsdb/base.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/db/tsdb/helpers.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/db/tsdb/tdengine/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/db/tsdb/tdengine/schemas.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/db/tsdb/tdengine/stream_graph_steps.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connection.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/db/tsdb/v3io/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/db/tsdb/v3io/stream_graph_steps.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/features_drift_table.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/helpers.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/metrics/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/metrics/histogram_distance.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/model_monitoring/writer.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/package/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/package/context_handler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/package/errors.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/package/packager.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/package/packagers/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/package/packagers/default_packager.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/package/packagers/numpy_packagers.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/package/packagers/pandas_packagers.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/package/packagers/python_standard_library_packagers.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/package/packagers_manager.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/package/utils/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/package/utils/_archiver.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/package/utils/_formatter.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/package/utils/_pickler.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/package/utils/_supported_format.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/package/utils/log_hint_utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/package/utils/type_hint_utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/platforms/iguazio.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/projects/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/projects/operations.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/projects/pipelines.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/render.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/databricks_job/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/databricks_job/databricks_cancel_task.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/databricks_job/databricks_runtime.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/databricks_job/databricks_wrapper.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/funcdoc.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/function_reference.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/generators.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/kubejob.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/local.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/mounts.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/mpijob/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/mpijob/abstract.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/mpijob/v1.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/nuclio/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/nuclio/api_gateway.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/nuclio/application/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/nuclio/application/reverse_proxy.go +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/nuclio/nuclio.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/nuclio/serving.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/pod.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/remotesparkjob.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/sparkjob/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/sparkjob/spark3job.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/runtimes/utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/secrets.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/serving/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/serving/merger.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/serving/remote.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/serving/routers.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/serving/serving_wrapper.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/serving/utils.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/serving/v1_serving.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/serving/v2_serving.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/track/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/track/tracker.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/track/tracker_manager.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/track/trackers/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/track/trackers/mlflow_tracker.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/utils/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/utils/async_http.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/utils/azure_vault.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/utils/clones.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/utils/condition_evaluator.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/utils/http.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/utils/logger.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/utils/notifications/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/utils/notifications/notification/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/utils/notifications/notification/base.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/utils/notifications/notification/console.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/utils/notifications/notification/git.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/utils/notifications/notification/ipython.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/utils/notifications/notification/mail.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/utils/notifications/notification/slack.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/utils/notifications/notification/webhook.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/utils/regex.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/utils/retryer.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/utils/singleton.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/utils/v3io_clients.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/utils/vault.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/utils/version/__init__.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/utils/version/version.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun.egg-info/dependency_links.txt +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun.egg-info/entry_points.txt +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun.egg-info/not-zip-safe +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun.egg-info/top_level.txt +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/packages.py +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/pyproject.toml +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/setup.cfg +0 -0
- {mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/setup.py +0 -0
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
15
|
# THIS BLOCK IS FOR VARIABLES USER MAY OVERRIDE
|
|
16
|
+
DOCKER_DEFAULT_PLATFORM ?= linux/amd64
|
|
16
17
|
MLRUN_VERSION ?= unstable
|
|
17
18
|
# pip requires the python version to be according to some regex (so "unstable" is not valid for example) this regex only
|
|
18
19
|
# allows us to have free text (like unstable) after the "+". on the contrary in a docker tag "+" is not a valid
|
|
@@ -235,11 +236,20 @@ update-version-file: ## Update the version file
|
|
|
235
236
|
python ./automation/version/version_file.py ensure --mlrun-version $(MLRUN_VERSION)
|
|
236
237
|
|
|
237
238
|
.PHONY: generate-dockerignore
|
|
238
|
-
generate-dockerignore: ## Copies the root .dockerignore and removes
|
|
239
|
+
generate-dockerignore: ## Copies the root .dockerignore and removes test exclusions for test-system
|
|
239
240
|
$(eval TARGET := dockerfiles/${DEST}/Dockerfile.dockerignore)
|
|
240
|
-
@if [ -
|
|
241
|
-
|
|
242
|
-
|
|
241
|
+
@if [ -z "${DEST}" ]; then \
|
|
242
|
+
echo "Error: DEST variable must be set"; \
|
|
243
|
+
exit 1; \
|
|
244
|
+
fi; \
|
|
245
|
+
echo "Generating $(TARGET)..."; \
|
|
246
|
+
temp_file=$$(mktemp); \
|
|
247
|
+
if [ "$(DEST)" = "test-system" ]; then \
|
|
248
|
+
grep -vE '(\*\*/tests|\*\*/env\.yml|\*\*/test-[^/]*\.yml|\*\*/model_monitoring/assets)' .dockerignore > $$temp_file; \
|
|
249
|
+
else \
|
|
250
|
+
sed '/\*\*\/tests/d' .dockerignore > $$temp_file; \
|
|
251
|
+
fi; \
|
|
252
|
+
if [ -f "$(TARGET)" ]; then \
|
|
243
253
|
if cmp -s $$temp_file "$(TARGET)"; then \
|
|
244
254
|
echo "File $(TARGET) already exists and content is identical"; \
|
|
245
255
|
rm $$temp_file; \
|
|
@@ -249,7 +259,7 @@ generate-dockerignore: ## Copies the root .dockerignore and removes the tests pa
|
|
|
249
259
|
mv $$temp_file "$(TARGET)"; \
|
|
250
260
|
fi; \
|
|
251
261
|
else \
|
|
252
|
-
|
|
262
|
+
mv $$temp_file "$(TARGET)"; \
|
|
253
263
|
fi
|
|
254
264
|
|
|
255
265
|
|
|
@@ -292,7 +302,7 @@ MLRUN_CACHE_IMAGE_PUSH_COMMAND := $(if $(and $(MLRUN_DOCKER_CACHE_FROM_TAG),$(ML
|
|
|
292
302
|
DEFAULT_IMAGES += $(MLRUN_IMAGE_NAME_TAGGED)
|
|
293
303
|
|
|
294
304
|
.PHONY: mlrun
|
|
295
|
-
mlrun: update-version-file ## Build mlrun docker image
|
|
305
|
+
mlrun: common-image update-version-file ## Build mlrun docker image
|
|
296
306
|
$(MLRUN_CACHE_IMAGE_PULL_COMMAND)
|
|
297
307
|
docker build \
|
|
298
308
|
--file dockerfiles/mlrun/Dockerfile \
|
|
@@ -300,6 +310,7 @@ mlrun: update-version-file ## Build mlrun docker image
|
|
|
300
310
|
--build-arg MLRUN_PYTHON_VERSION=$(MLRUN_PYTHON_VERSION) \
|
|
301
311
|
--build-arg MLRUN_PIP_VERSION=$(MLRUN_PIP_VERSION) \
|
|
302
312
|
--build-arg MLRUN_UV_IMAGE=$(MLRUN_UV_IMAGE) \
|
|
313
|
+
--build-arg DOCKER_DEFAULT_PLATFORM=$(DOCKER_DEFAULT_PLATFORM) \
|
|
303
314
|
$(MLRUN_IMAGE_DOCKER_CACHE_FROM_FLAG) \
|
|
304
315
|
$(MLRUN_DOCKER_NO_CACHE_FLAG) \
|
|
305
316
|
--tag $(MLRUN_IMAGE_NAME_TAGGED) .
|
|
@@ -325,13 +336,14 @@ MLRUN_KFP_CACHE_IMAGE_PUSH_COMMAND := $(if $(and $(MLRUN_DOCKER_CACHE_FROM_TAG),
|
|
|
325
336
|
DEFAULT_IMAGES += $(MLRUN_KFP_IMAGE_NAME_TAGGED)
|
|
326
337
|
|
|
327
338
|
.PHONY: mlrun-kfp
|
|
328
|
-
mlrun-kfp: update-version-file ## Build mlrun docker image with KFP
|
|
339
|
+
mlrun-kfp: common-image-3.9 update-version-file ## Build mlrun docker image with KFP
|
|
329
340
|
$(MLRUN_KFP_CACHE_IMAGE_PULL_COMMAND)
|
|
330
341
|
docker build \
|
|
331
342
|
--file dockerfiles/mlrun-kfp/Dockerfile \
|
|
332
343
|
--build-arg MLRUN_DOCKER_REGISTRY=$(MLRUN_DOCKER_REGISTRY) \
|
|
333
344
|
--build-arg MLRUN_VERSION=$(MLRUN_VERSION) \
|
|
334
345
|
--build-arg MLRUN_PIP_VERSION=$(MLRUN_PIP_VERSION) \
|
|
346
|
+
--build-arg DOCKER_DEFAULT_PLATFORM=$(DOCKER_DEFAULT_PLATFORM) \
|
|
335
347
|
$(MLRUN_KFP_IMAGE_DOCKER_CACHE_FROM_FLAG) \
|
|
336
348
|
$(MLRUN_DOCKER_NO_CACHE_FLAG) \
|
|
337
349
|
--tag $(MLRUN_KFP_IMAGE_NAME):$(MLRUN_DOCKER_TAG)$(MLRUN_PYTHON_VERSION_SUFFIX) .
|
|
@@ -470,6 +482,49 @@ else
|
|
|
470
482
|
$(MAKE) -C server/go compile-schemas
|
|
471
483
|
endif
|
|
472
484
|
|
|
485
|
+
###############################################################################
|
|
486
|
+
# Common base image
|
|
487
|
+
###############################################################################
|
|
488
|
+
|
|
489
|
+
COMMON_PLATFORM_TAG := $(subst /,_,$(DOCKER_DEFAULT_PLATFORM))
|
|
490
|
+
COMMON_STAMP ?= build/common-image.$(MLRUN_PYTHON_VERSION).$(COMMON_PLATFORM_TAG).stamp
|
|
491
|
+
COMMON_DOCKERFILE := dockerfiles/common/Dockerfile
|
|
492
|
+
COMMON_IMAGE_NAME := mlrun_common_image:$(MLRUN_PYTHON_VERSION)
|
|
493
|
+
|
|
494
|
+
common-image-3.11:
|
|
495
|
+
$(MAKE) common-image MLRUN_PYTHON_VERSION=3.11
|
|
496
|
+
|
|
497
|
+
common-image-3.9:
|
|
498
|
+
$(MAKE) common-image MLRUN_PYTHON_VERSION=3.9
|
|
499
|
+
|
|
500
|
+
# --- Build (cached) ----------------------------------------------------------
|
|
501
|
+
ifeq ($(strip $(MLRUN_NO_CACHE)),)
|
|
502
|
+
common-image: $(COMMON_STAMP)
|
|
503
|
+
|
|
504
|
+
$(COMMON_STAMP): $(COMMON_DOCKERFILE)
|
|
505
|
+
docker build \
|
|
506
|
+
--build-arg MLRUN_PYTHON_VERSION=$(MLRUN_PYTHON_VERSION) \
|
|
507
|
+
--build-arg DOCKER_DEFAULT_PLATFORM=$(DOCKER_DEFAULT_PLATFORM) \
|
|
508
|
+
-f $(COMMON_DOCKERFILE) \
|
|
509
|
+
-t $(COMMON_IMAGE_NAME) . \
|
|
510
|
+
&& mkdir -p $(dir $@) && touch $@
|
|
511
|
+
else # when MLRUN_NO_CACHE is set
|
|
512
|
+
.PHONY: common-image
|
|
513
|
+
common-image:
|
|
514
|
+
docker build \
|
|
515
|
+
--no-cache $(COMMON_DOCKER_ARGS) \
|
|
516
|
+
--build-arg MLRUN_PYTHON_VERSION=$(MLRUN_PYTHON_VERSION) \
|
|
517
|
+
--build-arg DOCKER_DEFAULT_PLATFORM=$(DOCKER_DEFAULT_PLATFORM) \
|
|
518
|
+
-f $(COMMON_DOCKERFILE) \
|
|
519
|
+
-t $(COMMON_IMAGE_NAME) .
|
|
520
|
+
endif
|
|
521
|
+
|
|
522
|
+
.PHONY: clean-common-image
|
|
523
|
+
clean-common-image:
|
|
524
|
+
docker rmi $(COMMON_IMAGE_TAG) || true
|
|
525
|
+
rm -f $(COMMON_STAMP)
|
|
526
|
+
|
|
527
|
+
|
|
473
528
|
MLRUN_API_IMAGE_NAME := $(MLRUN_DOCKER_IMAGE_PREFIX)/mlrun-api
|
|
474
529
|
MLRUN_API_CACHE_IMAGE_NAME := $(MLRUN_CACHE_DOCKER_IMAGE_PREFIX)/mlrun-api
|
|
475
530
|
MLRUN_API_IMAGE_NAME_TAGGED := $(MLRUN_API_IMAGE_NAME):$(MLRUN_DOCKER_TAG)$(MLRUN_PYTHON_VERSION_SUFFIX)
|
|
@@ -479,13 +534,18 @@ MLRUN_API_CACHE_IMAGE_PULL_COMMAND := $(if $(and $(MLRUN_DOCKER_CACHE_FROM_TAG),
|
|
|
479
534
|
MLRUN_API_CACHE_IMAGE_PUSH_COMMAND := $(if $(and $(MLRUN_DOCKER_CACHE_FROM_TAG),$(MLRUN_PUSH_DOCKER_CACHE_IMAGE)),docker tag $(MLRUN_API_IMAGE_NAME_TAGGED) $(MLRUN_API_CACHE_IMAGE_NAME_TAGGED) && docker push $(MLRUN_API_CACHE_IMAGE_NAME_TAGGED),)
|
|
480
535
|
DEFAULT_IMAGES += $(MLRUN_API_IMAGE_NAME_TAGGED)
|
|
481
536
|
|
|
537
|
+
|
|
538
|
+
# The API (and the common image it inherits from) must *always* be built on
|
|
539
|
+
# Python 3.11, regardless of what the rest of the matrix is doing.
|
|
540
|
+
api: export MLRUN_PYTHON_VERSION = 3.11
|
|
482
541
|
.PHONY: api
|
|
483
|
-
api: compile-schemas update-version-file ## Build mlrun-api docker image
|
|
542
|
+
api: common-image-3.11 compile-schemas update-version-file ## Build mlrun-api docker image
|
|
484
543
|
$(MLRUN_API_CACHE_IMAGE_PULL_COMMAND)
|
|
485
544
|
docker build \
|
|
486
545
|
--file dockerfiles/mlrun-api/Dockerfile \
|
|
487
546
|
--build-arg MLRUN_PYTHON_VERSION=$(MLRUN_PYTHON_VERSION) \
|
|
488
547
|
--build-arg MLRUN_UV_IMAGE=$(MLRUN_UV_IMAGE) \
|
|
548
|
+
--build-arg DOCKER_DEFAULT_PLATFORM=$(DOCKER_DEFAULT_PLATFORM) \
|
|
489
549
|
$(MLRUN_API_IMAGE_DOCKER_CACHE_FROM_FLAG) \
|
|
490
550
|
$(MLRUN_DOCKER_NO_CACHE_FLAG) \
|
|
491
551
|
--tag $(MLRUN_API_IMAGE_NAME_TAGGED) .
|
|
@@ -508,7 +568,7 @@ MLRUN_TEST_CACHE_IMAGE_PULL_COMMAND := $(if $(and $(MLRUN_DOCKER_CACHE_FROM_TAG)
|
|
|
508
568
|
MLRUN_TEST_CACHE_IMAGE_PUSH_COMMAND := $(if $(and $(MLRUN_DOCKER_CACHE_FROM_TAG),$(MLRUN_PUSH_DOCKER_CACHE_IMAGE)),docker tag $(MLRUN_TEST_IMAGE_NAME_TAGGED) $(MLRUN_TEST_CACHE_IMAGE_NAME_TAGGED) && docker push $(MLRUN_TEST_CACHE_IMAGE_NAME_TAGGED),)
|
|
509
569
|
|
|
510
570
|
.PHONY: build-test
|
|
511
|
-
build-test: compile-schemas update-version-file ## Build test docker image
|
|
571
|
+
build-test: common-image compile-schemas update-version-file ## Build test docker image
|
|
512
572
|
$(MAKE) generate-dockerignore DEST=test
|
|
513
573
|
$(MLRUN_TEST_CACHE_IMAGE_PULL_COMMAND)
|
|
514
574
|
docker build \
|
|
@@ -517,6 +577,7 @@ build-test: compile-schemas update-version-file ## Build test docker image
|
|
|
517
577
|
--build-arg MLRUN_PIP_VERSION=$(MLRUN_PIP_VERSION) \
|
|
518
578
|
--build-arg MLRUN_PIPELINES_KFP_VERSION=$(MLRUN_PIPELINES_KFP_VERSION) \
|
|
519
579
|
--build-arg MLRUN_UV_VERSION=$(MLRUN_UV_VERSION) \
|
|
580
|
+
--build-arg DOCKER_DEFAULT_PLATFORM=$(DOCKER_DEFAULT_PLATFORM) \
|
|
520
581
|
$(MLRUN_TEST_IMAGE_DOCKER_CACHE_FROM_FLAG) \
|
|
521
582
|
$(MLRUN_DOCKER_NO_CACHE_FLAG) \
|
|
522
583
|
--tag $(MLRUN_TEST_IMAGE_NAME_TAGGED) .
|
|
@@ -529,13 +590,13 @@ push-test: build-test ## Push test docker image
|
|
|
529
590
|
MLRUN_SYSTEM_TEST_IMAGE_NAME := $(MLRUN_DOCKER_IMAGE_PREFIX)/test-system:$(MLRUN_DOCKER_TAG)
|
|
530
591
|
|
|
531
592
|
.PHONY: build-test-system
|
|
532
|
-
build-test-system: compile-schemas update-version-file ## Build system tests docker image
|
|
593
|
+
build-test-system: common-image compile-schemas update-version-file ## Build system tests docker image
|
|
533
594
|
$(MAKE) generate-dockerignore DEST=test-system
|
|
534
595
|
docker build \
|
|
535
596
|
--file dockerfiles/test-system/Dockerfile \
|
|
536
|
-
--build-arg MLRUN_PYTHON_VERSION=$(MLRUN_PYTHON_VERSION) \
|
|
537
597
|
--build-arg MLRUN_PIP_VERSION=$(MLRUN_PIP_VERSION) \
|
|
538
598
|
--build-arg MLRUN_UV_VERSION=$(MLRUN_UV_VERSION) \
|
|
599
|
+
--build-arg DOCKER_DEFAULT_PLATFORM=$(DOCKER_DEFAULT_PLATFORM) \
|
|
539
600
|
$(MLRUN_DOCKER_NO_CACHE_FLAG) \
|
|
540
601
|
--tag $(MLRUN_SYSTEM_TEST_IMAGE_NAME) .
|
|
541
602
|
|
|
@@ -619,7 +680,7 @@ test: clean ## Run mlrun tests
|
|
|
619
680
|
|
|
620
681
|
|
|
621
682
|
.PHONY: test-integration-dockerized
|
|
622
|
-
test-integration-dockerized: build-test ## Run mlrun integration tests in docker container
|
|
683
|
+
test-integration-dockerized: build-test api ## Run mlrun integration tests in docker container, some tests require the api image to be built
|
|
623
684
|
COVERAGE_MOUNT_PATH="/tmp/coverage_reports/integration_tests" ;\
|
|
624
685
|
$(SETUP_COVERAGE_MOUNTING) && \
|
|
625
686
|
docker run \
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mlrun
|
|
3
|
-
Version: 1.10.
|
|
3
|
+
Version: 1.10.0rc20
|
|
4
4
|
Summary: Tracking and config of machine learning runs
|
|
5
5
|
Home-page: https://github.com/mlrun/mlrun
|
|
6
6
|
Author: Yaron Haviv
|
|
@@ -44,7 +44,7 @@ Requires-Dist: semver~=3.0
|
|
|
44
44
|
Requires-Dist: dependency-injector~=4.41
|
|
45
45
|
Requires-Dist: fsspec<2024.7,>=2023.9.2
|
|
46
46
|
Requires-Dist: v3iofs~=0.1.17
|
|
47
|
-
Requires-Dist: storey~=1.10.
|
|
47
|
+
Requires-Dist: storey~=1.10.10
|
|
48
48
|
Requires-Dist: inflection~=0.5.0
|
|
49
49
|
Requires-Dist: python-dotenv~=1.0
|
|
50
50
|
Requires-Dist: setuptools>=75.2
|
|
@@ -112,7 +112,7 @@ Requires-Dist: apscheduler<4,>=3.11; extra == "api"
|
|
|
112
112
|
Requires-Dist: objgraph~=3.6; extra == "api"
|
|
113
113
|
Requires-Dist: igz-mgmt~=0.4.1; extra == "api"
|
|
114
114
|
Requires-Dist: humanfriendly~=10.0; extra == "api"
|
|
115
|
-
Requires-Dist: fastapi~=0.
|
|
115
|
+
Requires-Dist: fastapi~=0.116.0; extra == "api"
|
|
116
116
|
Requires-Dist: sqlalchemy~=2.0; extra == "api"
|
|
117
117
|
Requires-Dist: sqlalchemy-utils~=0.41.2; extra == "api"
|
|
118
118
|
Requires-Dist: pymysql~=1.1; extra == "api"
|
|
@@ -203,7 +203,7 @@ Requires-Dist: dask~=2024.12.1; python_version >= "3.11" and extra == "complete-
|
|
|
203
203
|
Requires-Dist: databricks-sdk~=0.20.0; extra == "complete-api"
|
|
204
204
|
Requires-Dist: distributed~=2023.12.1; python_version < "3.11" and extra == "complete-api"
|
|
205
205
|
Requires-Dist: distributed~=2024.12.1; python_version >= "3.11" and extra == "complete-api"
|
|
206
|
-
Requires-Dist: fastapi~=0.
|
|
206
|
+
Requires-Dist: fastapi~=0.116.0; extra == "complete-api"
|
|
207
207
|
Requires-Dist: gcsfs<2024.7,>=2023.9.2; extra == "complete-api"
|
|
208
208
|
Requires-Dist: google-cloud-bigquery-storage~=2.17; extra == "complete-api"
|
|
209
209
|
Requires-Dist: google-cloud-bigquery[bqstorage,pandas]==3.14.1; extra == "complete-api"
|
|
@@ -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:
|
|
@@ -114,11 +114,21 @@ class StateThresholds(pydantic.v1.BaseModel):
|
|
|
114
114
|
default: typing.Optional[dict[str, str]]
|
|
115
115
|
|
|
116
116
|
|
|
117
|
+
class Backoff(pydantic.v1.BaseModel):
|
|
118
|
+
default_base_delay: typing.Optional[str]
|
|
119
|
+
min_base_delay: typing.Optional[str]
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
class RetrySpec(pydantic.v1.BaseModel):
|
|
123
|
+
backoff: Backoff
|
|
124
|
+
|
|
125
|
+
|
|
117
126
|
class FunctionSpec(pydantic.v1.BaseModel):
|
|
118
127
|
image_pull_secret: typing.Optional[ImagePullSecret]
|
|
119
128
|
security_context: typing.Optional[SecurityContext]
|
|
120
129
|
service_account: typing.Optional[ServiceAccount]
|
|
121
130
|
state_thresholds: typing.Optional[StateThresholds]
|
|
131
|
+
retry: typing.Optional[RetrySpec]
|
|
122
132
|
|
|
123
133
|
class Config:
|
|
124
134
|
extra = pydantic.v1.Extra.allow
|
|
@@ -34,6 +34,7 @@ class ModelEndpointSchema(MonitoringStrEnum):
|
|
|
34
34
|
UID = "uid"
|
|
35
35
|
PROJECT = "project"
|
|
36
36
|
ENDPOINT_TYPE = "endpoint_type"
|
|
37
|
+
MODE = "mode"
|
|
37
38
|
NAME = "name"
|
|
38
39
|
CREATED = "created"
|
|
39
40
|
UPDATED = "updated"
|
|
@@ -326,18 +327,10 @@ class EndpointType(IntEnum):
|
|
|
326
327
|
def top_level_list(cls):
|
|
327
328
|
return [cls.NODE_EP, cls.ROUTER, cls.BATCH_EP]
|
|
328
329
|
|
|
329
|
-
@classmethod
|
|
330
|
-
def real_time_list(cls):
|
|
331
|
-
return [cls.NODE_EP, cls.ROUTER, cls.LEAF_EP]
|
|
332
|
-
|
|
333
|
-
@classmethod
|
|
334
|
-
def batch_list(cls):
|
|
335
|
-
return [cls.BATCH_EP]
|
|
336
330
|
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
BATCH = "batch"
|
|
331
|
+
class EndpointMode(IntEnum):
|
|
332
|
+
REAL_TIME = 0
|
|
333
|
+
BATCH = 1
|
|
341
334
|
|
|
342
335
|
|
|
343
336
|
class MonitoringFunctionNames(MonitoringStrEnum):
|
{mlrun-1.10.0rc18 → mlrun-1.10.0rc20}/mlrun/common/schemas/model_monitoring/model_endpoints.py
RENAMED
|
@@ -28,6 +28,7 @@ from .constants import (
|
|
|
28
28
|
FQN_REGEX,
|
|
29
29
|
MODEL_ENDPOINT_ID_PATTERN,
|
|
30
30
|
PROJECT_PATTERN,
|
|
31
|
+
EndpointMode,
|
|
31
32
|
EndpointType,
|
|
32
33
|
ModelEndpointMonitoringMetricType,
|
|
33
34
|
ModelMonitoringMode,
|
|
@@ -118,6 +119,7 @@ class ModelEndpointMetadata(ObjectMetadata, ModelEndpointParser):
|
|
|
118
119
|
project: constr(regex=PROJECT_PATTERN)
|
|
119
120
|
endpoint_type: EndpointType = EndpointType.NODE_EP
|
|
120
121
|
uid: Optional[constr(regex=MODEL_ENDPOINT_ID_PATTERN)]
|
|
122
|
+
mode: EndpointMode = EndpointMode.REAL_TIME
|
|
121
123
|
|
|
122
124
|
@classmethod
|
|
123
125
|
def mutable_fields(cls):
|
|
@@ -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.0rc20}/mlrun/datastore/model_provider/huggingface_provider.py
RENAMED
|
@@ -12,16 +12,18 @@
|
|
|
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
|
-
from mlrun.datastore.model_provider.model_provider import
|
|
18
|
+
from mlrun.datastore.model_provider.model_provider import (
|
|
19
|
+
InvokeResponseFormat,
|
|
20
|
+
ModelProvider,
|
|
21
|
+
UsageResponseKeys,
|
|
22
|
+
)
|
|
19
23
|
|
|
20
24
|
if TYPE_CHECKING:
|
|
21
25
|
from transformers.pipelines.base import Pipeline
|
|
22
|
-
|
|
23
|
-
T = TypeVar("T")
|
|
24
|
-
ChatType = list[dict[str, str]] # according to transformers.pipelines.text_generation
|
|
26
|
+
from transformers.pipelines.text_generation import ChatType
|
|
25
27
|
|
|
26
28
|
|
|
27
29
|
class HuggingFaceProvider(ModelProvider):
|
|
@@ -63,15 +65,18 @@ class HuggingFaceProvider(ModelProvider):
|
|
|
63
65
|
self.load_client()
|
|
64
66
|
|
|
65
67
|
@staticmethod
|
|
66
|
-
def _extract_string_output(
|
|
68
|
+
def _extract_string_output(response: list[dict]) -> str:
|
|
67
69
|
"""
|
|
68
70
|
Extracts the first generated string from Hugging Face pipeline output,
|
|
69
71
|
regardless of whether it's plain text-generation or chat-style output.
|
|
70
72
|
"""
|
|
71
|
-
if not isinstance(
|
|
73
|
+
if not isinstance(response, list) or len(response) == 0:
|
|
72
74
|
raise ValueError("Empty or invalid pipeline output")
|
|
73
|
-
|
|
74
|
-
|
|
75
|
+
if len(response) != 1:
|
|
76
|
+
raise mlrun.errors.MLRunInvalidArgumentError(
|
|
77
|
+
"HuggingFaceProvider: extracting string from response is only supported for single-response outputs"
|
|
78
|
+
)
|
|
79
|
+
return response[0].get("generated_text")
|
|
75
80
|
|
|
76
81
|
@classmethod
|
|
77
82
|
def parse_endpoint_and_path(cls, endpoint, subpath) -> (str, str):
|
|
@@ -81,6 +86,68 @@ class HuggingFaceProvider(ModelProvider):
|
|
|
81
86
|
subpath = ""
|
|
82
87
|
return endpoint, subpath
|
|
83
88
|
|
|
89
|
+
def _response_handler(
|
|
90
|
+
self,
|
|
91
|
+
response: Union[str, list],
|
|
92
|
+
invoke_response_format: InvokeResponseFormat = InvokeResponseFormat.FULL,
|
|
93
|
+
messages: Union[str, list[str], "ChatType", list["ChatType"]] = None,
|
|
94
|
+
**kwargs,
|
|
95
|
+
) -> Union[str, list, dict[str, Any]]:
|
|
96
|
+
"""
|
|
97
|
+
Same as `ModelProvider._response_handler`.
|
|
98
|
+
|
|
99
|
+
* Expected to receive the response with `return_full_text=False`.
|
|
100
|
+
|
|
101
|
+
:param messages: Same as in `ModelProvider._response_handler`.
|
|
102
|
+
:param response: Same as in `ModelProvider._response_handler`.
|
|
103
|
+
:param invoke_response_format: Same as in `ModelProvider._response_handler`, in full and string modes.
|
|
104
|
+
|
|
105
|
+
For usage mode, generate 3 statistics:
|
|
106
|
+
prompt_tokens, completion_tokens and total_tokens.
|
|
107
|
+
|
|
108
|
+
NOTE: Token counts are estimated after answer generation and
|
|
109
|
+
may differ from the actual tokens generated by the model due to
|
|
110
|
+
internal decoding behavior and implementation details.
|
|
111
|
+
|
|
112
|
+
:param kwargs: Same as in `ModelProvider._response_handler`.
|
|
113
|
+
|
|
114
|
+
:return: The result formatted according to the `invoke_response_format`.
|
|
115
|
+
|
|
116
|
+
:raises MLRunInvalidArgumentError: If extracting the string response fails.
|
|
117
|
+
:raises MLRunRuntimeError: If applying the chat template to the model fails.
|
|
118
|
+
"""
|
|
119
|
+
if InvokeResponseFormat.is_str_response(invoke_response_format.value):
|
|
120
|
+
str_response = self._extract_string_output(response)
|
|
121
|
+
if invoke_response_format == InvokeResponseFormat.STRING:
|
|
122
|
+
return str_response
|
|
123
|
+
if invoke_response_format == InvokeResponseFormat.USAGE:
|
|
124
|
+
tokenizer = self.client.tokenizer
|
|
125
|
+
if not isinstance(messages, str):
|
|
126
|
+
try:
|
|
127
|
+
messages = tokenizer.apply_chat_template(
|
|
128
|
+
messages, tokenize=False, add_generation_prompt=True
|
|
129
|
+
)
|
|
130
|
+
except Exception as e:
|
|
131
|
+
raise mlrun.errors.MLRunRuntimeError(
|
|
132
|
+
f"Failed to apply chat template using the tokenizer for model '{self.model}'. "
|
|
133
|
+
"This may indicate that the tokenizer does not support chat formatting, "
|
|
134
|
+
"or that the input format is invalid. "
|
|
135
|
+
f"Original error: {e}"
|
|
136
|
+
)
|
|
137
|
+
prompt_tokens = len(tokenizer.encode(messages))
|
|
138
|
+
completion_tokens = len(tokenizer.encode(str_response))
|
|
139
|
+
total_tokens = prompt_tokens + completion_tokens
|
|
140
|
+
usage = {
|
|
141
|
+
"prompt_tokens": prompt_tokens,
|
|
142
|
+
"completion_tokens": completion_tokens,
|
|
143
|
+
"total_tokens": total_tokens,
|
|
144
|
+
}
|
|
145
|
+
response = {
|
|
146
|
+
UsageResponseKeys.ANSWER: str_response,
|
|
147
|
+
UsageResponseKeys.USAGE: usage,
|
|
148
|
+
}
|
|
149
|
+
return response
|
|
150
|
+
|
|
84
151
|
def load_client(self) -> None:
|
|
85
152
|
"""
|
|
86
153
|
Initializes the Hugging Face pipeline using the provided options.
|
|
@@ -91,7 +158,7 @@ class HuggingFaceProvider(ModelProvider):
|
|
|
91
158
|
|
|
92
159
|
Note: Hugging Face pipelines are synchronous and do not support async invocation.
|
|
93
160
|
|
|
94
|
-
|
|
161
|
+
:raises:
|
|
95
162
|
ImportError: If the `transformers` package is not installed.
|
|
96
163
|
"""
|
|
97
164
|
try:
|
|
@@ -117,7 +184,7 @@ class HuggingFaceProvider(ModelProvider):
|
|
|
117
184
|
|
|
118
185
|
def custom_invoke(
|
|
119
186
|
self, operation: Optional["Pipeline"] = None, **invoke_kwargs
|
|
120
|
-
) ->
|
|
187
|
+
) -> Union[list, dict, Any]:
|
|
121
188
|
"""
|
|
122
189
|
HuggingFace implementation of `ModelProvider.custom_invoke`.
|
|
123
190
|
Use the default config in provider client/ user defined client:
|
|
@@ -150,34 +217,55 @@ class HuggingFaceProvider(ModelProvider):
|
|
|
150
217
|
|
|
151
218
|
def invoke(
|
|
152
219
|
self,
|
|
153
|
-
messages: Union[str, list[str], ChatType, list[ChatType]]
|
|
154
|
-
|
|
220
|
+
messages: Union[str, list[str], "ChatType", list["ChatType"]],
|
|
221
|
+
invoke_response_format: InvokeResponseFormat = InvokeResponseFormat.FULL,
|
|
155
222
|
**invoke_kwargs,
|
|
156
|
-
) ->
|
|
223
|
+
) -> Union[str, list, dict[str, Any]]:
|
|
157
224
|
"""
|
|
158
225
|
HuggingFace-specific implementation of `ModelProvider.invoke`.
|
|
159
226
|
Invokes a HuggingFace model operation using the synchronous client.
|
|
160
|
-
For
|
|
227
|
+
For full details, see `ModelProvider.invoke`.
|
|
228
|
+
|
|
161
229
|
:param messages:
|
|
162
|
-
|
|
230
|
+
Same as `ModelProvider.invoke`.
|
|
231
|
+
|
|
232
|
+
:param invoke_response_format: InvokeResponseFormat
|
|
233
|
+
Specifies the format of the returned response. Options:
|
|
163
234
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
235
|
+
- "string": Returns only the generated text content, extracted from a single response.
|
|
236
|
+
- "usage": Combines the generated text with metadata (e.g., token usage), returning a dictionary:
|
|
237
|
+
|
|
238
|
+
.. code-block:: json
|
|
239
|
+
{
|
|
240
|
+
"answer": "<generated_text>",
|
|
241
|
+
"usage": {
|
|
242
|
+
"prompt_tokens": <int>,
|
|
243
|
+
"completion_tokens": <int>,
|
|
244
|
+
"total_tokens": <int>
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
- "full": Returns the raw response object from the HuggingFace model,
|
|
249
|
+
typically a list of generated sequences (dictionaries).
|
|
250
|
+
This format does not include token usage statistics.
|
|
169
251
|
|
|
170
252
|
:param invoke_kwargs:
|
|
171
|
-
|
|
172
|
-
|
|
253
|
+
Additional keyword arguments passed to the HuggingFace client. Same as in `ModelProvider.invoke`.
|
|
254
|
+
|
|
255
|
+
:return:
|
|
256
|
+
A string, dictionary, or list of model outputs, depending on `invoke_response_format`.
|
|
173
257
|
"""
|
|
258
|
+
|
|
174
259
|
if self.client.task != "text-generation":
|
|
175
260
|
raise mlrun.errors.MLRunInvalidArgumentError(
|
|
176
261
|
"HuggingFaceProvider.invoke supports text-generation task only"
|
|
177
262
|
)
|
|
178
|
-
if
|
|
263
|
+
if InvokeResponseFormat.is_str_response(invoke_response_format.value):
|
|
179
264
|
invoke_kwargs["return_full_text"] = False
|
|
180
265
|
response = self.custom_invoke(text_inputs=messages, **invoke_kwargs)
|
|
181
|
-
|
|
182
|
-
|
|
266
|
+
response = self._response_handler(
|
|
267
|
+
messages=messages,
|
|
268
|
+
response=response,
|
|
269
|
+
invoke_response_format=invoke_response_format,
|
|
270
|
+
)
|
|
183
271
|
return response
|