77
88from rich .console import Console
99from rich .logging import RichHandler
10- from rich .progress import Progress , SpinnerColumn , TimeElapsedColumn
10+ from rich .progress import (
11+ BarColumn ,
12+ MofNCompleteColumn ,
13+ Progress ,
14+ SpinnerColumn ,
15+ TaskProgressColumn ,
16+ TextColumn ,
17+ TimeElapsedColumn ,
18+ TimeRemainingColumn ,
19+ )
1120
1221from codeflash .cli_cmds .console_constants import SPINNER_TYPES
1322from codeflash .cli_cmds .logging_config import BARE_LOGGING_FORMAT
2231console = Console ()
2332logging .basicConfig (
2433 level = logging .INFO ,
25- handlers = [RichHandler (rich_tracebacks = True , markup = False , console = console , show_path = False , show_time = False )],
34+ handlers = [
35+ RichHandler (
36+ rich_tracebacks = True ,
37+ markup = False ,
38+ console = console ,
39+ show_path = False ,
40+ show_time = False ,
41+ )
42+ ],
2643 format = BARE_LOGGING_FORMAT ,
2744)
2845
3148
3249
3350def paneled_text (
34- text : str , panel_args : dict [str , str | bool ] | None = None , text_args : dict [str , str ] | None = None
51+ text : str ,
52+ panel_args : dict [str , str | bool ] | None = None ,
53+ text_args : dict [str , str ] | None = None ,
3554) -> None :
3655 """Print text in a panel."""
3756 from rich .panel import Panel
@@ -58,7 +77,9 @@ def code_print(code_str: str) -> None:
5877
5978
6079@contextmanager
61- def progress_bar (message : str , * , transient : bool = False ) -> Generator [TaskID , None , None ]:
80+ def progress_bar (
81+ message : str , * , transient : bool = False
82+ ) -> Generator [TaskID , None , None ]:
6283 """Display a progress bar with a spinner and elapsed time."""
6384 progress = Progress (
6485 SpinnerColumn (next (spinners )),
@@ -70,3 +91,25 @@ def progress_bar(message: str, *, transient: bool = False) -> Generator[TaskID,
7091 task = progress .add_task (message , total = None )
7192 with progress :
7293 yield task
94+
95+
96+ @contextmanager
97+ def test_files_progress_bar (
98+ total : int , description : str
99+ ) -> Generator [tuple [Progress , TaskID ], None , None ]:
100+ """Progress bar for test files."""
101+ with Progress (
102+ SpinnerColumn (next (spinners )),
103+ TextColumn ("[progress.description]{task.description}" ),
104+ BarColumn (
105+ complete_style = "cyan" ,
106+ finished_style = "green" ,
107+ pulse_style = "yellow" ,
108+ ),
109+ MofNCompleteColumn (),
110+ TimeElapsedColumn (),
111+ TimeRemainingColumn (),
112+ transient = True ,
113+ ) as progress :
114+ task_id = progress .add_task (description , total = total )
115+ yield progress , task_id
0 commit comments