def extract_gz(self, archive_path, archivedir_write_path, file_name=None, open_archive_file=None, archive=None): """Extract gz files. Extracts a given file name or all the files in the gz. """ if file_name: open_archive_file = gzip.open(archive_path, 'r') file_obj = open_archive_file open_object = False self.write_fileobject(archivedir_write_path, file_name, file_obj=open_archive_file, open_object=False) if 'archive' in locals() and archive: archive.close() return [file_name] files_before = set(walk_relative_path(archivedir_write_path)) archive_util.unpack_archive(archive_path, archivedir_write_path) files_after = set(walk_relative_path(archivedir_write_path)) unpacked_files = files_after - files_before return list(unpacked_files)