diff options
author | Takayuki Shimizukawa <shimizukawa@gmail.com> | 2014-06-15 12:28:04 +0900 |
---|---|---|
committer | Takayuki Shimizukawa <shimizukawa@gmail.com> | 2014-06-15 12:28:04 +0900 |
commit | f4928987f0deba7aebd03f1e63ae0a1710a9aa1e (patch) | |
tree | 506a453bc325f8c1f95bd3ad2126c0952794cbfb | |
parent | 0fb938ad38ef1599085323ac54721daa1ddf661c (diff) | |
parent | 5e5a1725ed1cbdd14ef2f79f643c86dd3d6160f6 (diff) | |
download | sphinx-git-f4928987f0deba7aebd03f1e63ae0a1710a9aa1e.tar.gz |
Merged in shimizukawa/sphinx-remove-complex-method-distinguishing (pull request #246)
remove complex distinguishing method/classmethod/staticmethod approach for autodoc
-rw-r--r-- | sphinx/ext/autodoc.py | 55 |
1 files changed, 19 insertions, 36 deletions
diff --git a/sphinx/ext/autodoc.py b/sphinx/ext/autodoc.py index bd947b440..5938f30f1 100644 --- a/sphinx/ext/autodoc.py +++ b/sphinx/ext/autodoc.py @@ -17,7 +17,7 @@ import inspect import traceback from types import FunctionType, BuiltinFunctionType, MethodType -from six import PY3, iteritems, itervalues, text_type, class_types +from six import iteritems, itervalues, text_type, class_types from docutils import nodes from docutils.utils import assemble_option_dict from docutils.statemachine import ViewList @@ -1230,43 +1230,26 @@ class MethodDocumenter(DocstringSignatureMixin, ClassLevelDocumenter): return inspect.isroutine(member) and \ not isinstance(parent, ModuleDocumenter) - if PY3: - def import_object(self): - ret = ClassLevelDocumenter.import_object(self) - if not ret: - return ret - obj_from_parent = self.parent.__dict__.get(self.object_name) - if isinstance(obj_from_parent, classmethod): - self.directivetype = 'classmethod' - self.member_order = self.member_order - 1 - elif isinstance(obj_from_parent, staticmethod): - self.directivetype = 'staticmethod' - self.member_order = self.member_order - 1 - else: - self.directivetype = 'method' - return ret - else: - def import_object(self): - ret = ClassLevelDocumenter.import_object(self) - if not ret: - return ret - if isinstance(self.object, classmethod) or \ - (isinstance(self.object, MethodType) and - self.object.__self__ is not None): - self.directivetype = 'classmethod' - # document class and static members before ordinary ones - self.member_order = self.member_order - 1 - elif isinstance(self.object, FunctionType) or \ - (isinstance(self.object, BuiltinFunctionType) and - hasattr(self.object, '__self__') and - self.object.__self__ is not None): - self.directivetype = 'staticmethod' - # document class and static members before ordinary ones - self.member_order = self.member_order - 1 - else: - self.directivetype = 'method' + def import_object(self): + ret = ClassLevelDocumenter.import_object(self) + if not ret: return ret + # to distinguish classmethod/staticmethod + obj = self.parent.__dict__.get(self.object_name) + + if isinstance(obj, classmethod): + self.directivetype = 'classmethod' + # document class and static members before ordinary ones + self.member_order = self.member_order - 1 + elif isinstance(obj, staticmethod): + self.directivetype = 'staticmethod' + # document class and static members before ordinary ones + self.member_order = self.member_order - 1 + else: + self.directivetype = 'method' + return ret + def format_args(self): if inspect.isbuiltin(self.object) or \ inspect.ismethoddescriptor(self.object): |