[Python-checkins] r62642 - in doctools/trunk: CHANGES sphinx/ext/autodoc.py

armin.ronacher python-checkins at python.org
Fri May 2 20:19:55 CEST 2008


Author: armin.ronacher
Date: Fri May  2 20:19:54 2008
New Revision: 62642

Log:
autodoc detects descriptors properly now

Modified:
   doctools/trunk/CHANGES
   doctools/trunk/sphinx/ext/autodoc.py

Modified: doctools/trunk/CHANGES
==============================================================================
--- doctools/trunk/CHANGES	(original)
+++ doctools/trunk/CHANGES	Fri May  2 20:19:54 2008
@@ -6,6 +6,7 @@
 
 * 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.

Modified: doctools/trunk/sphinx/ext/autodoc.py
==============================================================================
--- doctools/trunk/sphinx/ext/autodoc.py	(original)
+++ doctools/trunk/sphinx/ext/autodoc.py	Fri May  2 20:19:54 2008
@@ -32,6 +32,14 @@
 _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 @@
         else:
             if callable(member):
                 memberwhat = 'method'
-            elif isinstance(member, property):
+            elif isdescriptor(member):
                 memberwhat = 'attribute'
             else:
                 # XXX: todo -- attribute docs


More information about the Python-checkins mailing list