Anonymous avatar Anonymous committed eef4c65

autodoc detects descriptors properly now

Comments (0)

Files changed (2)

 
 * 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.

sphinx/ext/autodoc.py

 _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
         else:
             if callable(member):
                 memberwhat = 'method'
-            elif isinstance(member, property):
+            elif isdescriptor(member):
                 memberwhat = 'attribute'
             else:
                 # XXX: todo -- attribute docs
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.