gabykim's picture
knowlang cli support
ad887b7
raw
history blame
1.06 kB
"""Progress tracking for CLI operations."""
from contextlib import contextmanager
from typing import Iterator
from rich.console import Console
console = Console()
class ProgressTracker:
"""Track progress of file processing."""
def __init__(self, description: str = "Processing..."):
self.description = description
self.status = None
self.processed_files = 0
@contextmanager
def progress(self) -> Iterator[None]:
"""Context manager for tracking progress."""
with console.status(f"[bold green]{self.description}") as status:
self.status = status
yield
self.status = None
def update(self, message: str) -> None:
"""Update progress status.
Args:
message: Current status message
"""
if self.status:
self.processed_files += 1
self.status.update(
f"[bold yellow]Processed {self.processed_files} files, "
f"[bold green]{message}"
)