summaryrefslogtreecommitdiff
path: root/sphinx/ext/autodoc.py
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2014-01-12 16:20:13 +0100
committerGeorg Brandl <georg@python.org>2014-01-12 16:20:13 +0100
commit521719f8a1f4fb907d7f7384955d1f9db530494f (patch)
treef0e895e73e04094d433f8727404728d65a21f80e /sphinx/ext/autodoc.py
parent31aed073864aefee3ee072b740cc92164d73656d (diff)
downloadsphinx-git-521719f8a1f4fb907d7f7384955d1f9db530494f.tar.gz
Closes #1181: Report option errors in autodoc directives more gracefully.
Diffstat (limited to 'sphinx/ext/autodoc.py')
-rw-r--r--sphinx/ext/autodoc.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/sphinx/ext/autodoc.py b/sphinx/ext/autodoc.py
index 05996f9e5..ad7b02bbb 100644
--- a/sphinx/ext/autodoc.py
+++ b/sphinx/ext/autodoc.py
@@ -1384,8 +1384,15 @@ class AutoDirective(Directive):
not negated:
self.options[flag] = None
# process the options with the selected documenter's option_spec
- self.genopt = Options(assemble_option_dict(
- self.options.items(), doc_class.option_spec))
+ try:
+ self.genopt = Options(assemble_option_dict(
+ self.options.items(), doc_class.option_spec))
+ except (KeyError, ValueError, TypeError), err:
+ # an option is either unknown or has a wrong type
+ msg = self.reporter.error('An option to %s is either unknown or '
+ 'has an invalid value: %s' % (self.name, err),
+ line=self.lineno)
+ return [msg]
# generate the output
documenter = doc_class(self, self.arguments[0])
documenter.generate(more_content=self.content)