- 2.19.0 (latest)
- 2.17.0
- 2.16.0
- 2.15.0
- 2.14.0
- 2.13.0
- 2.12.0
- 2.11.0
- 2.10.0
- 2.9.0
- 2.8.0
- 2.7.0
- 2.6.0
- 2.5.0
- 2.4.0
- 2.3.0
- 2.2.1
- 2.1.0
- 2.0.0
- 1.44.0
- 1.43.0
- 1.42.3
- 1.41.1
- 1.40.0
- 1.39.0
- 1.38.0
- 1.37.1
- 1.36.2
- 1.35.1
- 1.34.0
- 1.33.0
- 1.32.0
- 1.31.2
- 1.30.0
- 1.29.0
- 1.28.1
- 1.27.0
- 1.26.0
- 1.25.0
- 1.24.1
- 1.23.0
- 1.22.0
- 1.21.0
- 1.20.0
- 1.19.0
- 1.18.0
- 1.17.0
SlidingBuffer()
A non-rewindable buffer that frees memory of chunks already consumed.
This class is necessary because google-resumable-media-python
expects
tell()
to work relative to the start of the file, not relative to a place
in an intermediate buffer. Using this class, we present an external
interface with consistent seek and tell behavior without having to actually
store bytes already sent.
Behavior of this class differs from an ordinary BytesIO buffer. write()
will always append to the end of the file only and not change the seek
position otherwise. flush()
will delete all data already read (data to the
left of the seek position). tell()
will report the seek position of the
buffer including all deleted data. Additionally the class implements
len() which will report the size of the actual underlying buffer.
This class does not attempt to implement the entire Python I/O interface.
Methods
__len__
__len__()
Determine the size of the buffer by seeking to the end.
flush
flush()
Delete already-read data (all data to the left of the position).
read
read(size=-1)
Read and move the cursor.
seek
seek(pos)
Seek to a position (backwards only) within the internal buffer.
This implementation of seek() verifies that the seek destination is contained in _buffer. It will raise ValueError if the destination byte has already been purged from the buffer.
The "whence" argument is not supported in this implementation.
tell
tell()
Report how many bytes have been read from the buffer in total.
write
write(b)
Append to the end of the buffer without changing the position.