From 998f4c463afe1b6258624b47524c07d55e8a5863 Mon Sep 17 00:00:00 2001 From: Saurabh Misra Date: Fri, 27 Jun 2025 20:10:41 -0700 Subject: [PATCH 1/4] cleanup --- codeflash/optimization/optimizer.py | 52 ++++++++++++++++------------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/codeflash/optimization/optimizer.py b/codeflash/optimization/optimizer.py index 32a825b76..980607e47 100644 --- a/codeflash/optimization/optimizer.py +++ b/codeflash/optimization/optimizer.py @@ -288,31 +288,37 @@ def run(self) -> None: f"{function_to_optimize.qualified_name}" ) console.rule() + function_optimizer = None + try: + function_optimizer = self.create_function_optimizer( + function_to_optimize, + function_to_tests=function_to_tests, + function_to_optimize_source_code=validated_original_code[original_module_path].source_code, + function_benchmark_timings=function_benchmark_timings, + total_benchmark_timings=total_benchmark_timings, + original_module_ast=original_module_ast, + original_module_path=original_module_path, + ) - function_optimizer = self.create_function_optimizer( - function_to_optimize, - function_to_tests=function_to_tests, - function_to_optimize_source_code=validated_original_code[original_module_path].source_code, - function_benchmark_timings=function_benchmark_timings, - total_benchmark_timings=total_benchmark_timings, - original_module_ast=original_module_ast, - original_module_path=original_module_path, - ) - - self.current_function_optimizer = ( - function_optimizer # needed to clean up from the outside of this function - ) - best_optimization = function_optimizer.optimize_function() - if self.functions_checkpoint: - self.functions_checkpoint.add_function_to_checkpoint( - function_to_optimize.qualified_name_with_modules_from_root(self.args.project_root) + self.current_function_optimizer = ( + function_optimizer # needed to clean up from the outside of this function ) - if is_successful(best_optimization): - optimizations_found += 1 - else: - logger.warning(best_optimization.failure()) - console.rule() - continue + best_optimization = function_optimizer.optimize_function() + if self.functions_checkpoint: + self.functions_checkpoint.add_function_to_checkpoint( + function_to_optimize.qualified_name_with_modules_from_root(self.args.project_root) + ) + if is_successful(best_optimization): + optimizations_found += 1 + else: + logger.warning(best_optimization.failure()) + console.rule() + continue + finally: + if function_optimizer is not None: + function_optimizer.cleanup_generated_files() + self.cleanup_temporary_paths() + ph("cli-optimize-run-finished", {"optimizations_found": optimizations_found}) if self.functions_checkpoint: self.functions_checkpoint.cleanup() From 1fc4614326341c34c64b60d7f31ae0b7c000b43f Mon Sep 17 00:00:00 2001 From: Saurabh Misra Date: Fri, 27 Jun 2025 20:33:31 -0700 Subject: [PATCH 2/4] fix --- codeflash/optimization/optimizer.py | 1 - 1 file changed, 1 deletion(-) diff --git a/codeflash/optimization/optimizer.py b/codeflash/optimization/optimizer.py index 980607e47..95ad3c937 100644 --- a/codeflash/optimization/optimizer.py +++ b/codeflash/optimization/optimizer.py @@ -317,7 +317,6 @@ def run(self) -> None: finally: if function_optimizer is not None: function_optimizer.cleanup_generated_files() - self.cleanup_temporary_paths() ph("cli-optimize-run-finished", {"optimizations_found": optimizations_found}) if self.functions_checkpoint: From dc2a19e142c2369f70f903b78a5ccdfaf3556849 Mon Sep 17 00:00:00 2001 From: Saurabh Misra Date: Fri, 27 Jun 2025 21:03:25 -0700 Subject: [PATCH 3/4] fix --- codeflash/optimization/function_optimizer.py | 2 -- codeflash/optimization/optimizer.py | 5 ++++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/codeflash/optimization/function_optimizer.py b/codeflash/optimization/function_optimizer.py index acae4b9fb..75d82c4c2 100644 --- a/codeflash/optimization/function_optimizer.py +++ b/codeflash/optimization/function_optimizer.py @@ -1463,5 +1463,3 @@ def cleanup_generated_files(self) -> None: paths_to_cleanup.append(test_file.benchmarking_file_path) cleanup_paths(paths_to_cleanup) - if hasattr(get_run_tmp_file, "tmpdir"): - get_run_tmp_file.tmpdir.cleanup() diff --git a/codeflash/optimization/optimizer.py b/codeflash/optimization/optimizer.py index 97e6545ca..819e61264 100644 --- a/codeflash/optimization/optimizer.py +++ b/codeflash/optimization/optimizer.py @@ -12,7 +12,7 @@ from codeflash.api.aiservice import AiServiceClient, LocalAiServiceClient from codeflash.cli_cmds.console import console, logger, progress_bar from codeflash.code_utils import env_utils -from codeflash.code_utils.code_utils import cleanup_paths +from codeflash.code_utils.code_utils import cleanup_paths, get_run_tmp_file from codeflash.code_utils.env_utils import get_pr_number from codeflash.either import is_successful from codeflash.models.models import ValidCode @@ -356,6 +356,9 @@ def cleanup_temporary_paths(self) -> None: if self.current_function_optimizer: self.current_function_optimizer.cleanup_generated_files() + if hasattr(get_run_tmp_file, "tmpdir"): + get_run_tmp_file.tmpdir.cleanup() + del get_run_tmp_file.tmpdir cleanup_paths([self.test_cfg.concolic_test_root_dir, self.replay_tests_dir]) From 81f912a2db833448b5cd388a882e9ed23b6be55c Mon Sep 17 00:00:00 2001 From: Saurabh Misra Date: Sun, 29 Jun 2025 23:57:55 -0700 Subject: [PATCH 4/4] don't cleanup concolic test path with each function --- codeflash/optimization/function_optimizer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codeflash/optimization/function_optimizer.py b/codeflash/optimization/function_optimizer.py index 75d82c4c2..82cf4bc57 100644 --- a/codeflash/optimization/function_optimizer.py +++ b/codeflash/optimization/function_optimizer.py @@ -1457,7 +1457,7 @@ def submit_test_generation_tasks( ] def cleanup_generated_files(self) -> None: - paths_to_cleanup = [self.test_cfg.concolic_test_root_dir] + paths_to_cleanup = [] for test_file in self.test_files: paths_to_cleanup.append(test_file.instrumented_behavior_file_path) paths_to_cleanup.append(test_file.benchmarking_file_path)