class InMemoryCluster(OffsetRememberingCluster):
Constructor: InMemoryCluster(zim, offset)
A variation of Cluster that decompresses only once, storing all data in RAM.
| Method | __init__ |
The default constructor. |
| Method | iter |
Iteratively read the specified blob. |
| Method | read |
Read the entirety of the specified range in the specified blob and return the content. |
| Method | reset |
Reset all internal state except the cluster offset, causing said offset to be read again the next time it is required. |
| Method | _read |
Read (and decompress) all data if this has not yet been done. |
| Instance Variable | _data |
Undocumented |
Inherited from OffsetRememberingCluster:
| Method | iter |
Read the blob offsets, yielding them as an iterator. |
| Method | _read |
Read the offsets if they have not yet been read. |
| Instance Variable | _offsets |
the offsets in this cluster |
Inherited from Cluster (via OffsetRememberingCluster):
| Method | generate |
Generate the infobyte for this cluster. |
| Method | get |
Get the size of a blob. |
| Method | get |
Return the content size of this cluster. |
| Method | get |
Return the number of blobs in this cluster. |
| Method | get |
Return the number of offsets in this cluster. |
| Method | get |
Return the offset with the specified index. |
| Method | get |
Return the total compressed size of the cluster. |
| Method | get |
Return the total decompressed size of this cluster. |
| Method | get |
Return the total size of the offsets. |
| Method | parse |
Parse the cluster information byte, setting the attributes of this cluster as necessary. |
| Method | read |
Read the cluster information byte, returning it. |
| Method | read |
Read and parse the infobyte if this has not yet happened. |
| Instance Variable | compression |
compression to use, None when unknown |
| Instance Variable | is |
whether this cluster is extended, None if not set |
| Instance Variable | offset |
absolute offset of the cluster |
| Property | did |
True if the infobyte was already read and parsed. |
| Method | _get |
Return a compressor suitable to compress this cluster. |
| Method | _get |
Return a decompressing reader that can be sued to decompress the content. |
| Method | _get |
Return a decompressor suitable to decompress this cluster. |
| Method | _seek |
Seek to the specified position (relative to the cluster start) in the file only if it is needed. |
| Instance Variable | _decompressing |
Undocumented |
| Property | _pointer |
The pointer format. |
Inherited from BindableMixIn (via OffsetRememberingCluster, Cluster):
| Method | bind |
Bind this object to a ZIM file. |
| Method | unbind |
Unbind this object. Can be called multiple times. |
| Property | bound |
Whether this object is bound to a ZIM file or not. |
| Property | zim |
The bound ZIM archive, if any is bound. Otherwise None. |
| Instance Variable | _zim |
the bound ZIM archive or None |
The default constructor.
| Parameters | |
zim:pyzim.archive.Zim | if specified, bind this ZIM immediately. |
offset:int or None | absolute offset of the cluster |
| Raises | |
ValueError | if offset was specified but zim was not specified. |
pyzim.cluster.Cluster.iter_read_blobIteratively read the specified blob.
The parameters 'start' and 'end' can be used to specify a range within the blob to read. In this case, both values are interpreted relative to the actual blob start. Similar to how python slices work, the 'start' value will be inclusive and the 'end' value exclusive. If start >= size of the blob, the return value will be b"". If the end lies outside the blob, read only up until the end of the blob.
| Parameters | |
i:int | index of blob to read |
buffersize:int | number of bytes to read at once |
start:None or int | if specified, the offset relative to the start of the blob to start reading from |
end:None or int | if specified, the offset relative to the start of the blob to stop reading at |
| Yields | |
bytes | chunks of the blob content |
| Raises | |
pyzim.exceptions.BindRequired | if cluster is unbound |
pyzim.exceptions.BlobNotFound | if the blob index is out of range |
pyzim.cluster.Cluster.read_blobRead the entirety of the specified range in the specified blob and return the content.
The parameters 'start' and 'end' can be used to specify a range within the blob to read. In this case, both values are interpreted relative to the actual blob start. Similar to how python slices work, the 'start' value will be inclusive and the 'end' value exclusive. If start >= size of the blob, the return value will be b"". If the end lies outside the blob, read only up until the end of the blob.
| Parameters | |
i:int | index of blob to read |
start:None or int | if specified, the offset relative to the start of the blob to start reading from |
end:None or int | if specified, the offset relative to the start of the blob to stop reading at |
| Returns | |
bytes | the content of the blob |
| Raises | |
pyzim.exceptions.BindRequired | if cluster is unbound |
pyzim.exceptions.BlobNotFound | if the blob index is out of range |
Reset all internal state except the cluster offset, causing said offset to be read again the next time it is required.
Read (and decompress) all data if this has not yet been done.
| Raises | |
pyzim.exceptions.BindRequired | if cluster is unbound |