def seek(self, offset, whence=getattr(os, 'SEEK_SET', 0)):
        """Allows to reset the stream to restart reading
		:raise ValueError: If offset and whence are not 0"""
        if offset != 0 or whence != getattr(os, 'SEEK_SET', 0):
            raise ValueError("Can only seek to position 0")
        # END handle offset

        self._zip = zlib.decompressobj()
        self._br = self._cws = self._cwe = self._cbr = 0
        if self._phi:
            self._phi = False
            del (self._s)  # trigger header parsing on first access
    def seek(self, offset, whence=getattr(os, "SEEK_SET", 0)):
        """Allows to reset the stream to restart reading
		:raise ValueError: If offset and whence are not 0"""
        if offset != 0 or whence != getattr(os, "SEEK_SET", 0):
            raise ValueError("Can only seek to position 0")
            # END handle offset

        self._zip = zlib.decompressobj()
        self._br = self._cws = self._cwe = self._cbr = 0
        if self._phi:
            self._phi = False
            del (self._s)  # trigger header parsing on first access
    def __init__(self, m, close_on_deletion, size=None):
        """Initialize with mmap for stream reading
		:param m: must be content data - use new if you have object data and no size"""
        self._m = m
        self._zip = zlib.decompressobj()
        self._buf = None  # buffer of decompressed bytes
        self._buflen = 0  # length of bytes in buffer
        if size is not None:
            self._s = size  # size of uncompressed data to read in total
        self._br = 0  # num uncompressed bytes read
        self._cws = 0  # start byte of compression window
        self._cwe = 0  # end byte of compression window
        self._cbr = 0  # number of compressed bytes read
        self._phi = False  # is True if we parsed the header info
        self._close = close_on_deletion  # close the memmap on deletion ?
    def __init__(self, m, close_on_deletion, size=None):
        """Initialize with mmap for stream reading
		:param m: must be content data - use new if you have object data and no size"""
        self._m = m
        self._zip = zlib.decompressobj()
        self._buf = None  # buffer of decompressed bytes
        self._buflen = 0  # length of bytes in buffer
        if size is not None:
            self._s = size  # size of uncompressed data to read in total
        self._br = 0  # num uncompressed bytes read
        self._cws = 0  # start byte of compression window
        self._cwe = 0  # end byte of compression window
        self._cbr = 0  # number of compressed bytes read
        self._phi = False  # is True if we parsed the header info
        self._close = close_on_deletion  # close the memmap on deletion ?