From c39ed6efbd6126599e5ff6a8180fef0b52086798 Mon Sep 17 00:00:00 2001 From: Cielquan Date: Sun, 31 May 2020 12:43:47 +0200 Subject: added config to log missing c/py coverage --- sphinx/ext/coverage.py | 49 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 46 insertions(+), 3 deletions(-) (limited to 'sphinx') diff --git a/sphinx/ext/coverage.py b/sphinx/ext/coverage.py index e8157848f..a5defd894 100644 --- a/sphinx/ext/coverage.py +++ b/sphinx/ext/coverage.py @@ -22,6 +22,9 @@ from sphinx.application import Sphinx from sphinx.builders import Builder from sphinx.locale import __ from sphinx.util import logging +from sphinx.util.console import ( # type: ignore + blue, darkblue, darkgreen, green, red, teal, turquoise +) from sphinx.util.inspect import safe_getattr logger = logging.getLogger(__name__) @@ -121,6 +124,14 @@ class CoverageBuilder(Builder): write_header(op, filename) for typ, name in sorted(undoc): op.write(' * %-50s [%9s]\n' % (name, typ)) + if self.config.coverage_print_missing_c_items: + if self.app.quiet or self.app.warningiserror: + logger.warning(__('undocumented c api: %s [%s] in file %s'), + name, typ, filename) + else: + logger.info(red('undocumented ') + darkgreen('c ') + + darkblue('api ') + '%-30s' % (name + " [%9s]" % typ) + + red(' - in file ') + filename) op.write('\n') def ignore_pyobj(self, full_name: str) -> bool: @@ -239,16 +250,46 @@ class CoverageBuilder(Builder): if undoc['funcs']: op.write('Functions:\n') op.writelines(' * %s\n' % x for x in undoc['funcs']) + if self.config.coverage_print_missing_py_items: + if self.app.quiet or self.app.warningiserror: + for func in undoc['funcs']: + logger.warning(__('undocumented python function: %s :: %s'), + name, func) + else: + for func in undoc['funcs']: + logger.info(red('undocumented ') + green('py ') + + teal('function ') + '%-30s' % func + + red(' - in module ') + name) op.write('\n') if undoc['classes']: op.write('Classes:\n') - for name, methods in sorted( + for class_name, methods in sorted( undoc['classes'].items()): if not methods: - op.write(' * %s\n' % name) + op.write(' * %s\n' % class_name) + if self.config.coverage_print_missing_py_items: + if self.app.quiet or self.app.warningiserror: + logger.warning(__('undocumented python class: %s :: %s'), + name, class_name) + else: + logger.info(red('undocumented ') + green('py ') + + blue('class ') + '%-30s' % class_name + + red(' - in module ') + name) else: - op.write(' * %s -- missing methods:\n\n' % name) + op.write(' * %s -- missing methods:\n\n' % class_name) op.writelines(' - %s\n' % x for x in methods) + if self.config.coverage_print_missing_py_items: + if self.app.quiet or self.app.warningiserror: + for meth in methods: + logger.warning( + __('undocumented python method: %s :: %s :: %s'), + name, class_name, meth) + else: + for meth in methods: + logger.info(red('undocumented ') + green('py ') + + turquoise('method ') + '%-30s' % + (class_name + '.' + meth) + + red(' - in module ') + name) op.write('\n') if failed: @@ -273,4 +314,6 @@ def setup(app: Sphinx) -> Dict[str, Any]: 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) + app.add_config_value('coverage_print_missing_c_items', False, False) + app.add_config_value('coverage_print_missing_py_items', False, False) return {'version': sphinx.__display_version__, 'parallel_read_safe': True} -- cgit v1.2.3 From e6cf7c0922276bf26e0662680a6be8cf6f1e1ccf Mon Sep 17 00:00:00 2001 From: Cielquan Date: Sun, 31 May 2020 16:17:56 +0200 Subject: merged new config options into coverage_show_missing_items --- sphinx/ext/coverage.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'sphinx') diff --git a/sphinx/ext/coverage.py b/sphinx/ext/coverage.py index a5defd894..e8196bb4a 100644 --- a/sphinx/ext/coverage.py +++ b/sphinx/ext/coverage.py @@ -124,7 +124,7 @@ class CoverageBuilder(Builder): write_header(op, filename) for typ, name in sorted(undoc): op.write(' * %-50s [%9s]\n' % (name, typ)) - if self.config.coverage_print_missing_c_items: + if self.config.coverage_show_missing_items: if self.app.quiet or self.app.warningiserror: logger.warning(__('undocumented c api: %s [%s] in file %s'), name, typ, filename) @@ -250,7 +250,7 @@ class CoverageBuilder(Builder): if undoc['funcs']: op.write('Functions:\n') op.writelines(' * %s\n' % x for x in undoc['funcs']) - if self.config.coverage_print_missing_py_items: + if self.config.coverage_show_missing_items: if self.app.quiet or self.app.warningiserror: for func in undoc['funcs']: logger.warning(__('undocumented python function: %s :: %s'), @@ -267,7 +267,7 @@ class CoverageBuilder(Builder): undoc['classes'].items()): if not methods: op.write(' * %s\n' % class_name) - if self.config.coverage_print_missing_py_items: + if self.config.coverage_show_missing_items: if self.app.quiet or self.app.warningiserror: logger.warning(__('undocumented python class: %s :: %s'), name, class_name) @@ -278,7 +278,7 @@ class CoverageBuilder(Builder): else: op.write(' * %s -- missing methods:\n\n' % class_name) op.writelines(' - %s\n' % x for x in methods) - if self.config.coverage_print_missing_py_items: + if self.config.coverage_show_missing_items: if self.app.quiet or self.app.warningiserror: for meth in methods: logger.warning( @@ -314,6 +314,5 @@ def setup(app: Sphinx) -> Dict[str, Any]: 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) - app.add_config_value('coverage_print_missing_c_items', False, False) - app.add_config_value('coverage_print_missing_py_items', False, False) + app.add_config_value('coverage_show_missing_items', False, False) return {'version': sphinx.__display_version__, 'parallel_read_safe': True} -- cgit v1.2.3 From baaa32c4a30cff751d0f1fd4b37c7f22582b9688 Mon Sep 17 00:00:00 2001 From: Cielquan Date: Sun, 31 May 2020 16:40:37 +0200 Subject: fixed line length --- sphinx/ext/coverage.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'sphinx') diff --git a/sphinx/ext/coverage.py b/sphinx/ext/coverage.py index e8196bb4a..064a2cb36 100644 --- a/sphinx/ext/coverage.py +++ b/sphinx/ext/coverage.py @@ -130,7 +130,8 @@ class CoverageBuilder(Builder): name, typ, filename) else: logger.info(red('undocumented ') + darkgreen('c ') + - darkblue('api ') + '%-30s' % (name + " [%9s]" % typ) + + darkblue('api ') + + '%-30s' % (name + " [%9s]" % typ) + red(' - in file ') + filename) op.write('\n') @@ -253,8 +254,9 @@ class CoverageBuilder(Builder): if self.config.coverage_show_missing_items: if self.app.quiet or self.app.warningiserror: for func in undoc['funcs']: - logger.warning(__('undocumented python function: %s :: %s'), - name, func) + logger.warning( + __('undocumented python function: %s :: %s'), + name, func) else: for func in undoc['funcs']: logger.info(red('undocumented ') + green('py ') + @@ -269,8 +271,9 @@ class CoverageBuilder(Builder): op.write(' * %s\n' % class_name) if self.config.coverage_show_missing_items: if self.app.quiet or self.app.warningiserror: - logger.warning(__('undocumented python class: %s :: %s'), - name, class_name) + logger.warning( + __('undocumented python class: %s :: %s'), + name, class_name) else: logger.info(red('undocumented ') + green('py ') + blue('class ') + '%-30s' % class_name + @@ -282,7 +285,8 @@ class CoverageBuilder(Builder): if self.app.quiet or self.app.warningiserror: for meth in methods: logger.warning( - __('undocumented python method: %s :: %s :: %s'), + __('undocumented python method:' + + ' %s :: %s :: %s'), name, class_name, meth) else: for meth in methods: -- cgit v1.2.3 From 754b48c8d66dd327289a83e9eea704c3e12e3377 Mon Sep 17 00:00:00 2001 From: Cielquan Date: Sun, 31 May 2020 16:49:02 +0200 Subject: reduced colors on info level --- sphinx/ext/coverage.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'sphinx') diff --git a/sphinx/ext/coverage.py b/sphinx/ext/coverage.py index 064a2cb36..3d186f0cb 100644 --- a/sphinx/ext/coverage.py +++ b/sphinx/ext/coverage.py @@ -129,8 +129,7 @@ class CoverageBuilder(Builder): logger.warning(__('undocumented c api: %s [%s] in file %s'), name, typ, filename) else: - logger.info(red('undocumented ') + darkgreen('c ') + - darkblue('api ') + + logger.info(red('undocumented ') + 'c ' + 'api ' + '%-30s' % (name + " [%9s]" % typ) + red(' - in file ') + filename) op.write('\n') @@ -259,9 +258,8 @@ class CoverageBuilder(Builder): name, func) else: for func in undoc['funcs']: - logger.info(red('undocumented ') + green('py ') + - teal('function ') + '%-30s' % func + - red(' - in module ') + name) + logger.info(red('undocumented ') + 'py ' + 'function ' + + '%-30s' % func + red(' - in module ') + name) op.write('\n') if undoc['classes']: op.write('Classes:\n') @@ -275,8 +273,8 @@ class CoverageBuilder(Builder): __('undocumented python class: %s :: %s'), name, class_name) else: - logger.info(red('undocumented ') + green('py ') + - blue('class ') + '%-30s' % class_name + + logger.info(red('undocumented ') + 'py ' + + 'class ' + '%-30s' % class_name + red(' - in module ') + name) else: op.write(' * %s -- missing methods:\n\n' % class_name) @@ -290,8 +288,8 @@ class CoverageBuilder(Builder): name, class_name, meth) else: for meth in methods: - logger.info(red('undocumented ') + green('py ') + - turquoise('method ') + '%-30s' % + logger.info(red('undocumented ') + 'py ' + + 'method ' + '%-30s' % (class_name + '.' + meth) + red(' - in module ') + name) op.write('\n') -- cgit v1.2.3 From d83f34794cdcb8b07d3f67e2ee7acf8f15295cf4 Mon Sep 17 00:00:00 2001 From: Cielquan Date: Sun, 31 May 2020 17:56:14 +0200 Subject: fixed color imports in coverage.py --- sphinx/ext/coverage.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'sphinx') diff --git a/sphinx/ext/coverage.py b/sphinx/ext/coverage.py index 3d186f0cb..536b3b9d2 100644 --- a/sphinx/ext/coverage.py +++ b/sphinx/ext/coverage.py @@ -22,9 +22,7 @@ from sphinx.application import Sphinx from sphinx.builders import Builder from sphinx.locale import __ from sphinx.util import logging -from sphinx.util.console import ( # type: ignore - blue, darkblue, darkgreen, green, red, teal, turquoise -) +from sphinx.util.console import red # type: ignore from sphinx.util.inspect import safe_getattr logger = logging.getLogger(__name__) -- cgit v1.2.3