Source code for src.codecrepos.clone_progress

from typing import Optional

from git import RemoteProgress
from tqdm import tqdm


[docs] class CloneProgress(RemoteProgress): def __init__(self) -> None: super().__init__() self.progress_bar = None
[docs] def update( self, op_code: int, cur_count: int, max_count: Optional[int] = None, message: str = "", ) -> None: if max_count and not self.progress_bar: # Initialize tqdm progress bar once max_count is known self.progress_bar = tqdm(total=max_count, unit="obj", leave=True) if self.progress_bar: self.progress_bar.n = cur_count self.progress_bar.refresh() if message: self.progress_bar.set_description(message)
def __del__(self) -> None: # Close the progress bar when done if self.progress_bar: self.progress_bar.close()