utils: remove BackwardsReadablestream

This commit is contained in:
InsanePrawn 2023-04-18 00:38:45 +02:00
parent 38b23de9ad
commit d2e0fad436

View file

@ -152,63 +152,6 @@ def is_zstd(data):
return True
class BackwardsReadableStream:
def __init__(self, stream):
self.stream = stream
self.buffer = bytearray()
self.position = 0
def read(self, size=-1):
data = b''
if size == -1:
# read all remaining data in stream
data = self.stream.read()
else:
not_read = (self.position + size) - len(self.buffer)
if not_read > 0:
# read up to size bytes from stream
data = self.stream.read(not_read)
else:
data = self.buffer[self.position:self.position+size+1]
old_position = self.position
new_position = self.position + len(data)
self.buffer.extend(data)
self.position = new_position
return self.buffer[old_position:new_position+1]
def seek(self, offset, whence=0):
if whence == 0:
# seek from beginning of buffer
self.position = offset
elif whence == 1:
# seek from current position
self.position += offset
elif whence == 2:
# seek from end of buffer
self.position = len(self.buffer) + offset
else:
raise ValueError("Invalid whence value")
# adjust position to be within buffer bounds
self.position = max(0, min(self.position, len(self.buffer)))
def tell(self):
return self.position
def readable(self):
return True
def seekable(self):
return True
def __enter__(self):
return self
def __exit__(self, exc_type, exc_value, traceback):
self.stream.__exit__(exc_type, exc_value, traceback)
def decompress_if_zstd(stream):
"""
Given a byte stream, returns either the original stream or the decompressed stream