def _report_failed_challs(failed_achalls):
 problems = dict()
 for achall in failed_achalls:
  if achall.error:
   problems.setdefault(achall.error.typ, []).append(achall)
 reporter = zope.component.getUtility(interfaces.IReporter)
 for achalls in six.itervalues(problems):
  reporter.add_message(_generate_failed_chall_msg(achalls), reporter.MEDIUM_PRIORITY)

def _report_failed_challs ( failed_achalls ) : problems = dict ( ) for achall in failed_achalls : if achall . error : problems . setdefault ( achall . error . typ , [ ] ) . append ( achall ) reporter = zope . component . getUtility ( interfaces . IReporter ) for achalls in six . itervalues ( problems ) : reporter . add_message ( _generate_failed_chall_msg ( achalls ) , reporter . MEDIUM_PRIORITY )
notifies the user about failed challenges .