def _is_dir_def(archive, filename, capture=_def_formats()): if not filename: return False if filename not in Archive._namelist_def( archive) and filename + '/' not in Archive._namelist_def( archive): raise exceptions.FileInArchiveNotFoundError( filename, archive.hpx_path) if isinstance(archive, ZipFile): if filename.endswith('/'): return True elif isinstance(archive, RarFile): info = archive.getinfo(filename) return info.isdir() return False
def is_dir(self, name): """ Checks if the provided name in the archive is a directory or not """ if not name: return False if not name in self.namelist(): log_e('File {} not found in archive'.format(name)) raise exceptions.FileInArchiveNotFoundError(name, self.filepath) if self.archive_type == self.ZIP: if name.endswith('/'): return True elif self.archive_type == self.RAR: info = self.archive.getinfo(name) return info.isdir() return False
def _open_def(archive, filename, args, kwargs, capture=_def_formats()): if filename not in Archive._namelist_def(archive): raise exceptions.FileInArchiveNotFoundError( filename, archive.hpx_path) return archive.open(filename, *args, **kwargs)