def extract_entry(self, e, decompress='<STR_LIT>'):
self.fileobj.seek(e.offset)<EOL>stream = file_iter(self.fileobj)<EOL>stream = takeexactly(stream, e.size)<EOL>if decompress == '<STR_LIT>':<EOL><INDENT>stream = auto_decompress_stream(stream)<EOL><DEDENT>elif decompress == '<STR_LIT>':<EOL><INDENT>stream = bz2_decompress_stream(stream)<EOL><DEDENT>elif decompress == '<STR_LIT>':<EOL><INDENT>stream = xz_decompress_stream(stream)<EOL><DEDENT>elif decompress is None:<EOL><INDENT>pass<EOL><DEDENT>else:<EOL><INDENT>raise ValueError("<STR_LIT>".format(decompress))<EOL><DEDENT>for block in stream:<EOL><INDENT>yield block<EOL><DEDENT>
Yield blocks of data for this entry from this MAR file.

        Args:
            e (:obj:`mardor.format.index_entry`): An index_entry object that
                refers to this file's size and offset inside the MAR file.
            path (str): Where on disk to extract this file to.
            decompress (str, optional): Controls whether files are decompressed
                when extracted. Must be one of None, 'auto', 'bz2', or 'xz'.
                Defaults to 'auto'

        Yields:
            Blocks of data for `e`