Skip to content

Commit 6e31fc8

Browse files
authored
Merge branch 'main' into saga4/rename_e2e_workflow_files
2 parents ba5fa86 + 601e03b commit 6e31fc8

File tree

2 files changed

+18
-7
lines changed

2 files changed

+18
-7
lines changed

codeflash/code_utils/formatter.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,9 @@ def format_code(
109109
print_status: bool = True, # noqa
110110
exit_on_failure: bool = True, # noqa
111111
) -> str:
112+
if console.quiet:
113+
# lsp mode
114+
exit_on_failure = False
112115
with tempfile.TemporaryDirectory() as test_dir_str:
113116
if isinstance(path, str):
114117
path = Path(path)

codeflash/lsp/beta.py

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
from __future__ import annotations
22

3+
import contextlib
4+
import json
5+
import os
36
from dataclasses import dataclass
47
from pathlib import Path
58
from typing import TYPE_CHECKING
@@ -55,18 +58,21 @@ def initialize_function_optimization(
5558
return {"functionName": params.functionName, "status": "not found", "args": None}
5659
fto = optimizable_funcs.popitem()[1][0]
5760
server.optimizer.current_function_being_optimized = fto
58-
return {"functionName": params.functionName, "status": "success", "info": fto.server_info}
61+
return {"functionName": params.functionName, "status": "success"}
5962

6063

6164
@server.feature("discoverFunctionTests")
6265
def discover_function_tests(server: CodeflashLanguageServer, params: FunctionOptimizationParams) -> dict[str, str]:
63-
current_function = server.optimizer.current_function_being_optimized
66+
fto = server.optimizer.current_function_being_optimized
67+
optimizable_funcs = {fto.file_path: [fto]}
68+
69+
devnull_writer = open(os.devnull, "w") # noqa
70+
with contextlib.redirect_stdout(devnull_writer):
71+
function_to_tests, num_discovered_tests = server.optimizer.discover_tests(optimizable_funcs)
6472

65-
optimizable_funcs = {current_function.file_path: [current_function]}
73+
server.optimizer.discovered_tests = function_to_tests
6674

67-
function_to_tests, num_discovered_tests = server.optimizer.discover_tests(optimizable_funcs)
68-
# mocking in order to get things going
69-
return {"functionName": params.functionName, "status": "success", "generated_tests": str(num_discovered_tests)}
75+
return {"functionName": params.functionName, "status": "success", "discovered_tests": num_discovered_tests}
7076

7177

7278
@server.feature("prepareOptimization")
@@ -145,6 +151,7 @@ def perform_function_optimization(
145151
function_to_optimize_source_code=validated_original_code[current_function.file_path].source_code,
146152
original_module_ast=original_module_ast,
147153
original_module_path=current_function.file_path,
154+
function_to_tests=server.optimizer.discovered_tests or {},
148155
)
149156

150157
server.optimizer.current_function_optimizer = function_optimizer
@@ -214,13 +221,14 @@ def perform_function_optimization(
214221
"message": f"No best optimizations found for function {function_to_optimize_qualified_name}",
215222
}
216223

217-
optimized_source = best_optimization.candidate.source_code # noqa: F841
224+
optimized_source = best_optimization.candidate.source_code
218225

219226
return {
220227
"functionName": params.functionName,
221228
"status": "success",
222229
"message": "Optimization completed successfully",
223230
"extra": f"Speedup: {original_code_baseline.runtime / best_optimization.runtime:.2f}x faster",
231+
"optimization": json.dumps(optimized_source, indent=None),
224232
}
225233

226234

0 commit comments

Comments
 (0)