def analyse_packages(self): """ Generate information about all the installed packages. """ section = 'PACKAGES' self.payload['PACKAGES'] = dict() for cpv in Packages.get_installed_CPVs(): metadata = Metadata(cpv) package_info = dict() self.set_data(package_info, section, 'REPO', metadata.get_repo_name) self.set_data(package_info, section, 'SIZE', metadata.get_size) self.set_data(package_info, section, 'KEYWORD', metadata.get_keyword) self.set_data(package_info, section, 'BUILD_TIME', metadata.get_build_time) if self.any_one_is_enabled(section, USE_FLAG_TYPES): # TODO: make this lazier use_flags = metadata.get_use_flag_information() for key in USE_FLAG_TYPES: self.set_data(package_info, section, key, lambda: use_flags[key]) self.payload['PACKAGES'][cpv] = package_info