mlrun 1.10.0rc38__tar.gz → 1.10.0rc40__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.0rc38/mlrun.egg-info → mlrun-1.10.0rc40}/PKG-INFO +3 -3
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/dockerfiles/mlrun-api/requirements.txt +1 -1
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/artifacts/document.py +6 -1
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/constants.py +6 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/model_monitoring/constants.py +0 -2
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/launcher/local.py +2 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/api.py +3 -2
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/applications/base.py +6 -3
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/run.py +7 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/__init__.py +18 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/base.py +3 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/local.py +5 -2
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/nuclio/application/application.py +2 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/nuclio/function.py +2 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/nuclio/serving.py +60 -3
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/utils/helpers.py +77 -2
- mlrun-1.10.0rc40/mlrun/utils/version/version.json +4 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40/mlrun.egg-info}/PKG-INFO +3 -3
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun.egg-info/requires.txt +2 -2
- mlrun-1.10.0rc38/mlrun/utils/version/version.json +0 -4
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/LICENSE +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/MANIFEST.in +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/Makefile +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/README.md +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/dependencies.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/dev-requirements.txt +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/examples/archive.zip +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/examples/function.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/examples/handler.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/examples/infile.txt +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/examples/load-project.ipynb +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/examples/mlrun_basics.ipynb +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/examples/mlrun_dask.ipynb +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/examples/mlrun_db.ipynb +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/examples/mlrun_export_import.ipynb +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/examples/mlrun_jobs.ipynb +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/examples/mlrun_sparkk8s.ipynb +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/examples/mlrun_vault.ipynb +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/examples/model.bst +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/examples/new-project.ipynb +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/examples/nulltst.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/examples/params.csv +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/examples/remote-spark.ipynb +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/examples/secrets.txt +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/examples/spark-function.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/examples/training.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/examples/v2_model_server.ipynb +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/examples/xgb_serving.ipynb +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/extras-requirements.txt +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/__main__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/alerts/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/alerts/alert.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/artifacts/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/artifacts/base.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/artifacts/dataset.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/artifacts/helpers.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/artifacts/llm_prompt.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/artifacts/manager.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/artifacts/model.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/artifacts/plots.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/db/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/db/dialects.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/formatters/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/formatters/artifact.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/formatters/base.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/formatters/feature_set.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/formatters/function.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/formatters/model_endpoint.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/formatters/pipeline.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/formatters/project.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/formatters/run.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/helpers.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/model_monitoring/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/model_monitoring/helpers.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/runtimes/constants.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/alert.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/api_gateway.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/artifact.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/auth.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/background_task.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/client_spec.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/clusterization_spec.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/common.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/constants.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/datastore_profile.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/events.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/feature_store.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/frontend_spec.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/function.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/http.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/hub.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/k8s.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/memory_reports.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/model_monitoring/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/model_monitoring/functions.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/model_monitoring/grafana.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/model_monitoring/model_endpoints.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/notification.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/object.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/pagination.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/partition.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/pipeline.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/project.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/regex.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/runs.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/runtime_resource.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/schedule.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/secret.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/serving.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/tag.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/schemas/workflow.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/secrets.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/common/types.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/config.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/data_types/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/data_types/data_types.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/data_types/infer.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/data_types/spark.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/data_types/to_pandas.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/alibaba_oss.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/azure_blob.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/base.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/datastore.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/datastore_profile.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/dbfs_store.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/filestore.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/google_cloud_storage.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/hdfs.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/inmem.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/model_provider/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/model_provider/huggingface_provider.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/model_provider/mock_model_provider.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/model_provider/model_provider.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/model_provider/openai_provider.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/redis.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/remote_client.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/s3.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/snowflake_utils.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/sources.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/spark_udf.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/spark_utils.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/store_resources.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/storeytargets.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/targets.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/utils.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/v3io.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/vectorstore.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/wasbfs/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/datastore/wasbfs/fs.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/db/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/db/auth_utils.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/db/base.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/db/factory.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/db/httpdb.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/db/nopdb.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/errors.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/execution.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/feature_store/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/feature_store/api.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/feature_store/common.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/feature_store/feature_set.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/feature_store/feature_vector.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/feature_store/feature_vector_utils.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/feature_store/ingestion.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/feature_store/retrieval/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/feature_store/retrieval/base.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/feature_store/retrieval/dask_merger.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/feature_store/retrieval/job.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/feature_store/retrieval/local_merger.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/feature_store/retrieval/spark_merger.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/feature_store/retrieval/storey_merger.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/feature_store/steps.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/features.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_common/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_common/artifacts_library.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_common/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_common/model_handler.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_common/plan.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_common/producer.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_common/utils.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_dl_common/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_dl_common/loggers/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_dl_common/loggers/logger.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_dl_common/loggers/mlrun_logger.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_dl_common/loggers/tensorboard_logger.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_dl_common/model_handler.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_dl_common/utils.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_ml_common/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_ml_common/artifacts_library.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_ml_common/loggers/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_ml_common/loggers/logger.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_ml_common/loggers/mlrun_logger.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_ml_common/model_handler.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_ml_common/pkl_model_server.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_ml_common/plan.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_ml_common/plans/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_ml_common/plans/calibration_curve_plan.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_ml_common/plans/confusion_matrix_plan.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_ml_common/plans/dataset_plan.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_ml_common/plans/feature_importance_plan.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_ml_common/plans/roc_curve_plan.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_ml_common/producer.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/_ml_common/utils.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/auto_mlrun/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/auto_mlrun/auto_mlrun.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/huggingface/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/huggingface/model_server.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/lgbm/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/lgbm/callbacks/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/lgbm/callbacks/callback.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/lgbm/callbacks/logging_callback.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/lgbm/callbacks/mlrun_logging_callback.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/lgbm/mlrun_interfaces/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/lgbm/mlrun_interfaces/booster_mlrun_interface.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/lgbm/mlrun_interfaces/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/lgbm/mlrun_interfaces/model_mlrun_interface.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/lgbm/model_handler.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/lgbm/model_server.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/lgbm/utils.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/onnx/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/onnx/dataset.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/onnx/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/onnx/model_handler.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/onnx/model_server.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/parallel_coordinates.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/pytorch/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/pytorch/callbacks/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/pytorch/callbacks/callback.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/pytorch/callbacks/logging_callback.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/pytorch/callbacks/mlrun_logging_callback.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/pytorch/callbacks/tensorboard_logging_callback.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/pytorch/callbacks_handler.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/pytorch/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/pytorch/model_handler.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/pytorch/model_server.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/pytorch/utils.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/sklearn/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/sklearn/estimator.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/sklearn/metric.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/sklearn/metrics_library.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/sklearn/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/sklearn/model_handler.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/sklearn/utils.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/tf_keras/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/tf_keras/callbacks/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/tf_keras/callbacks/logging_callback.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/tf_keras/callbacks/mlrun_logging_callback.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/tf_keras/callbacks/tensorboard_logging_callback.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/tf_keras/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/tf_keras/model_handler.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/tf_keras/model_server.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/tf_keras/utils.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/xgboost/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/xgboost/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/xgboost/model_handler.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/frameworks/xgboost/utils.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/hub/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/hub/module.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/k8s_utils.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/launcher/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/launcher/base.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/launcher/client.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/launcher/factory.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/launcher/remote.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/lists.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/applications/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/applications/_application_steps.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/applications/context.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/applications/evidently/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/applications/evidently/base.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/applications/histogram_data_drift.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/applications/results.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/controller.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/db/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/db/_schedules.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/db/_stats.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/db/tsdb/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/db/tsdb/base.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/db/tsdb/helpers.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/db/tsdb/tdengine/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/db/tsdb/tdengine/schemas.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/db/tsdb/tdengine/stream_graph_steps.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connection.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/db/tsdb/tdengine/writer_graph_steps.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/db/tsdb/v3io/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/db/tsdb/v3io/stream_graph_steps.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/features_drift_table.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/helpers.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/metrics/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/metrics/histogram_distance.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/stream_processing.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/model_monitoring/writer.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/package/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/package/context_handler.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/package/errors.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/package/packager.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/package/packagers/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/package/packagers/default_packager.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/package/packagers/numpy_packagers.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/package/packagers/pandas_packagers.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/package/packagers/python_standard_library_packagers.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/package/packagers_manager.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/package/utils/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/package/utils/_archiver.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/package/utils/_formatter.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/package/utils/_pickler.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/package/utils/_supported_format.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/package/utils/log_hint_utils.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/package/utils/type_hint_utils.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/platforms/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/platforms/iguazio.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/projects/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/projects/operations.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/projects/pipelines.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/projects/project.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/render.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/daskjob.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/databricks_job/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/databricks_job/databricks_cancel_task.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/databricks_job/databricks_runtime.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/databricks_job/databricks_wrapper.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/funcdoc.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/function_reference.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/generators.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/kubejob.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/mounts.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/mpijob/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/mpijob/abstract.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/mpijob/v1.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/nuclio/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/nuclio/api_gateway.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/nuclio/application/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/nuclio/application/reverse_proxy.go +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/nuclio/nuclio.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/pod.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/remotesparkjob.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/sparkjob/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/sparkjob/spark3job.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/runtimes/utils.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/secrets.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/serving/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/serving/merger.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/serving/remote.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/serving/routers.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/serving/server.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/serving/serving_wrapper.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/serving/states.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/serving/steps.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/serving/system_steps.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/serving/utils.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/serving/v1_serving.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/serving/v2_serving.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/track/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/track/tracker.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/track/tracker_manager.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/track/trackers/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/track/trackers/mlflow_tracker.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/utils/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/utils/async_http.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/utils/azure_vault.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/utils/clones.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/utils/condition_evaluator.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/utils/http.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/utils/logger.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/utils/notifications/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/utils/notifications/notification/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/utils/notifications/notification/base.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/utils/notifications/notification/console.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/utils/notifications/notification/git.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/utils/notifications/notification/ipython.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/utils/notifications/notification/mail.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/utils/notifications/notification/slack.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/utils/notifications/notification/webhook.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/utils/notifications/notification_pusher.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/utils/regex.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/utils/retryer.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/utils/singleton.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/utils/v3io_clients.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/utils/vault.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/utils/version/__init__.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun/utils/version/version.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun.egg-info/SOURCES.txt +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun.egg-info/dependency_links.txt +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun.egg-info/entry_points.txt +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun.egg-info/not-zip-safe +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/mlrun.egg-info/top_level.txt +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/packages.py +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/pyproject.toml +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/requirements.txt +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/setup.cfg +0 -0
- {mlrun-1.10.0rc38 → mlrun-1.10.0rc40}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mlrun
|
|
3
|
-
Version: 1.10.
|
|
3
|
+
Version: 1.10.0rc40
|
|
4
4
|
Summary: Tracking and config of machine learning runs
|
|
5
5
|
Home-page: https://github.com/mlrun/mlrun
|
|
6
6
|
Author: Yaron Haviv
|
|
@@ -113,7 +113,7 @@ Requires-Dist: apscheduler<4,>=3.11; extra == "api"
|
|
|
113
113
|
Requires-Dist: objgraph~=3.6; extra == "api"
|
|
114
114
|
Requires-Dist: igz-mgmt~=0.4.1; extra == "api"
|
|
115
115
|
Requires-Dist: humanfriendly~=10.0; extra == "api"
|
|
116
|
-
Requires-Dist: fastapi~=0.
|
|
116
|
+
Requires-Dist: fastapi~=0.120.0; extra == "api"
|
|
117
117
|
Requires-Dist: sqlalchemy~=2.0; extra == "api"
|
|
118
118
|
Requires-Dist: sqlalchemy-utils~=0.41.2; extra == "api"
|
|
119
119
|
Requires-Dist: pymysql~=1.1; extra == "api"
|
|
@@ -203,7 +203,7 @@ Requires-Dist: dask~=2023.12.1; python_version < "3.11" and extra == "complete-a
|
|
|
203
203
|
Requires-Dist: databricks-sdk~=0.20.0; extra == "complete-api"
|
|
204
204
|
Requires-Dist: distributed==2024.8; python_version >= "3.11" and extra == "complete-api"
|
|
205
205
|
Requires-Dist: distributed~=2023.12.1; python_version < "3.11" and extra == "complete-api"
|
|
206
|
-
Requires-Dist: fastapi~=0.
|
|
206
|
+
Requires-Dist: fastapi~=0.120.0; extra == "complete-api"
|
|
207
207
|
Requires-Dist: gcsfs<=2025.7.0,>=2025.5.1; 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"
|
|
@@ -359,7 +359,12 @@ class DocumentArtifact(Artifact):
|
|
|
359
359
|
self,
|
|
360
360
|
splitter: Optional["TextSplitter"] = None, # noqa: F821
|
|
361
361
|
) -> list["Document"]: # noqa: F821
|
|
362
|
-
|
|
362
|
+
# Try new langchain 1.0+ import path first
|
|
363
|
+
try:
|
|
364
|
+
from langchain_core.documents import Document
|
|
365
|
+
except ImportError:
|
|
366
|
+
# Fall back to old langchain <1.0 import path
|
|
367
|
+
from langchain.schema import Document
|
|
363
368
|
|
|
364
369
|
"""
|
|
365
370
|
Create LC documents from the artifact
|
|
@@ -27,6 +27,12 @@ DASK_LABEL_PREFIX = "dask.org/"
|
|
|
27
27
|
NUCLIO_LABEL_PREFIX = "nuclio.io/"
|
|
28
28
|
RESERVED_TAG_NAME_LATEST = "latest"
|
|
29
29
|
|
|
30
|
+
# Kubernetes DNS-1123 label name length limit
|
|
31
|
+
K8S_DNS_1123_LABEL_MAX_LENGTH = 63
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
RESERVED_BATCH_JOB_SUFFIX = "-batch"
|
|
35
|
+
|
|
30
36
|
JOB_TYPE_WORKFLOW_RUNNER = "workflow-runner"
|
|
31
37
|
JOB_TYPE_PROJECT_LOADER = "project-loader"
|
|
32
38
|
JOB_TYPE_RERUN_WORKFLOW_RUNNER = "rerun-workflow-runner"
|
|
@@ -486,8 +486,6 @@ class ModelMonitoringLabels:
|
|
|
486
486
|
|
|
487
487
|
_RESERVED_FUNCTION_NAMES = MonitoringFunctionNames.list() + [SpecialApps.MLRUN_INFRA]
|
|
488
488
|
|
|
489
|
-
_RESERVED_EVALUATE_FUNCTION_SUFFIX = "-batch"
|
|
490
|
-
|
|
491
489
|
|
|
492
490
|
class ModelEndpointMonitoringMetricType(StrEnum):
|
|
493
491
|
RESULT = "result"
|
|
@@ -243,6 +243,8 @@ class ClientLocalLauncher(launcher.ClientBaseLauncher):
|
|
|
243
243
|
|
|
244
244
|
# if the handler has module prefix force "local" (vs "handler") runtime
|
|
245
245
|
kind = "local" if isinstance(handler, str) and "." in handler else ""
|
|
246
|
+
|
|
247
|
+
# Create temporary local function for execution
|
|
246
248
|
fn = mlrun.new_function(meta.name, command=command, args=args, kind=kind)
|
|
247
249
|
fn.metadata = meta
|
|
248
250
|
setattr(fn, "_is_run_local", True)
|
|
@@ -563,9 +563,10 @@ def _create_model_monitoring_function_base(
|
|
|
563
563
|
"An application cannot have the following names: "
|
|
564
564
|
f"{mm_constants._RESERVED_FUNCTION_NAMES}"
|
|
565
565
|
)
|
|
566
|
-
|
|
566
|
+
_, has_valid_suffix, suffix = mlrun.utils.helpers.ensure_batch_job_suffix(name)
|
|
567
|
+
if name and not has_valid_suffix:
|
|
567
568
|
raise mlrun.errors.MLRunValueError(
|
|
568
|
-
"Model monitoring application names cannot end with
|
|
569
|
+
f"Model monitoring application names cannot end with `{suffix}`"
|
|
569
570
|
)
|
|
570
571
|
if func is None:
|
|
571
572
|
func = ""
|
|
@@ -799,10 +799,13 @@ class ModelMonitoringApplicationBase(MonitoringApplicationToDict, ABC):
|
|
|
799
799
|
f"`{mm_constants.APP_NAME_REGEX.pattern}`. "
|
|
800
800
|
"Please choose another `func_name`."
|
|
801
801
|
)
|
|
802
|
-
|
|
803
|
-
job_name
|
|
802
|
+
job_name, was_renamed, suffix = mlrun.utils.helpers.ensure_batch_job_suffix(
|
|
803
|
+
job_name
|
|
804
|
+
)
|
|
805
|
+
if was_renamed:
|
|
804
806
|
mlrun.utils.logger.info(
|
|
805
|
-
'Changing function name - adding `"
|
|
807
|
+
f'Changing function name - adding `"{suffix}"` suffix',
|
|
808
|
+
func_name=job_name,
|
|
806
809
|
)
|
|
807
810
|
|
|
808
811
|
return job_name
|
|
@@ -555,6 +555,7 @@ def new_function(
|
|
|
555
555
|
|
|
556
556
|
# make sure function name is valid
|
|
557
557
|
name = mlrun.utils.helpers.normalize_name(name)
|
|
558
|
+
mlrun.utils.helpers.validate_function_name(name)
|
|
558
559
|
|
|
559
560
|
runner.metadata.name = name
|
|
560
561
|
runner.metadata.project = (
|
|
@@ -594,6 +595,7 @@ def new_function(
|
|
|
594
595
|
)
|
|
595
596
|
|
|
596
597
|
runner.prepare_image_for_deploy()
|
|
598
|
+
|
|
597
599
|
return runner
|
|
598
600
|
|
|
599
601
|
|
|
@@ -798,6 +800,9 @@ def code_to_function(
|
|
|
798
800
|
kind=sub_kind,
|
|
799
801
|
ignored_tags=ignored_tags,
|
|
800
802
|
)
|
|
803
|
+
|
|
804
|
+
mlrun.utils.helpers.validate_function_name(name)
|
|
805
|
+
|
|
801
806
|
spec["spec"]["env"].append(
|
|
802
807
|
{
|
|
803
808
|
"name": "MLRUN_HTTPDB__NUCLIO__EXPLICIT_ACK",
|
|
@@ -850,6 +855,7 @@ def code_to_function(
|
|
|
850
855
|
runtime.spec.build.code_origin = code_origin
|
|
851
856
|
runtime.spec.build.origin_filename = filename or (name + ".ipynb")
|
|
852
857
|
update_common(runtime, spec)
|
|
858
|
+
|
|
853
859
|
return runtime
|
|
854
860
|
|
|
855
861
|
if kind is None or kind in ["", "Function"]:
|
|
@@ -863,6 +869,7 @@ def code_to_function(
|
|
|
863
869
|
|
|
864
870
|
if not name:
|
|
865
871
|
raise ValueError("name must be specified")
|
|
872
|
+
|
|
866
873
|
h = get_in(spec, "spec.handler", "").split(":")
|
|
867
874
|
runtime.handler = h[0] if len(h) <= 1 else h[1]
|
|
868
875
|
runtime.metadata = get_in(spec, "spec.metadata")
|
|
@@ -221,6 +221,24 @@ class RuntimeKinds:
|
|
|
221
221
|
return True
|
|
222
222
|
return False
|
|
223
223
|
|
|
224
|
+
@staticmethod
|
|
225
|
+
def requires_k8s_name_validation(kind: str) -> bool:
|
|
226
|
+
"""
|
|
227
|
+
Returns True if the runtime kind creates Kubernetes resources that use the function name.
|
|
228
|
+
|
|
229
|
+
Function names for k8s-deployed runtimes must conform to DNS-1123 label requirements:
|
|
230
|
+
- Lowercase alphanumeric characters or '-'
|
|
231
|
+
- Start and end with an alphanumeric character
|
|
232
|
+
- Maximum 63 characters
|
|
233
|
+
|
|
234
|
+
Local runtimes (local, handler) run on the local machine and don't create k8s resources,
|
|
235
|
+
so they don't require k8s naming validation.
|
|
236
|
+
|
|
237
|
+
:param kind: Runtime kind string (job, spark, serving, local, etc.)
|
|
238
|
+
:return: True if function name needs k8s DNS-1123 validation, False otherwise
|
|
239
|
+
"""
|
|
240
|
+
return not RuntimeKinds.is_local_runtime(kind)
|
|
241
|
+
|
|
224
242
|
@staticmethod
|
|
225
243
|
def requires_absolute_artifacts_path(kind):
|
|
226
244
|
"""
|
|
@@ -393,6 +393,9 @@ class BaseRuntime(ModelObj):
|
|
|
393
393
|
FutureWarning,
|
|
394
394
|
)
|
|
395
395
|
output_path = output_path or out_path or artifact_path
|
|
396
|
+
|
|
397
|
+
mlrun.utils.helpers.validate_function_name(self.metadata.name)
|
|
398
|
+
|
|
396
399
|
launcher = mlrun.launcher.factory.LauncherFactory().create_launcher(
|
|
397
400
|
self._is_remote, local=local, **launcher_kwargs
|
|
398
401
|
)
|
|
@@ -29,12 +29,12 @@ from os import environ, remove
|
|
|
29
29
|
from pathlib import Path
|
|
30
30
|
from subprocess import PIPE, Popen
|
|
31
31
|
from sys import executable
|
|
32
|
+
from typing import Optional
|
|
32
33
|
|
|
33
34
|
from nuclio import Event
|
|
34
35
|
|
|
35
36
|
import mlrun
|
|
36
37
|
import mlrun.common.constants as mlrun_constants
|
|
37
|
-
import mlrun.common.runtimes.constants
|
|
38
38
|
from mlrun.lists import RunList
|
|
39
39
|
|
|
40
40
|
from ..errors import err_to_str
|
|
@@ -201,9 +201,12 @@ class LocalRuntime(BaseRuntime, ParallelRunner):
|
|
|
201
201
|
kind = "local"
|
|
202
202
|
_is_remote = False
|
|
203
203
|
|
|
204
|
-
def to_job(self, image=""):
|
|
204
|
+
def to_job(self, image="", func_name: Optional[str] = None):
|
|
205
205
|
struct = self.to_dict()
|
|
206
206
|
obj = KubejobRuntime.from_dict(struct)
|
|
207
|
+
obj.kind = "job" # Ensure kind is set to 'job' for KubejobRuntime
|
|
208
|
+
if func_name:
|
|
209
|
+
obj.metadata.name = func_name
|
|
207
210
|
if image:
|
|
208
211
|
obj.spec.image = image
|
|
209
212
|
return obj
|
|
@@ -400,6 +400,8 @@ class ApplicationRuntime(RemoteRuntime):
|
|
|
400
400
|
|
|
401
401
|
:return: The default API gateway URL if created or True if the function is ready (deployed)
|
|
402
402
|
"""
|
|
403
|
+
mlrun.utils.helpers.validate_function_name(self.metadata.name)
|
|
404
|
+
|
|
403
405
|
if (self.requires_build() and not self.spec.image) or force_build:
|
|
404
406
|
self._fill_credentials()
|
|
405
407
|
self._build_application_image(
|
|
@@ -655,6 +655,8 @@ class RemoteRuntime(KubeResource):
|
|
|
655
655
|
if tag:
|
|
656
656
|
self.metadata.tag = tag
|
|
657
657
|
|
|
658
|
+
mlrun.utils.helpers.validate_function_name(self.metadata.name)
|
|
659
|
+
|
|
658
660
|
# Attempt auto-mounting, before sending to remote build
|
|
659
661
|
self.try_auto_mount_based_on_config()
|
|
660
662
|
self._fill_credentials()
|
|
@@ -659,6 +659,9 @@ class ServingRuntime(RemoteRuntime):
|
|
|
659
659
|
:param builder_env: env vars dict for source archive config/credentials e.g. builder_env={"GIT_TOKEN": token}
|
|
660
660
|
:param force_build: set True for force building the image
|
|
661
661
|
"""
|
|
662
|
+
# Validate function name before deploying to k8s
|
|
663
|
+
mlrun.utils.helpers.validate_function_name(self.metadata.name)
|
|
664
|
+
|
|
662
665
|
load_mode = self.spec.load_mode
|
|
663
666
|
if load_mode and load_mode not in ["sync", "async"]:
|
|
664
667
|
raise ValueError(f"illegal model loading mode {load_mode}")
|
|
@@ -855,8 +858,20 @@ class ServingRuntime(RemoteRuntime):
|
|
|
855
858
|
)
|
|
856
859
|
self._mock_server = self.to_mock_server()
|
|
857
860
|
|
|
858
|
-
def to_job(self) -> KubejobRuntime:
|
|
859
|
-
"""Convert this ServingRuntime to a KubejobRuntime, so that the graph can be run as a standalone job.
|
|
861
|
+
def to_job(self, func_name: Optional[str] = None) -> KubejobRuntime:
|
|
862
|
+
"""Convert this ServingRuntime to a KubejobRuntime, so that the graph can be run as a standalone job.
|
|
863
|
+
|
|
864
|
+
Args:
|
|
865
|
+
func_name: Optional custom name for the job function. If not provided, automatically
|
|
866
|
+
appends '-batch' suffix to the serving function name to prevent database collision.
|
|
867
|
+
|
|
868
|
+
Returns:
|
|
869
|
+
KubejobRuntime configured to execute the serving graph as a batch job.
|
|
870
|
+
|
|
871
|
+
Note:
|
|
872
|
+
The job will have a different name than the serving function to prevent database collision.
|
|
873
|
+
The original serving function remains unchanged and can still be invoked after running the job.
|
|
874
|
+
"""
|
|
860
875
|
if self.spec.function_refs:
|
|
861
876
|
raise mlrun.errors.MLRunInvalidArgumentError(
|
|
862
877
|
f"Cannot convert function '{self.metadata.name}' to a job because it has child functions"
|
|
@@ -890,8 +905,50 @@ class ServingRuntime(RemoteRuntime):
|
|
|
890
905
|
parameters=self.spec.parameters,
|
|
891
906
|
graph=self.spec.graph,
|
|
892
907
|
)
|
|
908
|
+
|
|
909
|
+
job_metadata = deepcopy(self.metadata)
|
|
910
|
+
original_name = job_metadata.name
|
|
911
|
+
|
|
912
|
+
if func_name:
|
|
913
|
+
# User provided explicit job name
|
|
914
|
+
job_metadata.name = func_name
|
|
915
|
+
logger.debug(
|
|
916
|
+
"Creating job from serving function with custom name",
|
|
917
|
+
new_name=func_name,
|
|
918
|
+
)
|
|
919
|
+
else:
|
|
920
|
+
job_metadata.name, was_renamed, suffix = (
|
|
921
|
+
mlrun.utils.helpers.ensure_batch_job_suffix(job_metadata.name)
|
|
922
|
+
)
|
|
923
|
+
|
|
924
|
+
# Check if the resulting name exceeds Kubernetes length limit
|
|
925
|
+
if (
|
|
926
|
+
len(job_metadata.name)
|
|
927
|
+
> mlrun.common.constants.K8S_DNS_1123_LABEL_MAX_LENGTH
|
|
928
|
+
):
|
|
929
|
+
raise mlrun.errors.MLRunInvalidArgumentError(
|
|
930
|
+
f"Cannot convert serving function '{original_name}' to batch job: "
|
|
931
|
+
f"the resulting name '{job_metadata.name}' ({len(job_metadata.name)} characters) "
|
|
932
|
+
f"exceeds Kubernetes limit of {mlrun.common.constants.K8S_DNS_1123_LABEL_MAX_LENGTH} characters. "
|
|
933
|
+
f"Please provide a custom name via the func_name parameter, "
|
|
934
|
+
f"with at most {mlrun.common.constants.K8S_DNS_1123_LABEL_MAX_LENGTH} characters."
|
|
935
|
+
)
|
|
936
|
+
|
|
937
|
+
if was_renamed:
|
|
938
|
+
logger.info(
|
|
939
|
+
"Creating job from serving function (auto-appended suffix to prevent collision)",
|
|
940
|
+
new_name=job_metadata.name,
|
|
941
|
+
suffix=suffix,
|
|
942
|
+
)
|
|
943
|
+
else:
|
|
944
|
+
logger.debug(
|
|
945
|
+
"Creating job from serving function (name already has suffix)",
|
|
946
|
+
name=original_name,
|
|
947
|
+
suffix=suffix,
|
|
948
|
+
)
|
|
949
|
+
|
|
893
950
|
job = KubejobRuntime(
|
|
894
951
|
spec=spec,
|
|
895
|
-
metadata=
|
|
952
|
+
metadata=job_metadata,
|
|
896
953
|
)
|
|
897
954
|
return job
|
|
@@ -253,6 +253,40 @@ def verify_field_regex(
|
|
|
253
253
|
return False
|
|
254
254
|
|
|
255
255
|
|
|
256
|
+
def validate_function_name(name: str) -> None:
|
|
257
|
+
"""
|
|
258
|
+
Validate that a function name conforms to Kubernetes DNS-1123 label requirements.
|
|
259
|
+
|
|
260
|
+
Function names for Kubernetes resources must:
|
|
261
|
+
- Be lowercase alphanumeric characters or '-'
|
|
262
|
+
- Start and end with an alphanumeric character
|
|
263
|
+
- Be at most 63 characters long
|
|
264
|
+
|
|
265
|
+
This validation should be called AFTER normalize_name() has been applied.
|
|
266
|
+
|
|
267
|
+
Refer to https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names
|
|
268
|
+
|
|
269
|
+
:param name: The function name to validate (after normalization)
|
|
270
|
+
:raises MLRunInvalidArgumentError: If the function name is invalid for Kubernetes
|
|
271
|
+
"""
|
|
272
|
+
if not name:
|
|
273
|
+
return
|
|
274
|
+
|
|
275
|
+
verify_field_regex(
|
|
276
|
+
"function.metadata.name",
|
|
277
|
+
name,
|
|
278
|
+
mlrun.utils.regex.dns_1123_label,
|
|
279
|
+
raise_on_failure=True,
|
|
280
|
+
log_message=(
|
|
281
|
+
f"Function name '{name}' is invalid. "
|
|
282
|
+
"Kubernetes function names must be DNS-1123 labels: "
|
|
283
|
+
"lowercase alphanumeric characters or '-', "
|
|
284
|
+
"starting and ending with an alphanumeric character, "
|
|
285
|
+
"and at most 63 characters long."
|
|
286
|
+
),
|
|
287
|
+
)
|
|
288
|
+
|
|
289
|
+
|
|
256
290
|
def validate_builder_source(
|
|
257
291
|
source: str, pull_at_runtime: bool = False, workdir: Optional[str] = None
|
|
258
292
|
):
|
|
@@ -476,6 +510,40 @@ def normalize_name(name: str):
|
|
|
476
510
|
return name.lower()
|
|
477
511
|
|
|
478
512
|
|
|
513
|
+
def ensure_batch_job_suffix(
|
|
514
|
+
function_name: typing.Optional[str],
|
|
515
|
+
) -> tuple[typing.Optional[str], bool, str]:
|
|
516
|
+
"""
|
|
517
|
+
Ensure that a function name has the batch job suffix appended to prevent database collision.
|
|
518
|
+
|
|
519
|
+
This helper is used by to_job() methods in runtimes that convert online functions (serving, local)
|
|
520
|
+
to batch processing jobs. The suffix prevents the job from overwriting the original function in
|
|
521
|
+
the database when both are stored with the same (project, name) key.
|
|
522
|
+
|
|
523
|
+
:param function_name: The original function name (can be None or empty string)
|
|
524
|
+
|
|
525
|
+
:return: A tuple of (modified_name, was_renamed, suffix) where:
|
|
526
|
+
- modified_name: The function name with the batch suffix (if not already present),
|
|
527
|
+
or empty string if input was empty
|
|
528
|
+
- was_renamed: True if the suffix was added, False if it was already present or if name was empty/None
|
|
529
|
+
- suffix: The suffix value that was used (or would have been used)
|
|
530
|
+
|
|
531
|
+
"""
|
|
532
|
+
suffix = mlrun_constants.RESERVED_BATCH_JOB_SUFFIX
|
|
533
|
+
|
|
534
|
+
# Handle None or empty string
|
|
535
|
+
if not function_name:
|
|
536
|
+
return function_name, False, suffix
|
|
537
|
+
|
|
538
|
+
if not function_name.endswith(suffix):
|
|
539
|
+
return (
|
|
540
|
+
f"{function_name}{suffix}",
|
|
541
|
+
True,
|
|
542
|
+
suffix,
|
|
543
|
+
)
|
|
544
|
+
return function_name, False, suffix
|
|
545
|
+
|
|
546
|
+
|
|
479
547
|
class LogBatchWriter:
|
|
480
548
|
def __init__(self, func, batch=16, maxtime=5):
|
|
481
549
|
self.batch = batch
|
|
@@ -970,8 +1038,15 @@ def enrich_image_url(
|
|
|
970
1038
|
else:
|
|
971
1039
|
image_url = "mlrun/mlrun"
|
|
972
1040
|
|
|
973
|
-
if is_mlrun_image and tag
|
|
974
|
-
|
|
1041
|
+
if is_mlrun_image and tag:
|
|
1042
|
+
if ":" not in image_url:
|
|
1043
|
+
image_url = f"{image_url}:{tag}"
|
|
1044
|
+
elif enrich_kfp_python_version:
|
|
1045
|
+
# For mlrun-kfp >= 1.10.0-rc0, append python suffix to existing tag
|
|
1046
|
+
python_suffix = resolve_image_tag_suffix(
|
|
1047
|
+
mlrun_version, client_python_version
|
|
1048
|
+
)
|
|
1049
|
+
image_url = f"{image_url}{python_suffix}" if python_suffix else image_url
|
|
975
1050
|
|
|
976
1051
|
registry = (
|
|
977
1052
|
config.images_registry if is_mlrun_image else config.vendor_images_registry
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mlrun
|
|
3
|
-
Version: 1.10.
|
|
3
|
+
Version: 1.10.0rc40
|
|
4
4
|
Summary: Tracking and config of machine learning runs
|
|
5
5
|
Home-page: https://github.com/mlrun/mlrun
|
|
6
6
|
Author: Yaron Haviv
|
|
@@ -113,7 +113,7 @@ Requires-Dist: apscheduler<4,>=3.11; extra == "api"
|
|
|
113
113
|
Requires-Dist: objgraph~=3.6; extra == "api"
|
|
114
114
|
Requires-Dist: igz-mgmt~=0.4.1; extra == "api"
|
|
115
115
|
Requires-Dist: humanfriendly~=10.0; extra == "api"
|
|
116
|
-
Requires-Dist: fastapi~=0.
|
|
116
|
+
Requires-Dist: fastapi~=0.120.0; extra == "api"
|
|
117
117
|
Requires-Dist: sqlalchemy~=2.0; extra == "api"
|
|
118
118
|
Requires-Dist: sqlalchemy-utils~=0.41.2; extra == "api"
|
|
119
119
|
Requires-Dist: pymysql~=1.1; extra == "api"
|
|
@@ -203,7 +203,7 @@ Requires-Dist: dask~=2023.12.1; python_version < "3.11" and extra == "complete-a
|
|
|
203
203
|
Requires-Dist: databricks-sdk~=0.20.0; extra == "complete-api"
|
|
204
204
|
Requires-Dist: distributed==2024.8; python_version >= "3.11" and extra == "complete-api"
|
|
205
205
|
Requires-Dist: distributed~=2023.12.1; python_version < "3.11" and extra == "complete-api"
|
|
206
|
-
Requires-Dist: fastapi~=0.
|
|
206
|
+
Requires-Dist: fastapi~=0.120.0; extra == "complete-api"
|
|
207
207
|
Requires-Dist: gcsfs<=2025.7.0,>=2025.5.1; 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"
|
|
@@ -85,7 +85,7 @@ apscheduler<4,>=3.11
|
|
|
85
85
|
objgraph~=3.6
|
|
86
86
|
igz-mgmt~=0.4.1
|
|
87
87
|
humanfriendly~=10.0
|
|
88
|
-
fastapi~=0.
|
|
88
|
+
fastapi~=0.120.0
|
|
89
89
|
sqlalchemy~=2.0
|
|
90
90
|
sqlalchemy-utils~=0.41.2
|
|
91
91
|
pymysql~=1.1
|
|
@@ -151,7 +151,7 @@ azure-keyvault-secrets~=4.2
|
|
|
151
151
|
boto3<1.36,>=1.28.0
|
|
152
152
|
dask-kubernetes~=0.11.0
|
|
153
153
|
databricks-sdk~=0.20.0
|
|
154
|
-
fastapi~=0.
|
|
154
|
+
fastapi~=0.120.0
|
|
155
155
|
gcsfs<=2025.7.0,>=2025.5.1
|
|
156
156
|
google-cloud-bigquery-storage~=2.17
|
|
157
157
|
google-cloud-bigquery[bqstorage,pandas]==3.14.1
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|