e1b3e9e6ae
Add patch support and resumeable sha Implement all actual registry methods Add a simple database generation option
24 lines
507 B
Python
24 lines
507 B
Python
class SocketReader(object):
|
|
def __init__(self, fp):
|
|
self._fp = fp
|
|
self.handlers = []
|
|
|
|
def add_handler(self, handler):
|
|
self.handlers.append(handler)
|
|
|
|
def read(self, n=-1):
|
|
buf = self._fp.read(n)
|
|
if not buf:
|
|
return ''
|
|
for handler in self.handlers:
|
|
handler(buf)
|
|
return buf
|
|
|
|
def tell(self):
|
|
raise IOError('Stream is not seekable.')
|
|
|
|
|
|
def wrap_with_hash(in_fp, hash_obj):
|
|
wrapper = SocketReader(in_fp)
|
|
wrapper.add_handler(hash_obj.update)
|
|
return wrapper
|