code: def _get_func_args(func):
      
      if isinstance(func, functools.partial):
          return _get_func_args(func.func)
      if inspect.isfunction(func) or inspect.ismethod(func):
          return list(inspect.getargspec(func).args)
      if callable(func):
          return list(inspect.getargspec(func.__call__).args)
docs: Get a list of the arguments a function or method has.