summaryrefslogtreecommitdiff
path: root/sphinx/ext/autodoc.py
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2009-02-17 19:55:49 +0100
committerGeorg Brandl <georg@python.org>2009-02-17 19:55:49 +0100
commitec9bf90ba7d2336a765b9f4eff0fc9fb5af6d959 (patch)
tree230f1e27a5ce6ebda02e9b45fa99b9bb5eaa2135 /sphinx/ext/autodoc.py
parent30fd6fadddc38e0037fe0a557b595ee1b7b313a1 (diff)
downloadsphinx-git-ec9bf90ba7d2336a765b9f4eff0fc9fb5af6d959.tar.gz
Unify all method types again.
Diffstat (limited to 'sphinx/ext/autodoc.py')
-rw-r--r--sphinx/ext/autodoc.py43
1 files changed, 14 insertions, 29 deletions
diff --git a/sphinx/ext/autodoc.py b/sphinx/ext/autodoc.py
index 1f8a933f7..26cda61f8 100644
--- a/sphinx/ext/autodoc.py
+++ b/sphinx/ext/autodoc.py
@@ -817,6 +817,20 @@ class MethodDocumenter(ClassLevelDocumenter):
return inspect.isroutine(member) and \
not isinstance(parent, ModuleDocumenter)
+ def import_object(self):
+ ret = ClassLevelDocumenter.import_object(self)
+ if isinstance(self.object, classmethod) or \
+ (isinstance(self.object, MethodType) and
+ self.object.im_self is not None):
+ self.directivetype = 'classmethod'
+ elif isinstance(self.object, FunctionType) or \
+ (isinstance(self.object, BuiltinFunctionType) and
+ self.object.__self__ is not None):
+ self.directivetype = 'staticmethod'
+ else:
+ self.directivetype = 'method'
+ return ret
+
def format_args(self):
if inspect.isbuiltin(self.object) or \
inspect.ismethoddescriptor(self.object):
@@ -831,33 +845,6 @@ class MethodDocumenter(ClassLevelDocumenter):
pass
-class ClassmethodDocumenter(MethodDocumenter):
- objtype = 'classmethod'
-
- priority = 10
-
- @classmethod
- def can_document_member(cls, member, membername, isattr, parent):
- return inspect.isroutine(member) and \
- not isinstance(parent, ModuleDocumenter) and \
- (isinstance(member, classmethod) or
- (isinstance(member, MethodType) and member.im_self is not None))
-
-
-class StaticmethodDocumenter(MethodDocumenter):
- objtype = 'staticmethod'
-
- priority = 10
-
- @classmethod
- def can_document_member(cls, member, membername, isattr, parent):
- return inspect.isroutine(member) and \
- not isinstance(parent, ModuleDocumenter) and \
- (isinstance(member, FunctionType) or
- (isinstance(member, BuiltinFunctionType) and
- member.__self__ is not None))
-
-
class AttributeDocumenter(ClassLevelDocumenter):
objtype = 'attribute'
@@ -940,8 +927,6 @@ def setup(app):
app.add_autodocumenter(DataDocumenter)
app.add_autodocumenter(FunctionDocumenter)
app.add_autodocumenter(MethodDocumenter)
- app.add_autodocumenter(ClassmethodDocumenter)
- app.add_autodocumenter(StaticmethodDocumenter)
app.add_autodocumenter(AttributeDocumenter)
app.add_config_value('autoclass_content', 'class', True)