summaryrefslogtreecommitdiff
path: root/sphinx/ext/autodoc.py
diff options
context:
space:
mode:
Diffstat (limited to 'sphinx/ext/autodoc.py')
-rw-r--r--sphinx/ext/autodoc.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/sphinx/ext/autodoc.py b/sphinx/ext/autodoc.py
index 7c2f35f4e..ba4619e7c 100644
--- a/sphinx/ext/autodoc.py
+++ b/sphinx/ext/autodoc.py
@@ -879,6 +879,15 @@ class ModuleDocumenter(Documenter):
return True, safe_getmembers(self.object)
else:
memberlist = self.object.__all__
+ # Sometimes __all__ is broken...
+ if not isinstance(memberlist, (list, tuple)) or not \
+ all(isinstance(entry, str) for entry in memberlist):
+ self.directive.warn(
+ '__all__ should be a list of strings, not %r '
+ '(in module %s) -- ignoring __all__' %
+ (memberlist, self.fullname))
+ # fall back to all members
+ return True, safe_getmembers(self.object)
else:
memberlist = self.options.members or []
ret = []