Skip to content

Commit f041f1a

Browse files
jaycee-licopybara-github
authored andcommitted
chore: support full resource name in environment experiment run
PiperOrigin-RevId: 634250315
1 parent d6d371d commit f041f1a

File tree

2 files changed

+33
-4
lines changed

2 files changed

+33
-4
lines changed

google/cloud/aiplatform/metadata/metadata.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -276,12 +276,21 @@ def experiment_run(self) -> Optional[experiment_run_resource.ExperimentRun]:
276276
"""Returns the currently set experiment run or experiment run set via env variable AIP_EXPERIMENT_RUN_NAME."""
277277
if self._experiment_run:
278278
return self._experiment_run
279-
if os.getenv(constants.ENV_EXPERIMENT_RUN_KEY):
280-
self._experiment_run = experiment_run_resource.ExperimentRun.get(
281-
os.getenv(constants.ENV_EXPERIMENT_RUN_KEY),
279+
280+
env_experiment_run = os.getenv(constants.ENV_EXPERIMENT_RUN_KEY)
281+
if env_experiment_run and self.experiment:
282+
# The run could be run name or full resource name,
283+
# so we remove the experiment resource prefix if necessary.
284+
env_experiment_run = env_experiment_run.replace(
285+
f"{self.experiment.resource_name}-",
286+
"",
287+
)
288+
self._experiment_run = experiment_run_resource.ExperimentRun(
289+
env_experiment_run,
282290
experiment=self.experiment,
283291
)
284292
return self._experiment_run
293+
285294
return None
286295

287296
def set_experiment(

tests/unit/aiplatform/test_metadata.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1487,7 +1487,7 @@ def test_start_run_from_env_experiment(
14871487
"get_tensorboard_run_artifact_not_found_mock",
14881488
"get_or_create_default_tb_none_mock",
14891489
)
1490-
def test_init_experiment_run_from_env(self):
1490+
def test_init_experiment_run_from_env_run_name(self):
14911491
os.environ["AIP_EXPERIMENT_RUN_NAME"] = _TEST_RUN
14921492

14931493
aiplatform.init(
@@ -1501,6 +1501,26 @@ def test_init_experiment_run_from_env(self):
15011501

15021502
del os.environ["AIP_EXPERIMENT_RUN_NAME"]
15031503

1504+
@pytest.mark.usefixtures(
1505+
"get_metadata_store_mock",
1506+
"get_experiment_run_mock",
1507+
"get_tensorboard_run_artifact_not_found_mock",
1508+
"get_or_create_default_tb_none_mock",
1509+
)
1510+
def test_init_experiment_run_from_env_run_resource_name(self):
1511+
os.environ["AIP_EXPERIMENT_RUN_NAME"] = _TEST_EXPERIMENT_RUN_CONTEXT_NAME
1512+
1513+
aiplatform.init(
1514+
project=_TEST_PROJECT,
1515+
location=_TEST_LOCATION,
1516+
experiment=_TEST_EXPERIMENT,
1517+
)
1518+
1519+
run = metadata._experiment_tracker.experiment_run
1520+
assert run.name == _TEST_RUN
1521+
1522+
del os.environ["AIP_EXPERIMENT_RUN_NAME"]
1523+
15041524
def test_get_experiment(self, get_experiment_mock):
15051525
aiplatform.init(
15061526
project=_TEST_PROJECT,

0 commit comments

Comments
 (0)