#!/usr/bin/env python2 import requests def get_retired_pkgs(): url = 'https://admin.fedoraproject.org/pkgdb/api/packages'\ '?status=Retired&eol=True&branches=master&branches=f22&branches=f21&branches=f20' req = requests.get(url) data = req.json() packages = data['packages'] page = int(data['page']) total = data['page_total'] print '%s pages to retrieve' % (total) while page <= total: nurl = '%s&page=%s' % (url, page + 1) data = requests.get(nurl).json() packages.extend(data['packages']) page += 1 print '%s packages retrieved' % (len(packages)) pkgs_name = [pkg['name'] for pkg in packages] return pkgs_name if __name__ == '__main__': retired = set() pkgs = get_retired_pkgs() for cnt, pkg in enumerate(pkgs): if (cnt % 300) == 0: print '%s/%s' % (cnt, len(pkgs)) url = 'https://admin.fedoraproject.org/pkgdb/api/package/' req = requests.get(url + pkg) data = req.json() statuses = set([pkgd['status'] for pkgd in data['packages']]) if statuses == set(['Retired']): retired.add(pkg) print '%s packages fully retired' % len(retired) print for pkg in sorted(retired): print pkg