@@ -241,15 +241,15 @@ def process_kinds(args, *, argv=None):
241241 for raw in args .kinds or ():
242242 for kind in raw .replace (',' , ' ' ).strip ().split ():
243243 if kind in _capi .KINDS :
244- kind .append (kind )
244+ kinds .append (kind )
245245 else :
246246 parser .error (f'expected KIND to be one of { sorted (_capi .KINDS )} , got { kind !r} ' )
247247 args .kinds = set (kinds )
248248
249249 parser .add_argument ('--group-by' , dest = 'groupby' ,
250250 choices = ['level' , 'kind' ])
251251
252- parser .add_argument ('--format' , default = 'brief ' )
252+ parser .add_argument ('--format' , default = 'table ' )
253253 parser .add_argument ('--summary' , dest = 'format' ,
254254 action = 'store_const' , const = 'summary' )
255255 def process_format (args , * , argv = None ):
@@ -259,12 +259,27 @@ def process_format(args, *, argv=None):
259259 if args .format not in _capi ._FORMATS :
260260 parser .error (f'unsupported format { orig !r} ' )
261261
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+
262275 parser .add_argument ('filenames' , nargs = '*' , metavar = 'FILENAME' )
263276 process_progress = add_progress_cli (parser )
264277
265278 return [
266279 process_levels ,
280+ process_kinds ,
267281 process_format ,
282+ process_ignored ,
268283 process_progress ,
269284 ]
270285
@@ -273,7 +288,9 @@ def cmd_capi(filenames=None, *,
273288 levels = None ,
274289 kinds = None ,
275290 groupby = 'kind' ,
276- format = 'brief' ,
291+ format = 'table' ,
292+ showempty = None ,
293+ ignored = None ,
277294 track_progress = None ,
278295 verbosity = VERBOSITY ,
279296 ** kwargs
@@ -282,15 +299,24 @@ def cmd_capi(filenames=None, *,
282299
283300 filenames = _files .iter_header_files (filenames , levels = levels )
284301 #filenames = (file for file, _ in main_for_filenames(filenames))
285- if track_progress is not None :
302+ if track_progress :
286303 filenames = track_progress (filenames )
287304 items = _capi .iter_capi (filenames )
288305 if levels :
289306 items = (item for item in items if item .level in levels )
290307 if kinds :
291308 items = (item for item in items if item .kind in kinds )
292309
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+ )
294320 print ()
295321 for line in lines :
296322 print (line )
0 commit comments