parameters: (fn)
return_statement: return tf_inspect.getfullargspec(fn).varkw is not None
docstring: Returns whether the passed callable has **kwargs in its signature.
  
    Args:
      fn: Function, or function-like object (e.g., result of `functools.partial`).
  
    Returns:
      `bool`: if `fn` has **kwargs in its signature.
  
    Raises:
       `TypeError`: If fn is not a Function, or function-like object.
docstring_summary: Returns whether the passed callable has **kwargs in its signature.
docstring_tokens: Returns whether the passed callable has ** kwargs in its signature .
function: def has_kwargs(fn):
    """Returns whether the passed callable has **kwargs in its signature.
  
    Args:
      fn: Function, or function-like object (e.g., result of `functools.partial`).
  
    Returns:
      `bool`: if `fn` has **kwargs in its signature.
  
    Raises:
       `TypeError`: If fn is not a Function, or function-like object.
    """
    if isinstance(fn, functools.partial):
      fn = fn.func
    elif _is_callable_object(fn):
      fn = fn.__call__
    elif not callable(fn):
      raise TypeError(
          'fn should be a function-like object, but is of type {}.'.format(
              type(fn)))
    return tf_inspect.getfullargspec(fn).varkw is not None
function_tokens: def has_kwargs ( fn ) : if isinstance ( fn , functools . partial ) : fn = fn . func elif _is_callable_object ( fn ) : fn = fn . __call__ elif not callable ( fn ) : raise TypeError ( 'fn should be a function-like object, but is of type {}.' . format ( type ( fn ) ) ) return tf_inspect . getfullargspec ( fn ) . varkw is not None