def create_table_data(results, headers): table = [] for name in sorted(results): for dist in sorted(results[name]): for comp in sorted(results[name][dist]): for arch in sorted(results[name][dist][comp]): pkgs = results[name][dist][comp][arch] pkgs.sort( key=lambda x: Dpkg.compare_versions_key(x['version'])) for pkg in pkgs: table.append([pkg[x] for x in headers]) return table
def getDebRepositoryLatestVersion(self, repository, packageName): repository = repository.split() URL = '{}/dists/{}'.format(repository[1], repository[2]) packages = list() for i in range(3, len(repository)): packagesURL = '{}/{}/binary-amd64/Packages.gz'.format(URL, repository[i]) data = zlib.decompress(requests.get(packagesURL).content, 16+zlib.MAX_WBITS).decode('UTF-8') for package in filter(None, data.split('\n\n')): packageDetails = self.convertDebPackagesSectionToYaml(package) if packageDetails['Package'] == packageName: packages.append(packageDetails) version = sorted(packages, key = lambda x:Dpkg.compare_versions_key(x['Version']), reverse=True) version = version[0]['Version'] self.log.info('Package: {}, latest version: {}'.format(packageName, version)) return version