from typing import Union Buffer = Union[bytes, bytearray, memoryview] class RsyncError(Exception): pass class Hasher: def __init__(self, which: str, data: Buffer = b''): ... def update(self, data: Buffer) -> None: ... def reset(self) -> None: ... def digest(self) -> bytes: ... def hexdigest(self) -> str: ... @property def digest_size(self) -> int: ... @property def block_size(self) -> int: ... @property def name(self) -> str: ...