diff options
author | Georg Brandl <georg@python.org> | 2009-02-17 19:55:49 +0100 |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2009-02-17 19:55:49 +0100 |
commit | ec9bf90ba7d2336a765b9f4eff0fc9fb5af6d959 (patch) | |
tree | 230f1e27a5ce6ebda02e9b45fa99b9bb5eaa2135 /sphinx/ext/autodoc.py | |
parent | 30fd6fadddc38e0037fe0a557b595ee1b7b313a1 (diff) | |
download | sphinx-git-ec9bf90ba7d2336a765b9f4eff0fc9fb5af6d959.tar.gz |
Unify all method types again.
Diffstat (limited to 'sphinx/ext/autodoc.py')
-rw-r--r-- | sphinx/ext/autodoc.py | 43 |
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) |