Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
5c3903e
will exit the cli if user doesn't have the formatter installed while …
aseembits93 May 20, 2025
3766ab4
moving things around
aseembits93 May 20, 2025
022d59b
typo
aseembits93 May 20, 2025
cf57fb1
ruff
aseembits93 May 20, 2025
4619f69
Update codeflash/optimization/optimizer.py
misrasaurabh1 May 20, 2025
1def2b4
refactoring
aseembits93 May 20, 2025
7ba496d
stash didnt work as expected
aseembits93 May 20, 2025
72519d5
Update env_utils.py
aseembits93 May 20, 2025
290f7b3
circular depenencies
aseembits93 May 20, 2025
ffbb167
minor fix
aseembits93 May 20, 2025
f484ff0
reduce duplication
aseembits93 May 20, 2025
f090a7a
Merge branch 'main' into fix-formatter-during-runtime
aseembits93 May 20, 2025
498f401
Merge branch 'main' into fix-formatter-during-runtime
aseembits93 May 20, 2025
cd63955
more pythonic
aseembits93 May 20, 2025
dfc5177
covering cases where uv or uvx is used
aseembits93 May 20, 2025
ac0894a
running all commands in list to ensure all run
aseembits93 May 20, 2025
6b27835
minor fixes
aseembits93 May 20, 2025
27fb8eb
Merge branch 'main' into fix-formatter-during-runtime
aseembits93 May 20, 2025
7f01823
bugfix
aseembits93 May 20, 2025
bc31a61
handle more exceptions
aseembits93 May 21, 2025
dfaa1cb
raise proper exception
KRRT7 May 21, 2025
130870e
Merge branch 'main' into fix-formatter-during-runtime
aseembits93 May 21, 2025
64edb0c
Merge branch 'main' into fix-formatter-during-runtime
misrasaurabh1 May 21, 2025
3334392
Merge branch 'main' into fix-formatter-during-runtime
misrasaurabh1 May 21, 2025
5507f8f
Merge branch 'main' into fix-formatter-during-runtime
aseembits93 May 21, 2025
baa747a
precommit fix
aseembits93 May 21, 2025
4cfaea0
Merge branch 'main' into fix-formatter-during-runtime
aseembits93 May 27, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions codeflash/optimization/function_optimizer.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import ast
import concurrent.futures
import os
import shutil
import subprocess
import time
import uuid
Expand Down Expand Up @@ -405,7 +404,7 @@ def determine_best_candidate(
future_line_profile_results = None
try:
candidate = candidates.popleft()
except IndexError as e:
except IndexError:
if done:
break
continue
Expand Down
15 changes: 13 additions & 2 deletions codeflash/optimization/optimizer.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,15 @@

import ast
import os
import sys
import tempfile
import time
from collections import defaultdict
from pathlib import Path
from typing import TYPE_CHECKING

import click

from codeflash.api.aiservice import AiServiceClient, LocalAiServiceClient
from codeflash.benchmarking.instrument_codeflash_trace import instrument_codeflash_trace_decorator
from codeflash.benchmarking.plugin.plugin import CodeFlashBenchmarkPlugin
Expand All @@ -18,14 +21,14 @@
from codeflash.code_utils import env_utils
from codeflash.code_utils.checkpoint import CodeflashRunCheckpoint
from codeflash.code_utils.code_replacer import normalize_code, normalize_node
from codeflash.code_utils.code_utils import cleanup_paths, get_run_tmp_file
from codeflash.code_utils.static_analysis import analyze_imported_modules, get_first_top_level_function_or_method_ast
from codeflash.discovery.discover_unit_tests import discover_unit_tests
from codeflash.discovery.functions_to_optimize import get_functions_to_optimize
from codeflash.either import is_successful
from codeflash.models.models import BenchmarkKey, TestType, ValidCode
from codeflash.models.models import BenchmarkKey, ValidCode
from codeflash.optimization.function_optimizer import FunctionOptimizer
from codeflash.telemetry.posthog_cf import ph
from codeflash.verification.test_runner import execute_test_subprocess
from codeflash.verification.verification_utils import TestConfig

if TYPE_CHECKING:
Expand Down Expand Up @@ -77,6 +80,14 @@ def create_function_optimizer(
)

def run(self) -> None:
if self.args.formatter_cmds[0].startswith("black") or self.args.formatter_cmds[0].startswith("ruff"):
formatter = self.args.formatter_cmds[0].split(" ")[0]
try:
execute_test_subprocess([formatter])
except (FileNotFoundError, NotADirectoryError):
click.echo(f"⚠️ Formatter not found: {formatter}, please ensure it is installed")
sys.exit(1)

ph("cli-optimize-run-start")
logger.info("Running optimizer.")
console.rule()
Expand Down
Loading