Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions numpydoc/docscrape_sphinx.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ def load_config(self, config):
self.use_plots = config.get('use_plots', False)
self.use_blockquotes = config.get('use_blockquotes', False)
self.class_members_toctree = config.get('class_members_toctree', True)
self.attributes_as_param_list = config.get('attributes_as_param_list', True)
self.template = config.get('template', None)
if self.template is None:
template_dirs = [os.path.join(os.path.dirname(__file__), 'templates')]
Expand Down Expand Up @@ -366,8 +367,10 @@ def __str__(self, indent=0, func_role="obj"):
'notes': self._str_section('Notes'),
'references': self._str_references(),
'examples': self._str_examples(),
'attributes': self._str_param_list('Attributes',
fake_autosummary=True),
'attributes':
self._str_param_list('Attributes', fake_autosummary=True)
if self.attributes_as_param_list
else self._str_member_list('Attributes'),
'methods': self._str_member_list('Methods'),
}
ns = dict((k, '\n'.join(v)) for k, v in ns.items())
Expand Down
5 changes: 4 additions & 1 deletion numpydoc/numpydoc.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,9 @@ def mangle_docstrings(app, what, name, obj, options, lines):
'show_class_members': app.config.numpydoc_show_class_members,
'show_inherited_class_members':
app.config.numpydoc_show_inherited_class_members,
'class_members_toctree': app.config.numpydoc_class_members_toctree}
'class_members_toctree': app.config.numpydoc_class_members_toctree,
'attributes_as_param_list':
app.config.numpydoc_attributes_as_param_list}

u_NL = sixu('\n')
if what == 'module':
Expand Down Expand Up @@ -186,6 +188,7 @@ def setup(app, get_doc_object_=get_doc_object):
app.add_config_value('numpydoc_show_inherited_class_members', True, True)
app.add_config_value('numpydoc_class_members_toctree', True, True)
app.add_config_value('numpydoc_citation_re', '[a-z0-9_.-]+', True)
app.add_config_value('numpydoc_attributes_as_param_list', True, True)

# Extra mangling domains
app.add_domain(NumpyPythonDomain)
Expand Down
26 changes: 26 additions & 0 deletions numpydoc/tests/test_docscrape.py
Original file line number Diff line number Diff line change
Expand Up @@ -1179,6 +1179,32 @@ def no_period(self):
""")


def test_class_members_as_member_list():

class Foo:
@property
def an_attribute(self):
"""Test attribute"""
return None

attr_doc = """:Attributes:

:obj:`an_attribute <an_attribute>`
Test attribute"""

assert attr_doc in str(SphinxClassDoc(Foo))

attr_doc2 = """.. rubric:: Attributes

.. autosummary::
:toctree:

an_attribute"""

cfg = dict(attributes_as_param_list=False)
assert attr_doc2 in str(SphinxClassDoc(Foo, config=cfg))


def test_templated_sections():
doc = SphinxClassDoc(None, class_doc_txt,
config={'template': jinja2.Template('{{examples}}\n{{parameters}}')})
Expand Down