parameters: (py_object, relative_path_to_root, reference_resolver)
return_statement: return _DocstringInfo(
        docstring.split('\n')[0], docstring, function_details, compatibility)
docstring: Parse the object's docstring and return a `_DocstringInfo`.
  
    This function clears @@'s from the docstring, and replaces @{} references
    with markdown links.
  
    For links within the same set of docs, the `relative_path_to_root` for a
    docstring on the page for `full_name` can be set to:
  
    ```python
    relative_path_to_root = os.path.relpath(
      path='.', start=os.path.dirname(documentation_path(full_name)) or '.')
    ```
  
    Args:
      py_object: A python object to retrieve the docs for (class, function/method,
        or module).
      relative_path_to_root: The relative path from the location of the current
        document to the root of the Python API documentation. This is used to
        compute links for "@{symbol}" references.
      reference_resolver: An instance of ReferenceResolver.
  
    Returns:
      A _DocstringInfo object, all fields will be empty if no docstring was found.
docstring_summary: Parse the object's docstring and return a `_DocstringInfo`.
docstring_tokens: Parse the object s docstring and return a _DocstringInfo .
function: def _parse_md_docstring(py_object, relative_path_to_root, reference_resolver):
    """Parse the object's docstring and return a `_DocstringInfo`.
  
    This function clears @@'s from the docstring, and replaces @{} references
    with markdown links.
  
    For links within the same set of docs, the `relative_path_to_root` for a
    docstring on the page for `full_name` can be set to:
  
    ```python
    relative_path_to_root = os.path.relpath(
      path='.', start=os.path.dirname(documentation_path(full_name)) or '.')
    ```
  
    Args:
      py_object: A python object to retrieve the docs for (class, function/method,
        or module).
      relative_path_to_root: The relative path from the location of the current
        document to the root of the Python API documentation. This is used to
        compute links for "@{symbol}" references.
      reference_resolver: An instance of ReferenceResolver.
  
    Returns:
      A _DocstringInfo object, all fields will be empty if no docstring was found.
    """
    # TODO(wicke): If this is a partial, use the .func docstring and add a note.
    raw_docstring = _get_raw_docstring(py_object)
  
    raw_docstring = reference_resolver.replace_references(
        raw_docstring, relative_path_to_root)
  
    atat_re = re.compile(r' *@@[a-zA-Z_.0-9]+ *$')
    raw_docstring = '\n'.join(
        line for line in raw_docstring.split('\n') if not atat_re.match(line))
  
    docstring, compatibility = _handle_compatibility(raw_docstring)
    docstring, function_details = _parse_function_details(docstring)
  
    return _DocstringInfo(
        docstring.split('\n')[0], docstring, function_details, compatibility)
function_tokens: def _parse_md_docstring ( py_object , relative_path_to_root , reference_resolver ) : # TODO(wicke): If this is a partial, use the .func docstring and add a note. raw_docstring = _get_raw_docstring ( py_object ) raw_docstring = reference_resolver . replace_references ( raw_docstring , relative_path_to_root ) atat_re = re . compile ( r' *@@[a-zA-Z_.0-9]+ *$' ) raw_docstring = '\n' . join ( line for line in raw_docstring . split ( '\n' ) if not atat_re . match ( line ) ) docstring , compatibility = _handle_compatibility ( raw_docstring ) docstring , function_details = _parse_function_details ( docstring ) return _DocstringInfo ( docstring . split ( '\n' ) [ 0 ] , docstring , function_details , compatibility )