From f31ad893508b7347eb22a7d91169014aa71ef18a Mon Sep 17 00:00:00 2001 From: UTAGAWA Kiki Date: Tue, 22 Nov 2016 00:10:10 +0900 Subject: [PATCH] Implement --print to output list of requirements to stdout --- pipreqs/pipreqs.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/pipreqs/pipreqs.py b/pipreqs/pipreqs.py index d030414..2a1b6a9 100755 --- a/pipreqs/pipreqs.py +++ b/pipreqs/pipreqs.py @@ -16,6 +16,7 @@ Options: --ignore ... Ignore extra directories, each separated by a comma --encoding Use encoding parameter for file open --savepath Save the list of requirements in the given file + --print Output the list of requirements in the standard output --force Overwrite existing requirements.txt """ from __future__ import print_function, absolute_import @@ -117,6 +118,14 @@ def generate_requirements_file(path, imports): out_file.write('\n'.join(fmt.format(**item) if item['version'] else '{name}'.format(**item) for item in imports) + '\n') +def output_requirements(imports): + logging.debug('Writing {num} requirements: {imports} to stdout'.format( + num=len(imports), + imports=", ".join([x['name'] for x in imports]) + )) + fmt = '{name}=={version}' + print('\n'.join(fmt.format(**item) if item['version'] else '{name}'.format(**item) + for item in imports)) def get_imports_info(imports, pypi_server="https://pypi.python.org/pypi/", proxy=None): result = [] @@ -241,12 +250,16 @@ def init(args): path = (args["--savepath"] if args["--savepath"] else os.path.join(args[''], "requirements.txt")) - if not args["--savepath"] and not args["--force"] and os.path.exists(path): + if not args["--print"] and not args["--savepath"] and not args["--force"] and os.path.exists(path): logging.warning("Requirements.txt already exists, " "use --force to overwrite it") return - generate_requirements_file(path, imports) - logging.info("Successfully saved requirements file in " + path) + if args["--print"]: + output_requirements(imports) + logging.info("Successfully output requirements") + else: + generate_requirements_file(path, imports) + logging.info("Successfully saved requirements file in " + path) def main(): # pragma: no cover