summaryrefslogtreecommitdiff
path: root/sphinx/ext/autodoc.py
diff options
context:
space:
mode:
authorTakayuki Shimizukawa <shimizukawa@gmail.com>2013-02-03 20:27:34 +0900
committerTakayuki Shimizukawa <shimizukawa@gmail.com>2013-02-03 20:27:34 +0900
commite70a43a9c53759d4b4b8f5109a02fe0e793835ff (patch)
tree0fdbe9f5b1ac779ea35c545a1b24397b3d2ef092 /sphinx/ext/autodoc.py
parent4d4dad36106d1ba4a9ee205c4e36f69d10430ccc (diff)
downloadsphinx-git-e70a43a9c53759d4b4b8f5109a02fe0e793835ff.tar.gz
Closes #1062: sphinx.ext.autodoc use __init__ method signature for class signature.
Diffstat (limited to 'sphinx/ext/autodoc.py')
-rw-r--r--sphinx/ext/autodoc.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/sphinx/ext/autodoc.py b/sphinx/ext/autodoc.py
index 58623cc56..89680981c 100644
--- a/sphinx/ext/autodoc.py
+++ b/sphinx/ext/autodoc.py
@@ -1011,6 +1011,18 @@ class ClassDocumenter(ModuleLevelDocumenter):
def format_signature(self):
if self.doc_as_attr:
return ''
+
+ # get __init__ method signature from __init__.__doc__
+ if self.env.config.autodoc_docstring_signature:
+ # only act if the feature is enabled
+ init_doc = MethodDocumenter(self.directive, '__init__')
+ init_doc.object = self.get_attr(self.object, '__init__', None)
+ init_doc.objpath = ['__init__']
+ result = init_doc._find_signature()
+ if result is not None:
+ # use args only for Class signature
+ return '(%s)' % result[0]
+
return ModuleLevelDocumenter.format_signature(self)
def add_directive_header(self, sig):