From 562f09c1f6c9cfc0faba1053ee1ecb4ec857ad2e Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 14 Jul 2023 15:52:38 +0530 Subject: [PATCH] Expose reset as well --- kittens/transfer/algorithm.c | 7 +++++++ kittens/transfer/rsync.pyi | 17 +++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/kittens/transfer/algorithm.c b/kittens/transfer/algorithm.c index d5a95654e..2bce52468 100644 --- a/kittens/transfer/algorithm.c +++ b/kittens/transfer/algorithm.c @@ -175,6 +175,12 @@ Hasher_dealloc(PyObject *self) { Py_TYPE(self)->tp_free(self); } +static PyObject* +reset(Hasher *self) { + if (!self->h.reset(self->h.state)) return PyErr_NoMemory(); + Py_RETURN_NONE; +} + static PyObject* update(Hasher *self, PyObject *o) { FREE_BUFFER_AFTER_FUNCTION Py_buffer data = {0}; @@ -217,6 +223,7 @@ static PyMethodDef Hasher_methods[] = { METHODB(update, METH_O), METHODB(digest, METH_NOARGS), METHODB(hexdigest, METH_NOARGS), + METHODB(reset, METH_NOARGS), {NULL} /* Sentinel */ }; diff --git a/kittens/transfer/rsync.pyi b/kittens/transfer/rsync.pyi index ba99280fc..4ad44bcd3 100644 --- a/kittens/transfer/rsync.pyi +++ b/kittens/transfer/rsync.pyi @@ -1,3 +1,20 @@ +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: ...