@@ -641,50 +641,46 @@ def handle_list_runs(args):
641
641
runs = get_run_data (client , run_filter , sort_mode )
642
642
643
643
if hasattr (args , 'enabled_checkers' ) and args .enabled_checkers :
644
- results = get_run_results (client ,
645
- [run .runId for run in runs ],
646
- constants .MAX_QUERY_SIZE ,
647
- 0 ,
648
- None ,
649
- ttypes .ReportFilter (),
650
- None ,
651
- None )
652
- enabled_checkers = {}
653
- for result in results :
654
- if result .analyzerName not in enabled_checkers :
655
- enabled_checkers [result .analyzerName ] = set ()
656
- enabled_checkers [result .analyzerName ].add (result .checkerId )
644
+ enabled_checkers : Dict [str , List [str ]] = {}
645
+ for run in runs :
646
+ info_list : List [ttypes .AnalysisInfo ] = client .getAnalysisInfo (
647
+ ttypes .AnalysisInfoFilter (runId = run .runId ),
648
+ constants .MAX_QUERY_SIZE ,
649
+ 0 )
650
+ for info in info_list :
651
+ analyzers = info .checkers .keys ()
652
+ for analyzer in analyzers :
653
+ if analyzer not in enabled_checkers :
654
+ enabled_checkers [analyzer ] = []
655
+
656
+ checkers = info .checkers .get (analyzer , {})
657
+ for checker in checkers :
658
+ if checkers [checker ].enabled :
659
+ enabled_checkers [analyzer ].append (checker )
657
660
658
661
if args .output_format == 'plaintext' :
659
- print ("Enabled checkers:" )
660
662
for analyzer , checkers in enabled_checkers .items ():
661
663
print (analyzer + ":" )
662
664
for checker in checkers :
663
665
print (" " + checker )
664
-
665
666
elif args .output_format == 'csv' :
666
- separator = ', '
667
+ separator = '; '
667
668
print ("Analyzer" + separator + "Checker" )
668
669
for analyzer , checkers in enabled_checkers .items ():
669
670
for checker in checkers :
670
671
print (analyzer + separator + checker )
671
-
672
672
elif args .output_format == 'json' :
673
- converted = {}
674
- for analyzer , checkers in enabled_checkers .items ():
675
- converted [analyzer ] = list (checkers )
676
- print (json .dumps (converted , indent = 2 ))
677
-
673
+ print (json .dumps (enabled_checkers , indent = 4 ))
678
674
elif args .output_format == 'table' :
679
675
header = ['Analyzer' , 'Checker' ]
680
676
rows = [
681
677
(analyzer , checker )
682
678
for analyzer , checkers in enabled_checkers .items ()
683
679
for checker in checkers ]
684
680
print (twodim .to_str (args .output_format , header , rows ))
685
-
686
681
else :
687
682
LOG .error ("Unsupported output format: %s" , args .output_format )
683
+ return
688
684
689
685
if args .output_format == 'json' :
690
686
# This json is different from the json format printed by the
@@ -729,6 +725,7 @@ def handle_list_runs(args):
729
725
codechecker_version ))
730
726
731
727
print (twodim .to_str (args .output_format , header , rows ))
728
+ return
732
729
733
730
734
731
def handle_list_results (args ):
0 commit comments