diff options
Diffstat (limited to 'dlpcvp.py')
-rwxr-xr-x | dlpcvp.py | 26 |
1 files changed, 21 insertions, 5 deletions
@@ -65,6 +65,7 @@ def suse_packages(proj: str) -> Iterable[str]: with open('exceptions.json') as exc_f: exc_dict = json.load(exc_f) + exc_list = [] # type: List[str] if proj in exc_dict: exc_list = exc_dict[proj] @@ -74,6 +75,10 @@ def suse_packages(proj: str) -> Iterable[str]: root = raw_xml_data.getroot() for elem in root.iter('entry'): pkg_name = elem.get('name') + # We don't want -doc subpackages + if pkg_name.endswith('-doc'): + continue + # Nor we want packages which we specifically excluded if pkg_name in exc_list: continue yield pkg_name @@ -226,6 +231,8 @@ def package_version(proj: str, pkg_name: str, def main(prj): db_name = osp.splitext(osp.basename(osp.realpath(__file__)))[0] + ".db" + to_be_upgraded = [] # type: List[Tuple[str, LooseVersion, LooseVersion]] + missing_on_PyPI = [] # type: List[str] with sqlite3.connect(db_name) as conn: if not conn.execute(TB_EXISTS).fetchone(): conn.execute(TB_CREATE) @@ -248,23 +255,32 @@ def main(prj): try: if pypi_ver > suse_ver: - print( - f'We need to upgrade {pkg} ({suse_ver} -> {pypi_ver})') + to_be_upgraded.append((pkg, suse_ver, pypi_ver)) except TypeError: log.warning(f'{pkg} pypi_ver = {pypi_ver}') log.warning(f'{pkg} suse_ver = {suse_ver}') continue else: - print(f'Is {pkg} on PyPI?') + missing_on_PyPI.append(pkg) + + sys.stdout.flush() + if missing_on_PyPI: + print("\nThese packages don't seem to be available on PyPI:") + print("{}\n".format('\n'.join(missing_on_PyPI))) + + if to_be_upgraded: + print('These packages need to be upgraded:') + for pkg_upgr in to_be_upgraded: + print(f'{pkg_upgr[0]} ({pkg_upgr[1]} -> {pkg_upgr[2]})') if __name__ == '__main__': parser = argparse.ArgumentParser(description='Check available versions ' 'of the upstream packages on PyPI') - parser.add_argument('--opensuse-project', + parser.add_argument('project', nargs='?', default='devel:languages:python:numeric', help='The OpenBuildService project. Defaults ' 'to %(default)s') args = parser.parse_args() - sys.exit(main(args.opensuse_project)) + sys.exit(main(args.project)) |