docs: def get_caller_info(depth=2, trace=False):
      """
      Uses the inspect module to determine the name of the calling function and
      its module.
  
      Returns a 2-tuple with the module name and the function name.
  
      From Biolite package
      """
      try:
          frame = inspect.stack()[depth]
      except:
          die("could not access the caller's frame at stack index %d" % depth)
      if trace:
          print_stack(frame[0].f_back)
      func = frame[3]
      module = inspect.getmodule(frame[0])
      if module:
          return (module.__name__, func)
      else:
          return ('<unknown>', func)