From 766c31951acdba276d8017aa61401c1f1a2b369a Mon Sep 17 00:00:00 2001 From: Aseem Saxena Date: Mon, 19 May 2025 15:25:17 -0400 Subject: [PATCH 1/3] trying --- codeflash/optimization/function_optimizer.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/codeflash/optimization/function_optimizer.py b/codeflash/optimization/function_optimizer.py index 56124a9cb..d941227c5 100644 --- a/codeflash/optimization/function_optimizer.py +++ b/codeflash/optimization/function_optimizer.py @@ -393,7 +393,7 @@ def determine_best_candidate( try: candidate_index = 0 original_len = len(candidates) - while candidates: + while True: done = True if future_line_profile_results is None else future_line_profile_results.done() if done and (future_line_profile_results is not None): line_profile_results = future_line_profile_results.result() @@ -512,7 +512,8 @@ def determine_best_candidate( self.write_code_and_helpers( self.function_to_optimize_source_code, original_helper_code, self.function_to_optimize.file_path ) - + if done and not candidates: + break except KeyboardInterrupt as e: self.write_code_and_helpers( self.function_to_optimize_source_code, original_helper_code, self.function_to_optimize.file_path From 87822c1d244827c48a38d052073a716927d19542 Mon Sep 17 00:00:00 2001 From: Aseem Saxena Date: Mon, 19 May 2025 15:38:00 -0400 Subject: [PATCH 2/3] should work now --- codeflash/optimization/function_optimizer.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/codeflash/optimization/function_optimizer.py b/codeflash/optimization/function_optimizer.py index d941227c5..d93cd07a2 100644 --- a/codeflash/optimization/function_optimizer.py +++ b/codeflash/optimization/function_optimizer.py @@ -403,8 +403,11 @@ def determine_best_candidate( f"Added results from line profiler to candidates, total candidates now: {original_len}" ) future_line_profile_results = None + try: + candidate = candidates.popleft() + except IndexError as e: + continue candidate_index += 1 - candidate = candidates.popleft() get_run_tmp_file(Path(f"test_return_values_{candidate_index}.bin")).unlink(missing_ok=True) get_run_tmp_file(Path(f"test_return_values_{candidate_index}.sqlite")).unlink(missing_ok=True) logger.info(f"Optimization candidate {candidate_index}/{original_len}:") From efa767c4ae0fcfa93f57e2942b2d492639abdae8 Mon Sep 17 00:00:00 2001 From: Aseem Saxena Date: Mon, 19 May 2025 17:05:17 -0400 Subject: [PATCH 3/3] fix rare case when line profiler aiservice returns an empty list --- codeflash/optimization/function_optimizer.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/codeflash/optimization/function_optimizer.py b/codeflash/optimization/function_optimizer.py index d93cd07a2..6d49e8546 100644 --- a/codeflash/optimization/function_optimizer.py +++ b/codeflash/optimization/function_optimizer.py @@ -406,6 +406,8 @@ def determine_best_candidate( try: candidate = candidates.popleft() except IndexError as e: + if done: + break continue candidate_index += 1 get_run_tmp_file(Path(f"test_return_values_{candidate_index}.bin")).unlink(missing_ok=True)