From cbd306825b30b94dfbe5184a3fe02189fb268591 Mon Sep 17 00:00:00 2001 From: Lennart Kats Date: Fri, 7 Jul 2023 11:49:02 +0200 Subject: [PATCH] Support experiment names that use full paths --- bundle/config/mutator/process_environment_mode.go | 10 +++++++++- bundle/config/mutator/process_environment_mode_test.go | 6 ++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/bundle/config/mutator/process_environment_mode.go b/bundle/config/mutator/process_environment_mode.go index 2269007dc..60b00823a 100644 --- a/bundle/config/mutator/process_environment_mode.go +++ b/bundle/config/mutator/process_environment_mode.go @@ -3,6 +3,7 @@ package mutator import ( "context" "fmt" + "path/filepath" "github.com/databricks/cli/bundle" "github.com/databricks/cli/bundle/config" @@ -60,7 +61,14 @@ func processDevelopmentMode(b *bundle.Bundle) error { } for i := range r.Experiments { - r.Experiments[i].Name = "[dev] " + r.Experiments[i].Name + path := r.Experiments[i].Name + dir := filepath.Dir(path) + base := filepath.Base(path) + if dir == "." { + r.Experiments[i].Name = "[dev] " + base + } else { + r.Experiments[i].Name = dir + "/[dev] " + base + } r.Experiments[i].Tags = append(r.Experiments[i].Tags, ml.ExperimentTag{Key: "dev", Value: ""}) } diff --git a/bundle/config/mutator/process_environment_mode_test.go b/bundle/config/mutator/process_environment_mode_test.go index 4b413d1c8..5342de212 100644 --- a/bundle/config/mutator/process_environment_mode_test.go +++ b/bundle/config/mutator/process_environment_mode_test.go @@ -29,7 +29,8 @@ func TestProcessEnvironmentModeApplyDebug(t *testing.T) { "pipeline1": {PipelineSpec: &pipelines.PipelineSpec{Name: "pipeline1"}}, }, Experiments: map[string]*resources.MlflowExperiment{ - "experiment1": {Experiment: &ml.Experiment{Name: "experiment1"}}, + "experiment1": {Experiment: &ml.Experiment{Name: "/Users/lennart.kats@databricks.com/experiment1"}}, + "experiment2": {Experiment: &ml.Experiment{Name: "experiment2"}}, }, Models: map[string]*resources.MlflowModel{ "model1": {Model: &ml.Model{Name: "model1"}}, @@ -43,7 +44,8 @@ func TestProcessEnvironmentModeApplyDebug(t *testing.T) { require.NoError(t, err) assert.Equal(t, "[dev] job1", bundle.Config.Resources.Jobs["job1"].Name) assert.Equal(t, "[dev] pipeline1", bundle.Config.Resources.Pipelines["pipeline1"].Name) - assert.Equal(t, "[dev] experiment1", bundle.Config.Resources.Experiments["experiment1"].Name) + assert.Equal(t, "/Users/lennart.kats@databricks.com/[dev] experiment1", bundle.Config.Resources.Experiments["experiment1"].Name) + assert.Equal(t, "[dev] experiment2", bundle.Config.Resources.Experiments["experiment2"].Name) assert.Equal(t, "[dev] model1", bundle.Config.Resources.Models["model1"].Name) assert.Equal(t, "dev", bundle.Config.Resources.Experiments["experiment1"].Experiment.Tags[0].Key) assert.True(t, bundle.Config.Resources.Pipelines["pipeline1"].PipelineSpec.Development)