diff --git a/README.md b/README.md
index f8a56c524a3a10e6f7d14a87e5742b92ebb6eadc..c3914badc5e24445ee8c2edec41850a9d18d6560 100644
--- a/README.md
+++ b/README.md
@@ -7,14 +7,16 @@ Python 2.7 is required.
## Usage
```console
-usage: pipdeps [-h] (-l | -u)
+$ pipdeps.py --help
+usage: pipdeps.py [-h] (-l | -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 upgradable packages and versions
- -u, --upgrade upgrade upgradable packages
-
+ -h, --help show this help message and exit
+ -l, --list show upgradeable packages and versions
+ -u, --upgrade upgrade upgradeable packages
+ -s SHOW [SHOW ...], --show SHOW [SHOW ...]
+ show detailed info about upgradeable packages
```
diff --git a/pipdeps/pipdeps.py b/pipdeps/pipdeps.py
index e21948140ddcdc0895a5bf79b66d9febf89f26be..a794e0542a2bd607f47bb470272a0ff0504b2d75 100644
--- a/pipdeps/pipdeps.py
+++ b/pipdeps/pipdeps.py
@@ -5,10 +5,11 @@ import argparse
import json
import distutils.version
import os
-import urllib2
+import pprint
import re
import subprocess
import sys
+import urllib2
import tarfile
import tempfile
import zipfile
@@ -32,6 +33,9 @@ def arg_parse():
group.add_argument('-u', '--upgrade',
action='store_true',
help="upgrade upgradeable packages")
+ group.add_argument('-s', '--show',
+ nargs='+',
+ help="show detailed info about upgradeable packages")
return parser.parse_args()
def get_pyver():
@@ -312,6 +316,23 @@ def select_pkgs(packages_data, rkey):
result[pkg] = pkg_data
return result
+def print_list(upgradeable_pkgs):
+ """
+ Provides list option
+ """
+ if upgradeable_pkgs:
+ data = []
+ for pkg, pkg_data in sorted(upgradeable_pkgs.iteritems(), key=lambda x: x[0].lower()):
+ data.append([pkg, pkg_data['installed_version'], pkg_data['upgradeable_version']])
+ print tabulate.tabulate(
+ data,
+ ['package', 'installed_version', 'upgradeable_version']
+ )
+ sys.exit(1)
+ else:
+ print "There is nothing to upgrade."
+ sys.exit(0)
+
def main():
"""
main function
@@ -339,18 +360,11 @@ def main():
upgradeable_pkgs = select_pkgs(packages_data, 'upgradeable_version')
if arguments.list:
- if upgradeable_pkgs:
- data = []
- for pkg, pkg_data in sorted(upgradeable_pkgs.iteritems(), key=lambda x: x[0].lower()):
- data.append([pkg, pkg_data['installed_version'], pkg_data['upgradeable_version']])
- print tabulate.tabulate(
- data,
- ['package', 'installed_version', 'upgradeable_version']
- )
- sys.exit(1)
- else:
- print "There is nothing to upgrade."
- sys.exit(0)
+ print_list(upgradeable_pkgs)
+ if arguments.show:
+ for pkg in arguments.show:
+ pprint.pprint({pkg: packages_data[pkg]})
+ sys.exit(0)
if arguments.upgrade:
if 'pip' in upgradeable_pkgs.keys():
upgrade_package('pip', upgradeable_pkgs['pip']['upgradeable_version'])