1+ import time
12from rich .console import Console , Group
23from rich .panel import Panel
34from rich .progress import (
@@ -82,6 +83,9 @@ def __init__(self, total_repos: int):
8283 self .total_files_per_repo = {}
8384 self .repo_money_spent = {}
8485 self .display_repo_progress_num = 5
86+ self .start_time_per_repo = {}
87+ self .end_time_per_repo = {}
88+ self .total_time_spent = 0
8589
8690 self .overall_progress = Progress (
8791 SpinnerColumn (),
@@ -208,6 +212,7 @@ def update_time_display(self, time_in_seconds: int) -> None:
208212 time_str = f"{ minutes :02d} m { seconds :02d} s"
209213 else :
210214 time_str = f"{ seconds :02d} s"
215+ self .total_time_spent = time_in_seconds
211216 self .time_display = Text (f"Time Spent So Far: { time_str } " , justify = "center" )
212217 self .layout ["progress" ]["time" ].update (
213218 Panel (self .time_display , title = "Time" , border_style = "blue" )
@@ -323,6 +328,7 @@ def start_repo(self, repo_name: str, total_files: int = 0) -> None:
323328 self .ongoing_repos [repo_name ] = ""
324329 self .finished_files [repo_name ] = []
325330 self .total_files_per_repo [repo_name ] = total_files
331+ self .start_time_per_repo [repo_name ] = time .time ()
326332 self .update ()
327333
328334 def finish_repo (self , repo_name : str ) -> None :
@@ -333,6 +339,7 @@ def finish_repo(self, repo_name: str) -> None:
333339 if repo_name in self .finished_files :
334340 del self .finished_files [repo_name ]
335341 self .overall_progress .update (self .overall_task , advance = 1 )
342+ self .end_time_per_repo [repo_name ] = time .time ()
336343 self .update ()
337344
338345 def set_not_started_repos (self , repos : list [str ]) -> None :
@@ -354,4 +361,25 @@ def __exit__(
354361 exc_tb : TracebackType | None ,
355362 ):
356363 self .live .stop ()
357- print ("Agent finished running" )
364+ print ("\n Summary of Repository Processing:" )
365+ print ("-" * 80 )
366+ print (
367+ f"{ 'Repository' :<30} { 'Time Spent' :<15} { 'Files Processed' :<20} { 'Money Spent' :<15} "
368+ )
369+ print ("-" * 80 )
370+ total_files = 0
371+ total_money = 0
372+ for repo_name , end_time in self .end_time_per_repo .items ():
373+ time_spent = end_time - self .start_time_per_repo [repo_name ]
374+ files_processed = self .total_files_per_repo [repo_name ]
375+ money_spent = sum (self .repo_money_spent .get (repo_name , {}).values ())
376+ print (
377+ f"{ repo_name :<30} { time_spent :>13.2f} s { files_processed :>18} { money_spent :>13.2f} $"
378+ )
379+ total_files += files_processed
380+ total_money += money_spent
381+ print ("-" * 80 )
382+ print (
383+ f"{ 'Total' :<30} { self .total_time_spent :>13.2f} s { total_files :>18} { total_money :>13.2f} $"
384+ )
385+ print ("-" * 80 )
0 commit comments