mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Merge pull request #8291 from QuentinSoubeyran/8285_napoleon_google_style_use_annotations
Fix #8285: napoleon can use PEP526 annotations
This commit is contained in:
@@ -294,3 +294,21 @@ class ExampleClass:
|
||||
|
||||
def _private_without_docstring(self):
|
||||
pass
|
||||
|
||||
class ExamplePEP526Class:
|
||||
"""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. If ``napoleon_attr_annotations``
|
||||
is True, types can be specified in the class body using ``PEP 526``
|
||||
annotations.
|
||||
|
||||
Attributes:
|
||||
attr1: Description of `attr1`.
|
||||
attr2: Description of `attr2`.
|
||||
|
||||
"""
|
||||
|
||||
attr1: str
|
||||
attr2: int
|
||||
@@ -203,7 +203,8 @@ Type Annotations
|
||||
This is an alternative to expressing types directly in docstrings.
|
||||
One benefit of expressing types according to `PEP 484`_ is that
|
||||
type checkers and IDEs can take advantage of them for static code
|
||||
analysis.
|
||||
analysis. `PEP 484`_ was then extended by `PEP 526`_ which introduced
|
||||
a similar way to annotate variables (and attributes).
|
||||
|
||||
Google style with Python 3 type annotations::
|
||||
|
||||
@@ -221,6 +222,19 @@ Google style with Python 3 type annotations::
|
||||
|
||||
"""
|
||||
return True
|
||||
|
||||
class Class:
|
||||
"""Summary line.
|
||||
|
||||
Extended description of class
|
||||
|
||||
Attributes:
|
||||
attr1: Description of attr1
|
||||
attr2: Description of attr2
|
||||
"""
|
||||
|
||||
attr1: int
|
||||
attr2: str
|
||||
|
||||
Google style with types in docstrings::
|
||||
|
||||
@@ -238,6 +252,16 @@ Google style with types in docstrings::
|
||||
|
||||
"""
|
||||
return True
|
||||
|
||||
class Class:
|
||||
"""Summary line.
|
||||
|
||||
Extended description of class
|
||||
|
||||
Attributes:
|
||||
attr1 (int): Description of attr1
|
||||
attr2 (str): Description of attr2
|
||||
"""
|
||||
|
||||
.. Note::
|
||||
`Python 2/3 compatible annotations`_ aren't currently
|
||||
@@ -246,6 +270,9 @@ Google style with types in docstrings::
|
||||
.. _PEP 484:
|
||||
https://www.python.org/dev/peps/pep-0484/
|
||||
|
||||
.. _PEP 526:
|
||||
https://www.python.org/dev/peps/pep-0526/
|
||||
|
||||
.. _Python 2/3 compatible annotations:
|
||||
https://www.python.org/dev/peps/pep-0484/#suggested-syntax-for-python-2-7-and-straddling-code
|
||||
|
||||
@@ -275,6 +302,7 @@ sure that "sphinx.ext.napoleon" is enabled in `conf.py`::
|
||||
napoleon_use_param = True
|
||||
napoleon_use_rtype = True
|
||||
napoleon_type_aliases = None
|
||||
napoleon_attr_annotations = True
|
||||
|
||||
.. _Google style:
|
||||
https://google.github.io/styleguide/pyguide.html
|
||||
@@ -511,3 +539,11 @@ sure that "sphinx.ext.napoleon" is enabled in `conf.py`::
|
||||
:type arg2: :term:`dict-like <mapping>`
|
||||
|
||||
.. versionadded:: 3.2
|
||||
|
||||
.. confval:: napoleon_attr_annotations
|
||||
|
||||
True to allow using `PEP 526`_ attributes annotations in classes.
|
||||
If an attribute is documented in the docstring without a type and
|
||||
has an annotation in the class body, that type is used.
|
||||
|
||||
.. versionadded:: 3.4
|
||||
Reference in New Issue
Block a user