Skip to content

Commit e4a4909

Browse files
committed
update the default save directory to results & logic to increment the suffix
1 parent 12c70a8 commit e4a4909

File tree

1 file changed

+20
-13
lines changed

1 file changed

+20
-13
lines changed

ads/opctl/operator/lowcode/forecast/model/base_model.py

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -436,14 +436,21 @@ def _save_report(
436436
if self.spec.output_directory:
437437
output_dir = self.spec.output_directory.url
438438
else:
439-
output_dir = "tmp_fc_operator_result"
439+
output_dir = "results"
440+
441+
# If the directory exists, find the next unique directory name by appending an incrementing suffix
442+
counter = 1
443+
unique_output_dir = f"{output_dir}"
444+
while os.path.exists(unique_output_dir):
445+
unique_output_dir = f"{output_dir}_{counter}"
446+
counter += 1
440447
logger.warn(
441448
"Since the output directory was not specified, the output will be saved to {} directory.".format(
442-
output_dir
449+
unique_output_dir
443450
)
444451
)
445452

446-
if ObjectStorageDetails.is_oci_path(output_dir):
453+
if ObjectStorageDetails.is_oci_path(unique_output_dir):
447454
storage_options = default_signer()
448455
else:
449456
storage_options = dict()
@@ -457,7 +464,7 @@ def _save_report(
457464
dp.save_report(report_sections, report_local_path)
458465
utils.enable_print()
459466

460-
report_path = os.path.join(output_dir, self.spec.report_filename)
467+
report_path = os.path.join(unique_output_dir, self.spec.report_filename)
461468
with open(report_local_path) as f1:
462469
with fsspec.open(
463470
report_path,
@@ -469,7 +476,7 @@ def _save_report(
469476
# forecast csv report
470477
utils._write_data(
471478
data=result_df,
472-
filename=os.path.join(output_dir, self.spec.forecast_filename),
479+
filename=os.path.join(unique_output_dir, self.spec.forecast_filename),
473480
format="csv",
474481
storage_options=storage_options,
475482
)
@@ -479,7 +486,7 @@ def _save_report(
479486
if metrics_df is not None:
480487
utils._write_data(
481488
data=metrics_df.rename_axis("metrics").reset_index(),
482-
filename=os.path.join(output_dir, self.spec.metrics_filename),
489+
filename=os.path.join(unique_output_dir, self.spec.metrics_filename),
483490
format="csv",
484491
storage_options=storage_options,
485492
index=False,
@@ -495,7 +502,7 @@ def _save_report(
495502
utils._write_data(
496503
data=test_metrics_df.rename_axis("metrics").reset_index(),
497504
filename=os.path.join(
498-
output_dir, self.spec.test_metrics_filename
505+
unique_output_dir, self.spec.test_metrics_filename
499506
),
500507
format="csv",
501508
storage_options=storage_options,
@@ -512,7 +519,7 @@ def _save_report(
512519
utils._write_data(
513520
data=self.formatted_global_explanation,
514521
filename=os.path.join(
515-
output_dir, self.spec.global_explanation_filename
522+
unique_output_dir, self.spec.global_explanation_filename
516523
),
517524
format="csv",
518525
storage_options=storage_options,
@@ -527,7 +534,7 @@ def _save_report(
527534
utils._write_data(
528535
data=self.formatted_local_explanation,
529536
filename=os.path.join(
530-
output_dir, self.spec.local_explanation_filename
537+
unique_output_dir, self.spec.local_explanation_filename
531538
),
532539
format="csv",
533540
storage_options=storage_options,
@@ -546,7 +553,7 @@ def _save_report(
546553
# model params
547554
utils._write_data(
548555
data=pd.DataFrame.from_dict(self.model_parameters),
549-
filename=os.path.join(output_dir, "model_params.json"),
556+
filename=os.path.join(unique_output_dir, "model_params.json"),
550557
format="json",
551558
storage_options=storage_options,
552559
index=True,
@@ -555,17 +562,17 @@ def _save_report(
555562

556563
# model pickle
557564
if self.spec.generate_model_pickle:
558-
self._save_model(output_dir, storage_options)
565+
self._save_model(unique_output_dir, storage_options)
559566

560567
logger.info(
561568
f"The outputs have been successfully "
562-
f"generated and placed into the directory: {output_dir}."
569+
f"generated and placed into the directory: {unique_output_dir}."
563570
)
564571
if self.errors_dict:
565572
utils._write_data(
566573
data=pd.DataFrame(self.errors_dict.items(), columns=["model", "error"]),
567574
filename=os.path.join(
568-
output_dir, self.spec.errors_dict_filename
575+
unique_output_dir, self.spec.errors_dict_filename
569576
),
570577
format="csv",
571578
storage_options=storage_options,

0 commit comments

Comments
 (0)