def _extract_info(archive, info):
if isinstance(archive, zipfile.ZipFile):<EOL><INDENT>fn = info.filename<EOL>is_dir = fn.endswith('<STR_LIT:/>') or fn.endswith('<STR_LIT:\\>')<EOL>out = archive.read(info)<EOL>if is_dir and out == b'<STR_LIT>':<EOL><INDENT>return None<EOL><DEDENT>return out<EOL><DEDENT>info_file = archive.extractfile(info)<EOL>if info_file:<EOL><INDENT>return info_file.read()<EOL><DEDENT>return None<EOL>
Extracts the contents of an archive info object

;param archive:
    An archive from _open_archive()

:param info:
    An info object from _list_archive_members()

:return:
    None, or a byte string of the file contents