class documentation

class OffsetRememberingCluster(Cluster):

Known subclasses: pyzim.cluster.InMemoryCluster

Constructor: OffsetRememberingCluster(zim, offset)

View In Hierarchy

A variation of Cluster that reads offsets only once, storing them in memory.

Method __init__ The default constructor.
Method iter_blob_offsets Read the blob offsets, yielding them as an iterator.
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_offsets_if_needed Read the offsets if they have not yet been read.
Instance Variable _offsets the offsets in this cluster

Inherited from Cluster:

Method generate_infobyte Generate the infobyte for this cluster.
Method get_blob_size Get the size of a blob.
Method get_content_size Return the content size of this cluster.
Method get_number_of_blobs Return the number of blobs in this cluster.
Method get_number_of_offsets Return the number of offsets in this cluster.
Method get_offset Return the offset with the specified index.
Method get_total_compressed_size Return the total compressed size of the cluster.
Method get_total_decompressed_size Return the total decompressed size of this cluster.
Method get_total_offset_size Return the total size of the offsets.
Method iter_read_blob Iteratively read the specified blob.
Method parse_infobyte Parse the cluster information byte, setting the attributes of this cluster as necessary.
Method read_blob Read the entirety of the specified range in the specified blob and return the content.
Method read_infobyte Read the cluster information byte, returning it.
Method read_infobyte_if_needed Read and parse the infobyte if this has not yet happened.
Instance Variable compression compression to use, None when unknown
Instance Variable is_extended whether this cluster is extended, None if not set
Instance Variable offset absolute offset of the cluster
Property did_read_infobyte True if the infobyte was already read and parsed.
Method _get_compressor Return a compressor suitable to compress this cluster.
Method _get_decompressing_reader Return a decompressing reader that can be sued to decompress the content.
Method _get_decompressor Return a decompressor suitable to decompress this cluster.
Method _seek_if_needed Seek to the specified position (relative to the cluster start) in the file only if it is needed.
Instance Variable _decompressing_reader Undocumented
Property _pointer_format The pointer format.

Inherited from BindableMixIn (via 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
def __init__(self, zim=None, offset=None):

The default constructor.

Parameters
zim:pyzim.archive.Zimif specified, bind this ZIM immediately.
offset:int or Noneabsolute offset of the cluster
Raises
ValueErrorif offset was specified but zim was not specified.
def iter_blob_offsets(self, blob_numbers=None):

Read the blob offsets, yielding them as an iterator.

The order of blob_numbers does not matter, all offsets are always yielded in regular order (offfset 1, offset 2, ...).

Parameters
blob_numbers:None or list of intif specified, load only these offsets
Yields
intthe offset of each blob in the decompressed body, relative to cluster start
Raises
pyzim.exceptions.BindRequiredif cluster is unbound
def reset(self):

Reset all internal state except the cluster offset, causing said offset to be read again the next time it is required.

def _read_offsets_if_needed(self):

Read the offsets if they have not yet been read.

Raises
pyzim.exceptions.BindRequiredif cluster is unbound
_offsets: list of int =

the offsets in this cluster