code: def report_summary(self, concise=True):
      _seen_messages = collections.defaultdict(int)
      for msg, e in self._reports:
          if msg not in _seen_messages or not concise:
              self._write(msg)
              self._write(
                  "".join(
                      traceback.format_exception(
                          None, e, e.__traceback__
                      )
                  )
              )
          _seen_messages[msg] += 1
  
      if concise:
          for msg, value in _seen_messages.items():
              self._write(
                  "{msg} -> Total {value} occurrences.".format(
                      msg=msg, value=value
                  )
              )
          self._write("")
  
file_path: gpustat/gpustat/util.py
imports: import collections
  import os.path
  import sys
  import traceback
  from typing import Callable, Tuple, Type, TypeVar, Union
label_desc: Use image node_id 4 for calling the DebugHelper obj's underlying member method code with example usage: obj.report_summary(concise) without return types