@@ -241,15 +241,15 @@ def process_kinds(args, *, argv=None):
241
241
for raw in args .kinds or ():
242
242
for kind in raw .replace (',' , ' ' ).strip ().split ():
243
243
if kind in _capi .KINDS :
244
- kind .append (kind )
244
+ kinds .append (kind )
245
245
else :
246
246
parser .error (f'expected KIND to be one of { sorted (_capi .KINDS )} , got { kind !r} ' )
247
247
args .kinds = set (kinds )
248
248
249
249
parser .add_argument ('--group-by' , dest = 'groupby' ,
250
250
choices = ['level' , 'kind' ])
251
251
252
- parser .add_argument ('--format' , default = 'brief ' )
252
+ parser .add_argument ('--format' , default = 'table ' )
253
253
parser .add_argument ('--summary' , dest = 'format' ,
254
254
action = 'store_const' , const = 'summary' )
255
255
def process_format (args , * , argv = None ):
@@ -259,12 +259,27 @@ def process_format(args, *, argv=None):
259
259
if args .format not in _capi ._FORMATS :
260
260
parser .error (f'unsupported format { orig !r} ' )
261
261
262
+ parser .add_argument ('--show-empty' , dest = 'showempty' , action = 'store_true' )
263
+ parser .add_argument ('--no-show-empty' , dest = 'showempty' , action = 'store_false' )
264
+ parser .set_defaults (showempty = None )
265
+
266
+ # XXX Add --sort-by, --sort and --no-sort.
267
+
268
+ parser .add_argument ('--ignore' , dest = 'ignored' , action = 'append' )
269
+ def process_ignored (args , * , argv = None ):
270
+ ignored = []
271
+ for raw in args .ignored or ():
272
+ ignored .extend (raw .replace (',' , ' ' ).strip ().split ())
273
+ args .ignored = ignored or None
274
+
262
275
parser .add_argument ('filenames' , nargs = '*' , metavar = 'FILENAME' )
263
276
process_progress = add_progress_cli (parser )
264
277
265
278
return [
266
279
process_levels ,
280
+ process_kinds ,
267
281
process_format ,
282
+ process_ignored ,
268
283
process_progress ,
269
284
]
270
285
@@ -273,7 +288,9 @@ def cmd_capi(filenames=None, *,
273
288
levels = None ,
274
289
kinds = None ,
275
290
groupby = 'kind' ,
276
- format = 'brief' ,
291
+ format = 'table' ,
292
+ showempty = None ,
293
+ ignored = None ,
277
294
track_progress = None ,
278
295
verbosity = VERBOSITY ,
279
296
** kwargs
@@ -282,15 +299,24 @@ def cmd_capi(filenames=None, *,
282
299
283
300
filenames = _files .iter_header_files (filenames , levels = levels )
284
301
#filenames = (file for file, _ in main_for_filenames(filenames))
285
- if track_progress is not None :
302
+ if track_progress :
286
303
filenames = track_progress (filenames )
287
304
items = _capi .iter_capi (filenames )
288
305
if levels :
289
306
items = (item for item in items if item .level in levels )
290
307
if kinds :
291
308
items = (item for item in items if item .kind in kinds )
292
309
293
- lines = render (items , groupby = groupby , verbose = verbosity > VERBOSITY )
310
+ filter = _capi .resolve_filter (ignored )
311
+ if filter :
312
+ items = (item for item in items if filter (item , log = lambda msg : logger .log (1 , msg )))
313
+
314
+ lines = render (
315
+ items ,
316
+ groupby = groupby ,
317
+ showempty = showempty ,
318
+ verbose = verbosity > VERBOSITY ,
319
+ )
294
320
print ()
295
321
for line in lines :
296
322
print (line )
0 commit comments