Skip to content
This repository was archived by the owner on Jan 30, 2023. It is now read-only.

Commit d87027c

Browse files
author
Matthias Koeppe
committed
sage --package list: Add option --exclude
1 parent 3605076 commit d87027c

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

build/sage_bootstrap/cmdline.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,9 @@ def make_parser():
207207
'--has-file', action='append', default=[], metavar='FILENAME', dest='has_files',
208208
help=('only include packages that have this file in their metadata directory'
209209
'(examples: SPKG.rst, spkg-configure.m4, distros/debian.txt)'))
210+
parser_list.add_argument(
211+
'--exclude', action='append', default=[], metavar='PACKAGE_NAME',
212+
help='exclude package from list')
210213
parser_name = subparsers.add_parser(
211214
'name', epilog=epilog_name,
212215
formatter_class=argparse.RawDescriptionHelpFormatter,
@@ -321,7 +324,7 @@ def run():
321324
if args.subcommand == 'config':
322325
app.config()
323326
elif args.subcommand == 'list':
324-
app.list_cls(*args.package_class, has_files=args.has_files)
327+
app.list_cls(*args.package_class, has_files=args.has_files, exclude=args.exclude)
325328
elif args.subcommand == 'name':
326329
app.name(args.tarball_filename)
327330
elif args.subcommand == 'tarball':

build/sage_bootstrap/expand_class.py

+3
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,13 @@ class PackageClass(object):
2424
def __init__(self, *package_names_or_classes, **filters):
2525
self.names = []
2626
filenames = filters.pop('has_files', [])
27+
excluded = filters.pop('exclude', [])
2728
if filters:
2829
raise ValueError('filter not supported')
2930

3031
def included_in_filter(pkg):
32+
if pkg.name in excluded:
33+
return False
3134
return all(pkg.has_file(filename) for filename in filenames)
3235
for package_name_or_class in package_names_or_classes:
3336
if package_name_or_class == ':all:':

0 commit comments

Comments
 (0)