[python] limit the number of displayed reports to 10

Summary:
Outputting too many reports brings little value and spams the console. Don't
print more than 10 issues to stdout.

Reviewed By: jeremydubreil

Differential Revision: D4189814

fbshipit-source-id: 8985559
master
Jules Villard 8 years ago committed by Facebook Github Bot
parent ba62932760
commit e3d8482bd4

@ -93,7 +93,7 @@ def text_of_report(report):
) )
def _text_of_report_list(project_root, reports, def _text_of_report_list(project_root, reports, bugs_txt_path, limit=-1,
formatter=colorize.TERMINAL_FORMATTER): formatter=colorize.TERMINAL_FORMATTER):
text_errors_list = [] text_errors_list = []
error_types_count = {} error_types_count = {}
@ -150,7 +150,13 @@ def _text_of_report_list(project_root, reports,
count, count,
), sorted_error_types) ), sorted_error_types)
text_errors = '\n\n'.join(text_errors_list) text_errors = '\n\n'.join(text_errors_list[:limit])
if limit >= 0 and n_issues > limit:
text_errors += colorize.color(
('\n\n...too many issues to display (limit=%d exceeded), please ' +
'see %s or run `inferTraceBugs` for the remaining issues.')
% (limit, bugs_txt_path), colorize.HEADER, formatter)
issues_found = 'Found {n_issues}'.format( issues_found = 'Found {n_issues}'.format(
n_issues=utils.get_plural('issue', n_issues), n_issues=utils.get_plural('issue', n_issues),
@ -164,6 +170,7 @@ def _text_of_report_list(project_root, reports,
colorize.HEADER, formatter), colorize.HEADER, formatter),
summary='\n'.join(types_text_list), summary='\n'.join(types_text_list),
) )
return msg return msg
@ -177,8 +184,10 @@ def _is_user_visible(project_root, report):
def print_and_save_errors(project_root, json_report, bugs_out, xml_out): def print_and_save_errors(project_root, json_report, bugs_out, xml_out):
errors = utils.load_json_from_path(json_report) errors = utils.load_json_from_path(json_report)
errors = [e for e in errors if _is_user_visible(project_root, e)] errors = [e for e in errors if _is_user_visible(project_root, e)]
utils.stdout('\n' + _text_of_report_list(project_root, errors)) console_out = _text_of_report_list(project_root, errors, bugs_out,
plain_out = _text_of_report_list(project_root, errors, limit=10)
utils.stdout('\n' + console_out)
plain_out = _text_of_report_list(project_root, errors, bugs_out, limit=-1,
formatter=colorize.PLAIN_FORMATTER) formatter=colorize.PLAIN_FORMATTER)
with codecs.open(bugs_out, 'w', with codecs.open(bugs_out, 'w',
encoding=config.CODESET, errors='replace') as file_out: encoding=config.CODESET, errors='replace') as file_out:

Loading…
Cancel
Save