diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 715f008e3789d92b49f4498e85d1c9e838cf9730..3e75f80852fc77dd7243e19d5776632fc73c3f41 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -58,8 +58,9 @@ Install test: - pip install --upgrade pip setuptools - pip install dist/pipdeps*tar.gz - pip list - - pipdeps -l || true - - pipdeps -u + - pipdeps --list || true + - pipdeps --table || true + - pipdeps --upgrade versioncheck: stage: check diff --git a/README.md b/README.md index 8a0b1adc7bb90997489608bc7fef7a1c6ec12a29..4f2dfea0ff6164f2ea06f001a34405dc4d2bcbab 100644 --- a/README.md +++ b/README.md @@ -14,16 +14,17 @@ situations. Currently, package extras are not finished. ## Usage ```console -$ pipdeps.py --help -usage: pipdeps.py [-h] (-l | -u | -s SHOW [SHOW ...]) +$ pipdeps --help +usage: pipdeps [-h] (-l | -t | -u | -s [SHOW [SHOW ...]]) Pipdeps shows/upgrades outdated packages with respect to existing dependencies. optional arguments: -h, --help show this help message and exit - -l, --list show upgradeable packages and versions + -l, --list show list of upgradeable packages and versions + -t, --table show table of upgradeable packages and versions -u, --upgrade upgrade upgradeable packages - -s SHOW [SHOW ...], --show SHOW [SHOW ...] + -s [SHOW [SHOW ...]], --show [SHOW [SHOW ...]] show detailed info about upgradeable packages ``` diff --git a/pipdeps/pipdeps.py b/pipdeps/pipdeps.py index e3bcf0ad794c831bc32d10599084b9d8d3e9dd08..606796a68381356f81683558414005b9c4a57f44 100644 --- a/pipdeps/pipdeps.py +++ b/pipdeps/pipdeps.py @@ -42,7 +42,10 @@ def arg_parse(): group = parser.add_mutually_exclusive_group(required=True) group.add_argument('-l', '--list', action='store_true', - help="show upgradeable packages and versions") + help="show list of upgradeable packages and versions") + group.add_argument('-t', '--table', + action='store_true', + help="show table of upgradeable packages and versions") group.add_argument('-u', '--upgrade', action='store_true', help="upgrade upgradeable packages") @@ -223,9 +226,9 @@ def select_upkgs(data, rkey): result.append(pkg) return result -def print_list(data): +def print_table(data): """ - Print upgradeable versions + Print table upgradeable versions """ upkgs = select_upkgs(data, 'upgradeable_version') if not upkgs: @@ -234,10 +237,22 @@ def print_list(data): tab_data = [] for pkg in sorted(upkgs): tab_data.append([pkg, data[pkg]['installed_version'], data[pkg]['upgradeable_version']]) - print tabulate.tabulate( - tab_data, - ['package', 'installed_version', 'upgradeable_version'] - ) + print tabulate.tabulate(tab_data, + ['package', 'installed_version', 'upgradeable_version']) + return 1 + +def print_list(data): + """ + Print list upgradeable versions + """ + upkgs = select_upkgs(data, 'upgradeable_version') + if not upkgs: + print "There is nothing to upgrade." + return 0 + list_data = [] + for pkg in sorted(upkgs): + list_data.append("%s==%s" % (pkg, data[pkg]['upgradeable_version'])) + print " ".join(list_data,) return 1 def write_metadata(tmp_file): @@ -1106,6 +1121,8 @@ def main(): check_co_branches(packages_data) check_extras(packages_data) + if arguments.table: + sys.exit(print_table(packages_data)) if arguments.list: sys.exit(print_list(packages_data)) if arguments.show is not None: