Skip to content

Commit d0f84f6

Browse files
committed
improve some github actions logging
1 parent 797cba3 commit d0f84f6

File tree

4 files changed

+38
-15
lines changed

4 files changed

+38
-15
lines changed

codeflash/api/aiservice.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ def optimize_python_code( # noqa: D417
118118

119119
if response.status_code == 200:
120120
optimizations_json = response.json()["optimizations"]
121-
logger.info(f"Generated {len(optimizations_json)} candidates.")
121+
logger.info(f"Generated {len(optimizations_json)} candidate optimizations.")
122122
console.rule()
123123
end_time = time.perf_counter()
124124
logger.debug(f"Generating optimizations took {end_time - start_time:.2f} seconds.")
@@ -189,7 +189,7 @@ def optimize_python_code_line_profiler( # noqa: D417
189189

190190
if response.status_code == 200:
191191
optimizations_json = response.json()["optimizations"]
192-
logger.info(f"Generated {len(optimizations_json)} candidates.")
192+
logger.info(f"Generated {len(optimizations_json)} candidate optimizations.")
193193
console.rule()
194194
return [
195195
OptimizedCandidate(

codeflash/cli_cmds/console.py

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -66,18 +66,34 @@ def code_print(code_str: str) -> None:
6666

6767

6868
@contextmanager
69-
def progress_bar(message: str, *, transient: bool = False) -> Generator[TaskID, None, None]:
70-
"""Display a progress bar with a spinner and elapsed time."""
71-
progress = Progress(
72-
SpinnerColumn(next(spinners)),
73-
*Progress.get_default_columns(),
74-
TimeElapsedColumn(),
75-
console=console,
76-
transient=transient,
77-
)
78-
task = progress.add_task(message, total=None)
79-
with progress:
80-
yield task
69+
def progress_bar(
70+
message: str, *, transient: bool = False, revert_to_print: bool = False
71+
) -> Generator[TaskID, None, None]:
72+
"""Display a progress bar with a spinner and elapsed time.
73+
74+
If revert_to_print is True, falls back to printing a single logger.info message
75+
instead of showing a progress bar.
76+
"""
77+
if revert_to_print:
78+
logger.info(message)
79+
80+
# Create a fake task ID since we still need to yield something
81+
class DummyTask:
82+
def __init__(self) -> None:
83+
self.id = 0
84+
85+
yield DummyTask().id
86+
else:
87+
progress = Progress(
88+
SpinnerColumn(next(spinners)),
89+
*Progress.get_default_columns(),
90+
TimeElapsedColumn(),
91+
console=console,
92+
transient=transient,
93+
)
94+
task = progress.add_task(message, total=None)
95+
with progress:
96+
yield task
8197

8298

8399
@contextmanager

codeflash/optimization/function_optimizer.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
add_runtime_comments_to_generated_tests,
4949
remove_functions_from_generated_tests,
5050
)
51+
from codeflash.code_utils.env_utils import get_pr_number
5152
from codeflash.code_utils.formatter import format_code, sort_imports
5253
from codeflash.code_utils.instrument_existing_tests import inject_profiling_into_existing_test
5354
from codeflash.code_utils.line_profile_utils import add_decorator_imports
@@ -188,6 +189,7 @@ def optimize_function(self) -> Result[BestOptimization, str]: # noqa: PLR0911
188189
with progress_bar(
189190
f"Generating new tests and optimizations for function {self.function_to_optimize.function_name}",
190191
transient=True,
192+
revert_to_print=bool(get_pr_number()),
191193
):
192194
generated_results = self.generate_tests_and_optimizations(
193195
testgen_context_code=code_context.testgen_context_code,

codeflash/optimization/optimizer.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from codeflash.api.aiservice import AiServiceClient, LocalAiServiceClient
1212
from codeflash.cli_cmds.console import console, logger, progress_bar
1313
from codeflash.code_utils import env_utils
14+
from codeflash.code_utils.env_utils import get_pr_number
1415
from codeflash.either import is_successful
1516
from codeflash.models.models import ValidCode
1617
from codeflash.telemetry.posthog_cf import ph
@@ -110,7 +111,11 @@ def run(self) -> None:
110111
from codeflash.benchmarking.trace_benchmarks import trace_benchmarks_pytest
111112
from codeflash.benchmarking.utils import print_benchmark_table, validate_and_format_benchmark_table
112113

113-
with progress_bar(f"Running benchmarks in {self.args.benchmarks_root}", transient=True):
114+
with progress_bar(
115+
f"Running benchmarks in {self.args.benchmarks_root}",
116+
transient=True,
117+
revert_to_print=bool(get_pr_number()),
118+
):
114119
# Insert decorator
115120
file_path_to_source_code = defaultdict(str)
116121
for file in file_to_funcs_to_optimize:

0 commit comments

Comments
 (0)