code: def fetch_report(self, exp_name=None, query=None, indices=None):
      template = """
  -------------------------------------------------
  Experiment: {exp_name}
  -------------------------------------------------
  ID: {exp_id}
  Date: {start_date}    Duration: {duration}
  
  Parameters:
  {parameters}
  
  Result:
  {result}
  
  Dependencies:
  {dependencies}
  
  Resources:
  {resources}
  
  Source Files:
  {sources}
  
  Outputs:
  {artifacts}
  """
  
      entries = self.fetch_metadata(exp_name, query, indices)
  
      all_matched_entries = []
      for ent in entries:
          date = ent["start_time"]
          weekdays = "Mon Tue Wed Thu Fri Sat Sun".split()
          w = weekdays[date.weekday()]
          date = " ".join([w, date.strftime("%d %b %Y")])
  
          duration = ent["stop_time"] - ent["start_time"]
          secs = duration.total_seconds()
          hours, remainder = divmod(secs, 3600)
          minutes, seconds = divmod(remainder, 60)
          duration = "%02d:%02d:%04.1f" % (hours, minutes, seconds)
  
          parameters = self._dict_to_indented_list(ent["config"])
  
          result = self._indent(ent["result"].__repr__(), prefix="    ")
  
          deps = ent["experiment"]["dependencies"]
          deps = self._indent("\n".join(deps), prefix="    ")
  
          resources = [x[0] for x in ent["resources"]]
          resources = self._indent("\n".join(resources), prefix="    ")
  
          sources = [x[0] for x in ent["experiment"]["sources"]]
          sources = self._indent("\n".join(sources), prefix="    ")
  
          artifacts = [x[0] for x in ent["artifacts"]]
          artifacts = self._indent("\n".join(artifacts), prefix="    ")
  
          none_str = "    None"
  
          rec = dict(
              exp_name=ent["experiment"]["name"],
              exp_id=ent["_id"],
              start_date=date,
              duration=duration,
              parameters=parameters if parameters else none_str,
              result=result if result else none_str,
              dependencies=deps if deps else none_str,
              resources=resources if resources else none_str,
              sources=sources if sources else none_str,
              artifacts=artifacts if artifacts else none_str,
          )
  
          report = template.format(**rec)
  
          all_matched_entries.append(report)
  
      return all_matched_entries
  
imports: from __future__ import division, print_function, unicode_literals, absolute_import
  import os
  import textwrap
  import uuid
  from collections import OrderedDict
  import warnings
  from sacred.__about__ import __version__
  from sacred.commandline_options import cli_option
  from sacred.observers import RunObserver
label_desc: Use image node_id 4 for calling the TinyDbReader obj's underlying member method code with example usage: obj.fetch_report(exp_name, query, indices) and returns: all_matched_entries