utils: remove BackwardsReadablestream
This commit is contained in:
parent
38b23de9ad
commit
d2e0fad436
1 changed files with 0 additions and 57 deletions
57
utils.py
57
utils.py
|
@ -152,63 +152,6 @@ def is_zstd(data):
|
||||||
return True
|
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):
|
def decompress_if_zstd(stream):
|
||||||
"""
|
"""
|
||||||
Given a byte stream, returns either the original stream or the decompressed stream
|
Given a byte stream, returns either the original stream or the decompressed stream
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue