summaryrefslogtreecommitdiff
path: root/sphinx/ext/coverage.py
diff options
context:
space:
mode:
Diffstat (limited to 'sphinx/ext/coverage.py')
-rw-r--r--sphinx/ext/coverage.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/sphinx/ext/coverage.py b/sphinx/ext/coverage.py
index 5e2cca25e..c564aeedd 100644
--- a/sphinx/ext/coverage.py
+++ b/sphinx/ext/coverage.py
@@ -20,6 +20,7 @@ from six.moves import cPickle as pickle
import sphinx
from sphinx.builders import Builder
+from sphinx.util.inspect import safe_getattr
# utility
@@ -27,6 +28,7 @@ def write_header(f, text, char='-'):
f.write(text + '\n')
f.write(char * len(text) + '\n')
+
def compile_regex_list(name, exps, warnfunc):
lst = []
for exp in exps:
@@ -186,7 +188,10 @@ class CoverageBuilder(Builder):
for attr_name in dir(obj):
if attr_name not in obj.__dict__:
continue
- attr = getattr(obj, attr_name)
+ try:
+ attr = safe_getattr(obj, attr_name)
+ except AttributeError:
+ continue
if not (inspect.ismethod(attr) or
inspect.isfunction(attr)):
continue
@@ -231,7 +236,7 @@ class CoverageBuilder(Builder):
if undoc['classes']:
op.write('Classes:\n')
for name, methods in sorted(
- iteritems(undoc['classes'])):
+ iteritems(undoc['classes'])):
if not methods:
op.write(' * %s\n' % name)
else:
@@ -265,4 +270,4 @@ def setup(app):
app.add_config_value('coverage_ignore_c_items', {}, False)
app.add_config_value('coverage_write_headline', True, False)
app.add_config_value('coverage_skip_undoc_in_source', False, False)
- return {'version': sphinx.__version__, 'parallel_read_safe': True}
+ return {'version': sphinx.__display_version__, 'parallel_read_safe': True}