docs: def _get_arg_info(self):
          '''
          get all the info of a method call
  
          this will find what arg names you passed into the method and tie them to their passed in values,
          it will also find file and line number
  
          return -- dict -- a bunch of info on the call
          '''
          ret_dict = {
              'args': [],
              #'frame': None,
              'line': 'Unknown',
              'file': 'Unknown',
              'arg_names': []
          }
          arg_vals = self.arg_vals
          #modname = self.modname
  
          c = self.call
          ret_dict.update(c.info)
  
          if len(arg_vals) > 0:
              args = []
  
              if len(ret_dict['arg_names']) > 0:
                  # match the found arg names to their respective values
                  for i, arg_name in enumerate(ret_dict['arg_names']):
                      args.append({'name': arg_name, 'val': arg_vals[i]})
  
              else:
                  # we can't autodiscover the names, in an interactive shell session?
                  for i, arg_val in enumerate(arg_vals):
                      args.append({'name': 'Unknown {}'.format(i), 'val': arg_val})
  
              ret_dict['args'] = args
  
          return ret_dict