code: def _PrintWarningCounters(self, storage_counters):
      
      warnings_by_pathspec = storage_counters.get('warnings_by_path_spec', {})
      warnings_by_parser_chain = storage_counters.get(
          'warnings_by_parser_chain', {})
      if not warnings_by_parser_chain:
        self._output_writer.Write('No warnings stored.\n\n')
        return
  
      table_view = views.ViewsFactory.GetTableView(
          self._views_format_type, title='Warnings generated per parser',
          column_names=['Parser (plugin) name', 'Number of warnings'])
      for parser_chain, count in warnings_by_parser_chain.items():
        parser_chain = parser_chain or '<No parser>'
        table_view.AddRow([parser_chain, '{0:d}'.format(count)])
      table_view.Write(self._output_writer)
  
      table_view = views.ViewsFactory.GetTableView(
          self._views_format_type, title='Pathspecs with most warnings',
          column_names=['Number of warnings', 'Pathspec'])
  
      top_pathspecs = warnings_by_pathspec.most_common(10)
      for pathspec, count in top_pathspecs:
        for path_index, line in enumerate(pathspec.split('\n')):
          if not line:
            continue
  
          if path_index == 0:
            table_view.AddRow(['{0:d}'.format(count), line])
          else:
            table_view.AddRow(['', line])
  
      table_view.Write(self._output_writer)
docs: Prints a summary of the warnings.
  
      Args:
        storage_counters (dict): storage counters.