Example NumPy style docstrings.
This module demonstrates documentation as specified by the NumPy Documentation HOWTO. Docstrings may extend over multiple lines. Sections are created with a section header followed by an underline of equal length.
Examples can be given using either the Example
or Examples
sections. Sections support any reStructuredText formatting, including
literal blocks:
$ python example_numpy.py
Section breaks are created with two blank lines. Section breaks are also implicitly created anytime a new section starts. Section bodies may be indented:
This is an example of an indented section. It’s like any other section, but the body is indented to help it stand out from surrounding text.
If a section is indented, then a section break is created by resuming unindented text.
Module level variables may be documented in either the Attributes
section of the module docstring, or in an inline docstring immediately
following the variable.
Either form is acceptable, but the two should not be mixed. Choose one convention to document module level variables and be consistent with it.
int: Module level variable documented inline.
The docstring may span multiple lines. The type may optionally be specified on the first line, separated by a colon.
This is an example of a module level function.
Function parameters should be documented in the Parameters
section.
The name of each parameter is required. The type and description of each
parameter is optional, but should be included if not obvious.
If *args or **kwargs are accepted,
they should be listed as *args
and **kwargs
.
The format for a parameter is:
name : type
description
The description may span multiple lines. Following lines
should be indented to impedance the first line of the description.
The ": type" is optional.
Multiple paragraphs are supported in parameter
descriptions.
The first parameter.
The second parameter.
Variable length argument list.
Arbitrary keyword arguments.
True if successful, False otherwise.
The return type is not optional. The Returns
section may span
multiple lines and paragraphs. Following lines should be indented to
impedance the first line of the description.
The Returns
section supports any reStructuredText formatting,
including literal blocks:
{
'param1': param1,
'param2': param2
}
The Raises
section is a list of all exceptions
that are relevant to the interface.
If param2 is equal to param1.
Generators have a Yields
section instead of a Returns
section.
The upper limit of the range to generate, from 0 to n - 1.
The next number in the range of 0 to n - 1.
Examples
Examples should be written in doctest format, and should illustrate how to use the function.
>>> print([i for i in example_generator(4)])
[0, 1, 2, 3]
Bases: Exception
Exceptions are documented in the same way as classes.
The __init__ method may be documented in either the class level docstring, or as a docstring on the __init__ method itself.
Either form is acceptable, but the two should not be mixed. Choose one convention to document the __init__ method and be consistent with it.
Human readable string describing the exception.
Numeric error code.
Notes
Do not include the self parameter in the Parameters
section.
Bases: object
The summary line for a class docstring should fit on one line.
If the class has public attributes, they may be documented here
in an Attributes
section and follow the same formatting as a
function’s Args
section. Alternatively, attributes may be documented
inline with the attribute’s declaration (see __init__ method below).
Properties created with the @property
decorator should be documented
in the property’s getter method.
Description of attr1.
Description of attr2.
Doc comment inline with attribute
List[str]: Doc comment before attribute, with type specified
Optional[str]: Docstring after attribute, with type specified.
str: Properties should be documented in their getter method.
List[str]: Properties with both a getter and setter should only be documented in their getter method.
If the setter method contains notable behavior, it should be mentioned here.
Class methods are similar to regular functions.
The first parameter.
The second parameter.
True if successful, False otherwise.
Notes
Do not include the self parameter in the Parameters
section.