Repository URL to install this package:
|
Version:
2.0.2 ▾
|
import argparse
from operator import itemgetter
import pkg_resources
import platform
import sys
def out(*args): # pragma: no cover
for arg in args:
sys.stdout.write(arg)
sys.stdout.write(' ')
sys.stdout.write('\n')
def get_parser():
parser = argparse.ArgumentParser(
description="Show Python distribution versions and locations in use"
)
return parser
def main(
argv=sys.argv,
pkg_resources=pkg_resources,
platform=platform.platform,
out=out,
):
# all args except argv are for unit testing purposes only
parser = get_parser()
parser.parse_args(argv[1:])
packages = []
for distribution in pkg_resources.working_set:
name = distribution.project_name
packages.append(
{
'version': distribution.version,
'lowername': name.lower(),
'name': name,
'location': distribution.location,
}
)
packages = sorted(packages, key=itemgetter('lowername'))
pyramid_version = pkg_resources.get_distribution('pyramid').version
plat = platform()
out('Pyramid version:', pyramid_version)
out('Platform:', plat)
out('Packages:')
for package in packages:
out(' ', package['name'], package['version'])
out(' ', package['location'])
if __name__ == '__main__': # pragma: no cover
sys.exit(main() or 0)