Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Apr 26, 2023. It is now read-only.

License

NotificationsYou must be signed in to change notification settings

sphinx-contrib/napoleon

Repository files navigation

Note

As of Sphinx 1.3, the napoleon extension will come packaged withSphinx under sphinx.ext.napoleon. The sphinxcontrib.napoleon extensionwill continue to work with Sphinx <= 1.2.

Are you tired of writing docstrings that look like this:

:param path: The path of the file to wrap:type path: str:param field_storage: The :class:`FileStorage` instance to wrap:type field_storage: FileStorage:param temporary: Whether or not to delete the file when the File   instance is destructed:type temporary: bool:returns: A buffered writable file descriptor:rtype: BufferedFileStorage

ReStructuredText is great, but it creates visually dense, hard to readdocstrings. Compare the jumble above to the same thing rewrittenaccording to theGoogle Python Style Guide:

Args:    path (str): The path of the file to wrap    field_storage (FileStorage): The :class:`FileStorage` instance to wrap    temporary (bool): Whether or not to delete the file when the File       instance is destructedReturns:    BufferedFileStorage: A buffered writable file descriptor

Much more legible, no?

Napoleon is aSphinx extension that enables Sphinx to parse bothNumPyandGoogle style docstrings - the style recommended byKhan Academy.

Napoleon is a pre-processor that parsesNumPy andGoogle styledocstrings and converts them to reStructuredText before Sphinx attempts toparse them. This happens in an intermediate step while Sphinx is processingthe documentation, so it doesn't modify any of the docstrings in your actualsource code files.

Getting Started

  1. Install the napoleon extension:

    $ pip install sphinxcontrib-napoleon
  2. Aftersetting up Sphinx to build your docs, enable napoleon in theSphinx conf.py file:

    # conf.py# Add napoleon to the extensions listextensions = ['sphinxcontrib.napoleon']
  1. Use sphinx-apidoc to build your API documentation:

    $ sphinx-apidoc -f -o docs/source projectdir

Docstrings

Napoleon interprets every docstring thatSphinx autodoc can find,including docstrings on:modules,classes,attributes,methods,functions, andvariables. Inside each docstring,specially formattedSections are parsed and converted toreStructuredText.

All standard reStructuredText formatting still works as expected.

Docstring Sections

All of the following section headers are supported:

  • Args(alias of Parameters)
  • Arguments(alias of Parameters)
  • Attributes
  • Example
  • Examples
  • Keyword Args(alias of Keyword Arguments)
  • Keyword Arguments
  • Methods
  • Note
  • Notes
  • Other Parameters
  • Parameters
  • Return(alias of Returns)
  • Returns
  • Raises
  • References
  • See Also
  • Warning
  • Warnings(alias of Warning)
  • Warns
  • Yield(alias of Yields)
  • Yields

Google vs NumPy

Napoleon supports two styles of docstrings:Google andNumPy. Themain difference between the two styles is that Google uses indention toseparate sections, whereas NumPy uses underlines.

Google style:

def func(arg1, arg2):    """Summary line.    Extended description of function.    Args:        arg1 (int): Description of arg1        arg2 (str): Description of arg2    Returns:        bool: Description of return value    """    return True

NumPy style:

def func(arg1, arg2):    """Summary line.    Extended description of function.    Parameters    ----------    arg1 : int        Description of arg1    arg2 : str        Description of arg2    Returns    -------    bool        Description of return value    """    return True

NumPy style tends to require more vertical space, whereas Google styletends to use more horizontal space. Google style tends to be easier toread for short and simple docstrings, whereas NumPy style tends be easierto read for long and in-depth docstrings.

TheKhan Academy recommends using Google style.

The choice between styles is largely aesthetic, but the two styles shouldnot be mixed. Choose one style for your project and be consistent with it.

For full documentation seehttps://sphinxcontrib-napoleon.readthedocs.io

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors6

Languages


[8]ページ先頭

©2009-2025 Movatter.jp