From 0832291883a793fb3e025a18eae505bb7182ffab Mon Sep 17 00:00:00 2001 From: Takeshi KOMIYA Date: Mon, 1 Jul 2019 00:33:48 +0900 Subject: [PATCH] Migrate to py3 style type annotation: sphinx.ext.coverage --- sphinx/ext/coverage.py | 40 +++++++++++++--------------------------- 1 file changed, 13 insertions(+), 27 deletions(-) diff --git a/sphinx/ext/coverage.py b/sphinx/ext/coverage.py index 6c9489046..24f51b856 100644 --- a/sphinx/ext/coverage.py +++ b/sphinx/ext/coverage.py @@ -14,30 +14,25 @@ import inspect import pickle import re from os import path +from typing import Any, Dict, IO, List, Pattern, Set, Tuple import sphinx +from sphinx.application import Sphinx from sphinx.builders import Builder from sphinx.locale import __ from sphinx.util import logging from sphinx.util.inspect import safe_getattr -if False: - # For type annotation - from typing import Any, Dict, IO, List, Pattern, Set, Tuple # NOQA - from sphinx.application import Sphinx # NOQA - logger = logging.getLogger(__name__) # utility -def write_header(f, text, char='-'): - # type:(IO, str, str) -> None +def write_header(f: IO, text: str, char: str = '-') -> None: f.write(text + '\n') f.write(char * len(text) + '\n') -def compile_regex_list(name, exps): - # type: (str, str) -> List[Pattern] +def compile_regex_list(name: str, exps: str) -> List[Pattern]: lst = [] for exp in exps: try: @@ -55,8 +50,7 @@ class CoverageBuilder(Builder): epilog = __('Testing of coverage in the sources finished, look at the ' 'results in %(outdir)s' + path.sep + 'python.txt.') - def init(self): - # type: () -> None + def init(self) -> None: self.c_sourcefiles = [] # type: List[str] for pattern in self.config.coverage_c_path: pattern = path.join(self.srcdir, pattern) @@ -82,12 +76,10 @@ class CoverageBuilder(Builder): self.py_ignorexps = compile_regex_list('coverage_ignore_pyobjects', self.config.coverage_ignore_pyobjects) - def get_outdated_docs(self): - # type: () -> str + def get_outdated_docs(self) -> str: return 'coverage overview' - def write(self, *ignored): - # type: (Any) -> None + def write(self, *ignored) -> None: self.py_undoc = {} # type: Dict[str, Dict[str, Any]] self.build_py_coverage() self.write_py_coverage() @@ -96,8 +88,7 @@ class CoverageBuilder(Builder): self.build_c_coverage() self.write_c_coverage() - def build_c_coverage(self): - # type: () -> None + def build_c_coverage(self) -> None: # Fetch all the info from the header files c_objects = self.env.domaindata['c']['objects'] for filename in self.c_sourcefiles: @@ -118,8 +109,7 @@ class CoverageBuilder(Builder): if undoc: self.c_undoc[filename] = undoc - def write_c_coverage(self): - # type: () -> None + def write_c_coverage(self) -> None: output_file = path.join(self.outdir, 'c.txt') with open(output_file, 'w') as op: if self.config.coverage_write_headline: @@ -138,8 +128,7 @@ class CoverageBuilder(Builder): return True return False - def build_py_coverage(self): - # type: () -> None + def build_py_coverage(self) -> None: objects = self.env.domaindata['py']['objects'] modules = self.env.domaindata['py']['modules'] @@ -230,8 +219,7 @@ class CoverageBuilder(Builder): self.py_undoc[mod_name] = {'funcs': funcs, 'classes': classes} - def write_py_coverage(self): - # type: () -> None + def write_py_coverage(self) -> None: output_file = path.join(self.outdir, 'python.txt') failed = [] with open(output_file, 'w') as op: @@ -266,16 +254,14 @@ class CoverageBuilder(Builder): write_header(op, 'Modules that failed to import') op.writelines(' * %s -- %s\n' % x for x in failed) - def finish(self): - # type: () -> None + def finish(self) -> None: # dump the coverage data to a pickle file too picklepath = path.join(self.outdir, 'undoc.pickle') with open(picklepath, 'wb') as dumpfile: pickle.dump((self.py_undoc, self.c_undoc), dumpfile) -def setup(app): - # type: (Sphinx) -> Dict[str, Any] +def setup(app: Sphinx) -> Dict[str, Any]: app.add_builder(CoverageBuilder) app.add_config_value('coverage_ignore_modules', [], False) app.add_config_value('coverage_ignore_functions', [], False)