parameters: (func)
return_statement: return new_func
docstring: Decorator for marking functions or methods experimental.
  
    This decorator logs an experimental warning whenever the decorated function is
    called. It has the following format:
  
      <function> (from <module>) is experimental and may change or be removed at
      any time, and without warning.
  
    <function> will include the class name if it is a method.
  
    It also edits the docstring of the function: ' (experimental)' is appended
    to the first line of the docstring and a notice is prepended to the rest of
    the docstring.
  
    Args:
      func: A function or method to mark experimental.
  
    Returns:
      Decorated function or method.
docstring_summary: Decorator for marking functions or methods experimental.
docstring_tokens: Decorator for marking functions or methods experimental .
function: def experimental(func):
    """Decorator for marking functions or methods experimental.
  
    This decorator logs an experimental warning whenever the decorated function is
    called. It has the following format:
  
      <function> (from <module>) is experimental and may change or be removed at
      any time, and without warning.
  
    <function> will include the class name if it is a method.
  
    It also edits the docstring of the function: ' (experimental)' is appended
    to the first line of the docstring and a notice is prepended to the rest of
    the docstring.
  
    Args:
      func: A function or method to mark experimental.
  
    Returns:
      Decorated function or method.
    """
    decorator_utils.validate_callable(func, 'experimental')
    @functools.wraps(func)
    def new_func(*args, **kwargs):
      logging.warning(
          '%s (from %s) is experimental and may change or be removed at '
          'any time, and without warning.',
          decorator_utils.get_qualified_name(func), func.__module__)
      return func(*args, **kwargs)
    new_func.__doc__ = _add_experimental_function_notice_to_docstring(
        func.__doc__)
    return new_func
function_tokens: def experimental ( func ) : decorator_utils . validate_callable ( func , 'experimental' ) @ functools . wraps ( func ) def new_func ( * args , * * kwargs ) : logging . warning ( '%s (from %s) is experimental and may change or be removed at ' 'any time, and without warning.' , decorator_utils . get_qualified_name ( func ) , func . __module__ ) return func ( * args , * * kwargs ) new_func . __doc__ = _add_experimental_function_notice_to_docstring ( func . __doc__ ) return new_func