mirror of
https://github.com/wassname/pip-package-list.git
synced 2026-06-27 16:10:20 +08:00
Add basic support for de-duping and removing editable requirements
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user