Example #1
0
class GitProgressReporter:
    def __init__(self, fn) -> None:
        from git.util import CallableRemoteProgress

        self._reporter = CallableRemoteProgress(self.wrap_fn(fn))

    def __call__(self, msg: Union[str, bytes]) -> None:
        self._reporter._parse_progress_line(
            msg.decode("ascii").strip() if isinstance(msg, bytes) else msg)

    @staticmethod
    def wrap_fn(fn):
        return compose(fn, GitProgressEvent.parsed_from_gitpython)
Example #2
0
def to_progress_instance(progress):
    """Given the 'progress' return a suitable object derived from
    RemoteProgress().
    """
    # new API only needs progress as a function
    if callable(progress):
        return CallableRemoteProgress(progress)

    # where None is passed create a parser that eats the progress
    elif progress is None:
        return RemoteProgress()

    # assume its the old API with an instance of RemoteProgress.
    return progress
Example #3
0
    def __init__(self, fn) -> None:
        from git.util import CallableRemoteProgress

        self._reporter = CallableRemoteProgress(self.wrap_fn(fn))