diff options
author | David Ham <David,Ham@imperial.ac.uk> | 2013-08-12 19:26:37 +0100 |
---|---|---|
committer | David Ham <David,Ham@imperial.ac.uk> | 2013-08-12 19:26:37 +0100 |
commit | e6c8dd57270cb5deed493ddac95618a5da7751d0 (patch) | |
tree | 37acf6977a8cf05ba3cf933edfa80ce54af26ca6 /sphinx/ext/autodoc.py | |
parent | 88c72be190afd98cc1619624ae37b8955f393e97 (diff) | |
download | sphinx-git-e6c8dd57270cb5deed493ddac95618a5da7751d0.tar.gz |
Create a derivative of the DocstringSignatureMixin which strips
signature strings from attributes. This scenario can occur when using
Cython and turning methods into attributes with an @property
decorator.
Diffstat (limited to 'sphinx/ext/autodoc.py')
-rw-r--r-- | sphinx/ext/autodoc.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/sphinx/ext/autodoc.py b/sphinx/ext/autodoc.py index 555a31066..53c7a2506 100644 --- a/sphinx/ext/autodoc.py +++ b/sphinx/ext/autodoc.py @@ -924,6 +924,20 @@ class DocstringSignatureMixin(object): self.args, self.retann = result return Documenter.format_signature(self) +class DocstringStripSignatureMixin(DocstringSignatureMixin): + """ + Mixin for AttributeDocumenter to provide the + feature of stripping any function signature from the docstring. + """ + def format_signature(self): + if self.args is None and self.env.config.autodoc_docstring_signature: + # only act if a signature is not explicitly given already, and if + # the feature is enabled + result = self._find_signature() + if result is not None: + self.retann = result[1] + return Documenter.format_signature(self) + class FunctionDocumenter(DocstringSignatureMixin, ModuleLevelDocumenter): """ @@ -1188,7 +1202,7 @@ class MethodDocumenter(DocstringSignatureMixin, ClassLevelDocumenter): pass -class AttributeDocumenter(ClassLevelDocumenter): +class AttributeDocumenter(DocstringStripSignatureMixin,ClassLevelDocumenter): """ Specialized Documenter subclass for attributes. """ |