Skip to content

Commit 1def2b4

Browse files
committed
refactoring
1 parent 4619f69 commit 1def2b4

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed

codeflash/code_utils/env_utils.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,23 @@
22
from functools import lru_cache
33
from typing import Optional
44

5+
import click
6+
57
from codeflash.cli_cmds.console import logger
68
from codeflash.code_utils.shell_utils import read_api_key_from_shell_config
9+
from codeflash.verification.test_runner import execute_test_subprocess
10+
711

12+
def check_formatter_installed(formatter_cmds: list[str]) -> bool:
13+
cmd_parts = formatter_cmds[0].split(" ")
14+
if "black" in cmd_parts or "ruff" in cmd_parts:
15+
formatter = cmd_parts[0]
16+
try:
17+
execute_test_subprocess([formatter])
18+
except (FileNotFoundError, NotADirectoryError):
19+
click.echo(f"⚠️ Formatter not found: {formatter}, please ensure it is installed")
20+
return False
21+
return True
822

923
@lru_cache(maxsize=1)
1024
def get_codeflash_api_key() -> str:

codeflash/optimization/optimizer.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,12 @@
22

33
import ast
44
import os
5-
import sys
65
import tempfile
76
import time
87
from collections import defaultdict
98
from pathlib import Path
109
from typing import TYPE_CHECKING
1110

12-
import click
13-
1411
from codeflash.api.aiservice import AiServiceClient, LocalAiServiceClient
1512
from codeflash.benchmarking.instrument_codeflash_trace import instrument_codeflash_trace_decorator
1613
from codeflash.benchmarking.plugin.plugin import CodeFlashBenchmarkPlugin
@@ -28,7 +25,6 @@
2825
from codeflash.models.models import BenchmarkKey, ValidCode
2926
from codeflash.optimization.function_optimizer import FunctionOptimizer
3027
from codeflash.telemetry.posthog_cf import ph
31-
from codeflash.verification.test_runner import execute_test_subprocess
3228
from codeflash.verification.verification_utils import TestConfig
3329

3430
if TYPE_CHECKING:
@@ -80,6 +76,7 @@ def create_function_optimizer(
8076
)
8177

8278
def run(self) -> None:
79+
<<<<<<< Updated upstream
8380
if self.args.formatter_cmds[0].startswith("black") or self.args.formatter_cmds[0].startswith("ruff"):
8481
formatter = self.args.formatter_cmds[0].split(" ")[0]
8582
try:
@@ -88,11 +85,15 @@ def run(self) -> None:
8885
click.echo(f"⚠️ Formatter not found: {formatter}, please ensure it is installed. Exiting...")
8986
sys.exit(1)
9087

88+
=======
89+
>>>>>>> Stashed changes
9190
ph("cli-optimize-run-start")
9291
logger.info("Running optimizer.")
9392
console.rule()
9493
if not env_utils.ensure_codeflash_api_key():
9594
return
95+
if not env_utils.check_formatter_installed():
96+
return
9697
function_optimizer = None
9798
file_to_funcs_to_optimize: dict[Path, list[FunctionToOptimize]]
9899
num_optimizable_functions: int

0 commit comments

Comments
 (0)