b2sdk._internal.stream.chained
ChainedStream
- class b2sdk._internal.stream.chained.ChainedStream(stream_openers)[source]
Bases:
ReadOnlyStreamMixin
,IOBase
Chains multiple streams in single stream, sort of what
itertools.chain
does for iterators.Cleans up buffers of underlying streams when closed.
Can be seeked to beginning (when retrying upload, for example). Closes underlying streams as soon as they reaches EOF, but clears their buffers when the chained stream is closed for underlying streams that follow
b2sdk.v2.StreamOpener
cleanup interface, for exampleb2sdk.v2.CachedBytesStreamOpener
- __init__(stream_openers)[source]
- Parameters:
stream_openeres (list) – list of callables that return opened streams
- property stream
Return currently processed stream.
- seekable()[source]
Return whether object supports random access.
If False, seek(), tell() and truncate() will raise OSError. This method may need to do a test seek().
- readable()[source]
Return whether object was opened for reading.
If False, read() will raise OSError.
- read(size=None)[source]
Read at most size bytes from underlying streams, or all available data, if size is None or negative. Open the streams only when their data is needed, and possibly leave them open and part-way read for further reading - by subsequent calls to this method.
- Parameters:
size (int,None) – number of bytes to read. If omitted,
None
, or negative data is read and returned until EOF from final stream is reached- Returns:
data read from the stream