autodoc detects descriptors properly now

This commit is contained in:
Armin Ronacher 2008-05-02 18:19:54 +00:00
parent 3a84835f9e
commit 72276a2dc2
2 changed files with 10 additions and 1 deletions

View File

@ -6,6 +6,7 @@ New features added
* If the `pygments_style` config value contains a dot it's treated as the
import path of a custom Pygments style class.
* autodoc detects descriptors properly now
* A new config value, `exclude_dirs`, can be used to exclude whole
directories from the search for source files.

View File

@ -32,6 +32,14 @@ _charset_re = re.compile(r'coding[:=]\s*([-\w.]+)')
_module_charsets = {}
def isdescriptor(x):
"""Check if the object is some kind of descriptor."""
for item in '__get__', '__set__', '__delete__':
if callable(getattr(x, item, None)):
return True
return False
def prepare_docstring(s):
"""
Convert a docstring into lines of parseable reST. Return it as a list of
@ -217,7 +225,7 @@ def generate_rst(what, name, members, undoc, add_content, document, lineno,
else:
if callable(member):
memberwhat = 'method'
elif isinstance(member, property):
elif isdescriptor(member):
memberwhat = 'attribute'
else:
# XXX: todo -- attribute docs