docs: def create_summary(self):
          """Return a summary.
  
          See also the notes on ignore_self in the class as well as the
          initializer documentation.
  
          """
          if not self.ignore_self:
              res = summary.summarize(muppy.get_objects())
          else:
              # If the user requested the data required to store summaries to be
              # ignored in the summaries, we need to identify all objects which
              # are related to each summary stored.
              # Thus we build a list of all objects used for summary storage as
              # well as a dictionary which tells us how often an object is
              # referenced by the summaries.
              # During this identification process, more objects are referenced,
              # namely int objects identifying referenced objects as well as the
              # correspondind count.
              # For all these objects it will be checked wether they are
              # referenced from outside the monitor's scope. If not, they will be
              # subtracted from the snapshot summary, otherwise they are
              # included (as this indicates that they are relevant to the
              # application).
  
              all_of_them = []  # every single object
              ref_counter = {}  # how often it is referenced; (id(o), o) pairs
              def store_info(o):
                  all_of_them.append(o)
                  if id(o) in ref_counter:
                      ref_counter[id(o)] += 1
                  else:
                      ref_counter[id(o)] = 1
  
              # store infos on every single object related to the summaries
              store_info(self.summaries)
              for k, v in self.summaries.items():
                  store_info(k)
                  summary._traverse(v, store_info)
  
              # do the summary
              res = summary.summarize(muppy.get_objects())
  
              # remove ids stored in the ref_counter
              for _id in ref_counter:
                  # referenced in frame, ref_counter, ref_counter.keys()
                  if len(gc.get_referrers(_id)) == (3):
                      summary._subtract(res, _id)
              for o in all_of_them:
                  # referenced in frame, summary, all_of_them
                  if len(gc.get_referrers(o)) == (ref_counter[id(o)] + 2):
                      summary._subtract(res, o)
  
          return res