From f97d8b9ba4b5b1b0814f7e270d4ce6b705602b99 Mon Sep 17 00:00:00 2001 From: clvnkhr Date: Thu, 5 Jan 2023 15:06:39 +0800 Subject: [PATCH] resolve issue #285 simply moved the check in init for requirements.txt ahead of searching for packages. Closes #285. Passes tox (3.7, 3.8, 3.9, pypy3, flake8) --- pipreqs/pipreqs.py | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/pipreqs/pipreqs.py b/pipreqs/pipreqs.py index 24eeeb7..0ceb402 100644 --- a/pipreqs/pipreqs.py +++ b/pipreqs/pipreqs.py @@ -412,6 +412,16 @@ def init(args): if extra_ignore_dirs: extra_ignore_dirs = extra_ignore_dirs.split(',') + path = (args["--savepath"] if args["--savepath"] else + os.path.join(input_path, "requirements.txt")) + 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 + candidates = get_all_imports(input_path, encoding=encoding, extra_ignore_dirs=extra_ignore_dirs, @@ -442,9 +452,6 @@ def init(args): # sort imports based on lowercase name of package, similar to `pip freeze`. imports = sorted(imports, key=lambda x: x['name'].lower()) - path = (args["--savepath"] if args["--savepath"] else - os.path.join(input_path, "requirements.txt")) - if args["--diff"]: diff(args["--diff"], imports) return @@ -453,14 +460,6 @@ def init(args): clean(args["--clean"], imports) return - 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 - if args["--mode"]: scheme = args.get("--mode") if scheme in ["compat", "gt", "no-pin"]: