code: def get_true_argspec(method):
      
  
      argspec = inspect.getargspec(method)
      args = argspec[0]
      if args and args[0] == 'self':
          return argspec
      if hasattr(method, '__func__'):
          method = method.__func__
      if not hasattr(method, '__closure__') or method.__closure__ is None:
          raise DecoratorCompatibilityError
  
      closure = method.__closure__
      for cell in closure:
          inner_method = cell.cell_contents
          if inner_method is method:
              continue
          if not inspect.isfunction(inner_method) \
                  and not inspect.ismethod(inner_method):
              continue
          true_argspec = get_true_argspec(inner_method)
          if true_argspec:
              return true_argspec
docs: Drills through layers of decorators attempting to locate the actual argspec for the method.