Skip to content

Commit 9b12194

Browse files
authored
Add support for requirements.txt file parsing
1 parent 4def598 commit 9b12194

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

pyupgradecheck/cli.py

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
from halo import Halo
66

7-
from .checker import check_environment, get_installed_packages
7+
from .checker import check_environment, get_installed_packages, parse_requirements_file
88

99

1010
def main():
@@ -14,12 +14,29 @@ def main():
1414
)
1515
p.add_argument("target", help="Target Python version (e.g. 3.13)")
1616
p.add_argument("--packages", "-p", nargs="+", help="Specific packages to check")
17+
p.add_argument(
18+
"--requirements", "-r", help="Path to requirements.txt file to check"
19+
)
1720
p.add_argument("--json", action="store_true", help="Emit json output")
1821
args = p.parse_args()
1922

23+
# Handle mutually exclusive options
24+
if args.packages and args.requirements:
25+
p.error("Cannot specify both --packages and --requirements")
26+
27+
# Parse requirements file if provided
28+
packages_to_check = None
29+
if args.requirements:
30+
try:
31+
packages_to_check = parse_requirements_file(args.requirements)
32+
except FileNotFoundError as e:
33+
p.error(str(e))
34+
elif args.packages:
35+
packages_to_check = args.packages
36+
2037
# Get package count for time estimation
21-
if args.packages:
22-
num_packages = len(args.packages)
38+
if packages_to_check:
39+
num_packages = len(packages_to_check)
2340
else:
2441
pkgs = get_installed_packages()
2542
num_packages = len(pkgs)
@@ -43,7 +60,7 @@ def main():
4360
spinner.start()
4461

4562
start_time = time.time()
46-
report = check_environment(args.target, args.packages)
63+
report = check_environment(args.target, packages_to_check)
4764
elapsed_time = time.time() - start_time
4865

4966
if spinner:

0 commit comments

Comments
 (0)