from rich.live import Live
from rich.table import Table
from rich.progress import Progress, SpinnerColumn, TextColumn
import time
# Live updating dashboard
def create_table() -> Table:
table = Table(title="System Monitor")
table.add_column("CPU", style="cyan")
table.add_column("Memory", style="magenta")
table.add_column("Tasks", style="green")
return table
with Live(create_table(), refresh_per_second=4) as live:
progress = Progress(SpinnerColumn(), TextColumn("[progress.description]{task.description}"))
task = progress.add_task("Processing...", total=1000)
for i in range(1000):
# Update table live
table = create_table()
table.add_row(f"{i*0.1:.0f}%", f"{i*2}MB", f"{i+10}")
live.update(table)
# Update progress
progress.update(task, advance=1, description=f"Step {i+1}/1000")
time.sleep(0.02)
print(" Complete!")