Add basic support for de-duping and removing editable requirements

This commit is contained in:
Swen Kooij
2020-03-19 15:38:29 +02:00
parent e18f52cdc6
commit fda57b4836
+30 -3
View File
@@ -1,6 +1,7 @@
import argparse
import sys
from .entry import RequirementsEditableEntry
from .list_packages_from_files import list_packages_from_files
@@ -18,6 +19,18 @@ def main() -> int:
help="recurse into -e entries",
action="store_true",
)
parser.add_argument(
"--dedupe",
default=False,
help="de-duplicate the resulting list",
action="store_true",
)
parser.add_argument(
"--remove-editable",
default=False,
help="remove editable requirements from the final list",
action="store_true",
)
parser.add_argument(
"file_paths",
nargs="+",
@@ -26,12 +39,26 @@ def main() -> int:
args = parser.parse_args()
for requirement in list_packages_from_files(
reqs = list_packages_from_files(
args.file_paths,
recurse_recursive=args.recurse_recursive,
recurse_editable=args.recurse_editable,
):
print(requirement)
)
if args.remove_editable:
reqs = [
requirement
for requirement in reqs
if not isinstance(requirement, RequirementsEditableEntry)
]
if args.dedupe:
deduped_reqs = list(set([str(requirement) for requirement in reqs]))
for requirement in deduped_reqs:
print(requirement)
else:
for requirement in reqs:
print(requirement)
return 0