code: def extract_stack(start=0):
      
      try:
          raise ZeroDivisionError
      except ZeroDivisionError:
          trace = sys.exc_info()[2]
          f = trace.tb_frame.f_back
  
      for i in range(start):
          f = f.f_back
  
      stack = []
      while f is not None:
          stack.append({
              "line": f.f_lineno,
              "file": f.f_code.co_filename,
              "method": f.f_code.co_name
          })
          f = f.f_back
      return stack
docs: SNAGGED FROM traceback.py
      Altered to return Data
  
      Extract the raw traceback from the current stack frame.
  
      Each item in the returned list is a quadruple (filename,
      line number, function name, text), and the entries are in order
      from newest to oldest