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