diff options
| author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2018-12-15 03:14:11 +0900 |
|---|---|---|
| committer | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2018-12-15 23:57:43 +0900 |
| commit | 6bc357140dbb074eb0d590c1226009f83f97862e (patch) | |
| tree | a7c8d2087ee1f50dadb5ca78343ac10c6959b740 /sphinx/builders | |
| parent | 0031c9b4822ae9684888ae90bc70d6ceb3313581 (diff) | |
| download | sphinx-git-6bc357140dbb074eb0d590c1226009f83f97862e.tar.gz | |
Replace all "unicode" type by "str"
Diffstat (limited to 'sphinx/builders')
| -rw-r--r-- | sphinx/builders/__init__.py | 67 | ||||
| -rw-r--r-- | sphinx/builders/_epub_base.py | 59 | ||||
| -rw-r--r-- | sphinx/builders/applehelp.py | 3 | ||||
| -rw-r--r-- | sphinx/builders/changes.py | 17 | ||||
| -rw-r--r-- | sphinx/builders/devhelp.py | 7 | ||||
| -rw-r--r-- | sphinx/builders/dummy.py | 11 | ||||
| -rw-r--r-- | sphinx/builders/epub3.py | 11 | ||||
| -rw-r--r-- | sphinx/builders/gettext.py | 29 | ||||
| -rw-r--r-- | sphinx/builders/html.py | 139 | ||||
| -rw-r--r-- | sphinx/builders/htmlhelp.py | 17 | ||||
| -rw-r--r-- | sphinx/builders/latex/__init__.py | 31 | ||||
| -rw-r--r-- | sphinx/builders/latex/transforms.py | 9 | ||||
| -rw-r--r-- | sphinx/builders/linkcheck.py | 29 | ||||
| -rw-r--r-- | sphinx/builders/manpage.py | 13 | ||||
| -rw-r--r-- | sphinx/builders/qthelp.py | 21 | ||||
| -rw-r--r-- | sphinx/builders/texinfo.py | 21 | ||||
| -rw-r--r-- | sphinx/builders/text.py | 15 | ||||
| -rw-r--r-- | sphinx/builders/websupport.py | 3 | ||||
| -rw-r--r-- | sphinx/builders/xml.py | 11 |
19 files changed, 247 insertions, 266 deletions
diff --git a/sphinx/builders/__init__.py b/sphinx/builders/__init__.py index 94ec3b4ee..40944fcf1 100644 --- a/sphinx/builders/__init__.py +++ b/sphinx/builders/__init__.py @@ -47,7 +47,6 @@ if False: from sphinx.environment import BuildEnvironment # NOQA from sphinx.util.i18n import CatalogInfo # NOQA from sphinx.util.tags import Tags # NOQA - from sphinx.util.typing import unicode # NOQA logger = logging.getLogger(__name__) @@ -59,19 +58,19 @@ class Builder: """ #: The builder's name, for the -b command line option. - name = '' # type: unicode + name = '' #: The builder's output format, or '' if no document output is produced. - format = '' # type: unicode + format = '' #: The message emitted upon successful build completion. This can be a #: printf-style template string with the following keys: ``outdir``, #: ``project`` - epilog = '' # type: unicode + epilog = '' #: default translator class for the builder. This can be overrided by #: :py:meth:`app.set_translator()`. default_translator_class = None # type: Type[nodes.NodeVisitor] # doctree versioning method - versioning_method = 'none' # type: unicode + versioning_method = 'none' versioning_compare = False # allow parallel write_doc() calls allow_parallel = False @@ -80,7 +79,7 @@ class Builder: #: The list of MIME types of image formats supported by the builder. #: Image files are searched in the order in which they appear here. - supported_image_types = [] # type: List[unicode] + supported_image_types = [] # type: List[str] #: The builder supports remote images or not. supported_remote_images = False #: The builder supports data URIs or not. @@ -104,11 +103,11 @@ class Builder: self.tags.add("builder_%s" % self.name) # images that need to be copied over (source -> dest) - self.images = {} # type: Dict[unicode, unicode] + self.images = {} # type: Dict[str, str] # basename of images directory self.imagedir = "" # relative path to image directory from current docname (used at writing docs) - self.imgpath = "" # type: unicode + self.imgpath = "" # these get set later self.parallel_ok = False @@ -154,7 +153,7 @@ class Builder: self.templates = BuiltinTemplateLoader() def get_target_uri(self, docname, typ=None): - # type: (unicode, unicode) -> unicode + # type: (str, str) -> str """Return the target URI for a document name. *typ* can be used to qualify the link characteristic for individual @@ -163,7 +162,7 @@ class Builder: raise NotImplementedError def get_relative_uri(self, from_, to, typ=None): - # type: (unicode, unicode, unicode) -> unicode + # type: (str, str, str) -> str """Return a relative URI between two source filenames. May raise environment.NoUri if there's no way to return a sensible URI. @@ -172,7 +171,7 @@ class Builder: self.get_target_uri(to, typ)) def get_outdated_docs(self): - # type: () -> Union[unicode, Iterable[unicode]] + # type: () -> Union[str, Iterable[str]] """Return an iterable of output files that are outdated, or a string describing what an update build will build. @@ -183,7 +182,7 @@ class Builder: raise NotImplementedError def get_asset_paths(self): - # type: () -> List[unicode] + # type: () -> List[str] """Return list of paths for assets (ex. templates, CSS, etc.).""" return [] @@ -222,12 +221,12 @@ class Builder: # compile po methods def compile_catalogs(self, catalogs, message): - # type: (Set[CatalogInfo], unicode) -> None + # type: (Set[CatalogInfo], str) -> None if not self.config.gettext_auto_build: return def cat2relpath(cat): - # type: (CatalogInfo) -> unicode + # type: (CatalogInfo) -> str return relpath(cat.mo_path, self.env.srcdir).replace(path.sep, SEP) logger.info(bold(__('building [mo]: ')) + message) @@ -248,9 +247,9 @@ class Builder: self.compile_catalogs(catalogs, message) def compile_specific_catalogs(self, specified_files): - # type: (List[unicode]) -> None + # type: (List[str]) -> None def to_domain(fpath): - # type: (unicode) -> unicode + # type: (str) -> str docname = self.env.path2doc(path.abspath(fpath)) if docname: return find_catalog(docname, self.config.gettext_compact) @@ -286,13 +285,13 @@ class Builder: self.build(None, summary=__('all source files'), method='all') def build_specific(self, filenames): - # type: (List[unicode]) -> None + # type: (List[str]) -> None """Only rebuild as much as needed for changes in the *filenames*.""" # bring the filenames to the canonical format, that is, # relative to the source directory and without source_suffix. dirlen = len(self.srcdir) + 1 to_write = [] - suffixes = None # type: Tuple[unicode] + suffixes = None # type: Tuple[str] suffixes = tuple(self.config.source_suffix) # type: ignore for filename in filenames: filename = path.normpath(path.abspath(filename)) @@ -328,7 +327,7 @@ class Builder: len(to_build)) def build(self, docnames, summary=None, method='update'): - # type: (Iterable[unicode], unicode, unicode) -> None + # type: (Iterable[str], str, str) -> None """Main build method. First updates the environment, and then calls :meth:`write`. @@ -399,7 +398,7 @@ class Builder: self.finish_tasks.join() def read(self): - # type: () -> List[unicode] + # type: () -> List[str] """(Re-)read all files new or changed since last update. Store all environment docnames in the canonical format (ie using SEP as @@ -462,7 +461,7 @@ class Builder: return sorted(docnames) def _read_serial(self, docnames): - # type: (List[unicode]) -> None + # type: (List[str]) -> None for docname in status_iterator(docnames, 'reading sources... ', "purple", len(docnames), self.app.verbosity): # remove all inventory entries for that file @@ -471,14 +470,14 @@ class Builder: self.read_doc(docname) def _read_parallel(self, docnames, nproc): - # type: (List[unicode], int) -> None + # type: (List[str], int) -> None # clear all outdated docs at once for docname in docnames: self.app.emit('env-purge-doc', self.env, docname) self.env.clear_doc(docname) def read_process(docs): - # type: (List[unicode]) -> bytes + # type: (List[str]) -> bytes self.env.app = self.app for docname in docs: self.read_doc(docname) @@ -486,7 +485,7 @@ class Builder: return pickle.dumps(self.env, pickle.HIGHEST_PROTOCOL) def merge(docs, otherenv): - # type: (List[unicode], bytes) -> None + # type: (List[str], bytes) -> None env = pickle.loads(otherenv) self.env.merge_info_from(docs, env, self.app) @@ -502,7 +501,7 @@ class Builder: tasks.join() def read_doc(self, docname): - # type: (unicode) -> None + # type: (str) -> None """Parse a file and add/update inventory entries for the doctree.""" self.env.prepare_settings(docname) @@ -528,7 +527,7 @@ class Builder: self.write_doctree(docname, doctree) def write_doctree(self, docname, doctree): - # type: (unicode, nodes.document) -> None + # type: (str, nodes.document) -> None """Write the doctree to a file.""" # make it picklable doctree.reporter = None @@ -543,7 +542,7 @@ class Builder: pickle.dump(doctree, f, pickle.HIGHEST_PROTOCOL) def write(self, build_docnames, updated_docnames, method='update'): - # type: (Iterable[unicode], Sequence[unicode], unicode) -> None + # type: (Iterable[str], Sequence[str], str) -> None if build_docnames is None or build_docnames == ['__all__']: # build_all build_docnames = self.env.found_docs @@ -574,7 +573,7 @@ class Builder: self._write_serial(sorted(docnames)) def _write_serial(self, docnames): - # type: (Sequence[unicode]) -> None + # type: (Sequence[str]) -> None with logging.pending_warnings(): for docname in status_iterator(docnames, __('writing output... '), "darkgreen", len(docnames), self.app.verbosity): @@ -585,9 +584,9 @@ class Builder: self.write_doc(docname, doctree) def _write_parallel(self, docnames, nproc): - # type: (Sequence[unicode], int) -> None + # type: (Sequence[str], int) -> None def write_process(docs): - # type: (List[Tuple[unicode, nodes.document]]) -> None + # type: (List[Tuple[str, nodes.document]]) -> None self.app.phase = BuildPhase.WRITING for docname, doctree in docs: self.write_doc(docname, doctree) @@ -618,17 +617,17 @@ class Builder: tasks.join() def prepare_writing(self, docnames): - # type: (Set[unicode]) -> None + # type: (Set[str]) -> None """A place where you can add logic before :meth:`write_doc` is run""" raise NotImplementedError def write_doc(self, docname, doctree): - # type: (unicode, nodes.document) -> None + # type: (str, nodes.document) -> None """Where you actually write something to the filesystem.""" raise NotImplementedError def write_doc_serialized(self, docname, doctree): - # type: (unicode, nodes.document) -> None + # type: (str, nodes.document) -> None """Handle parts of write_doc that must be called in the main process if parallel build is active. """ @@ -651,7 +650,7 @@ class Builder: pass def get_builder_config(self, option, default): - # type: (unicode, unicode) -> Any + # type: (str, str) -> Any """Return a builder specific option. This method allows customization of common builder settings by diff --git a/sphinx/builders/_epub_base.py b/sphinx/builders/_epub_base.py index 80277431b..4e1794179 100644 --- a/sphinx/builders/_epub_base.py +++ b/sphinx/builders/_epub_base.py @@ -39,7 +39,6 @@ if False: # For type annotation from typing import Any, Dict, List, Tuple # NOQA from sphinx.application import Sphinx # NOQA - from sphinx.util.typing import unicode # NOQA logger = logging.getLogger(__name__) @@ -80,7 +79,7 @@ MEDIA_TYPES = { '.otf': 'application/x-font-otf', '.ttf': 'application/x-font-ttf', '.woff': 'application/font-woff', -} # type: Dict[unicode, unicode] +} VECTOR_GRAPHICS_EXTENSIONS = ('.svg',) @@ -97,7 +96,7 @@ NavPoint = namedtuple('NavPoint', ['navpoint', 'playorder', 'text', 'refuri', 'c def sphinx_smarty_pants(t, language='en'): - # type: (unicode, str) -> unicode + # type: (str, str) -> str t = t.replace('"', '"') t = smartquotes.educateDashesOldSchool(t) t = smartquotes.educateQuotes(t, language) @@ -158,21 +157,21 @@ class EpubBuilder(StandaloneHTMLBuilder): self.link_suffix = '.xhtml' self.playorder = 0 self.tocid = 0 - self.id_cache = {} # type: Dict[unicode, unicode] + self.id_cache = {} # type: Dict[str, str] self.use_index = self.get_builder_config('use_index', 'epub') - self.refnodes = [] # type: List[Dict[unicode, Any]] + self.refnodes = [] # type: List[Dict[str, Any]] def create_build_info(self): # type: () -> BuildInfo return BuildInfo(self.config, self.tags, ['html', 'epub']) def get_theme_config(self): - # type: () -> Tuple[unicode, Dict] + # type: () -> Tuple[str, Dict] return self.config.epub_theme, self.config.epub_theme_options # generic support functions def make_id(self, name): - # type: (unicode) -> unicode + # type: (str) -> str # id_cache is intentionally mutable """Return a unique id for name.""" id = self.id_cache.get(name) @@ -182,7 +181,7 @@ class EpubBuilder(StandaloneHTMLBuilder): return id def esc(self, name): - # type: (unicode) -> unicode + # type: (str) -> str """Replace all characters not allowed in text an attribute values.""" # Like cgi.escape, but also replace apostrophe name = name.replace('&', '&') @@ -193,7 +192,7 @@ class EpubBuilder(StandaloneHTMLBuilder): return name def get_refnodes(self, doctree, result): - # type: (nodes.Node, List[Dict[unicode, Any]]) -> List[Dict[unicode, Any]] + # type: (nodes.Node, List[Dict[str, Any]]) -> List[Dict[str, Any]] """Collect section titles, their depth in the toc and the refuri.""" # XXX: is there a better way than checking the attribute # toctree-l[1-8] on the parent node? @@ -233,7 +232,7 @@ class EpubBuilder(StandaloneHTMLBuilder): self.toc_add_files(self.refnodes) def toc_add_files(self, refnodes): - # type: (List[Dict[unicode, Any]]) -> None + # type: (List[Dict[str, Any]]) -> None """Add the master_doc, pre and post files to a list of refnodes. """ refnodes.insert(0, { @@ -256,7 +255,7 @@ class EpubBuilder(StandaloneHTMLBuilder): }) def fix_fragment(self, prefix, fragment): - # type: (unicode, unicode) -> unicode + # type: (str, str) -> str """Return a href/id attribute with colons replaced by hyphens.""" return prefix + fragment.replace(':', '-') @@ -294,11 +293,11 @@ class EpubBuilder(StandaloneHTMLBuilder): desc_signature.attributes['ids'] = newids def add_visible_links(self, tree, show_urls='inline'): - # type: (nodes.document, unicode) -> None + # type: (nodes.document, str) -> None """Add visible link targets for external links""" def make_footnote_ref(doc, label): - # type: (nodes.document, unicode) -> nodes.footnote_reference + # type: (nodes.document, str) -> nodes.footnote_reference """Create a footnote_reference node with children""" footnote_ref = nodes.footnote_reference('[#]_') footnote_ref.append(nodes.Text(label)) @@ -306,7 +305,7 @@ class EpubBuilder(StandaloneHTMLBuilder): return footnote_ref def make_footnote(doc, label, uri): - # type: (nodes.document, unicode, unicode) -> nodes.footnote + # type: (nodes.document, str, str) -> nodes.footnote """Create a footnote node with children""" footnote = nodes.footnote(uri) para = nodes.paragraph() @@ -366,7 +365,7 @@ class EpubBuilder(StandaloneHTMLBuilder): fn_idx += 1 def write_doc(self, docname, doctree): - # type: (unicode, nodes.document) -> None + # type: (str, nodes.document) -> None """Write one document file. This method is overwritten in order to fix fragment identifiers @@ -377,7 +376,7 @@ class EpubBuilder(StandaloneHTMLBuilder): super(EpubBuilder, self).write_doc(docname, doctree) def fix_genindex(self, tree): - # type: (List[Tuple[unicode, List[Tuple[unicode, Any]]]]) -> None + # type: (List[Tuple[str, List[Tuple[str, Any]]]]) -> None """Fix href attributes for genindex pages.""" # XXX: modifies tree inline # Logic modeled from themes/basic/genindex.html @@ -396,7 +395,7 @@ class EpubBuilder(StandaloneHTMLBuilder): self.fix_fragment(m.group(1), m.group(2))) def is_vector_graphics(self, filename): - # type: (unicode) -> bool + # type: (str) -> bool """Does the filename extension indicate a vector graphic format?""" ext = path.splitext(filename)[-1] return ext in VECTOR_GRAPHICS_EXTENSIONS @@ -461,7 +460,7 @@ class EpubBuilder(StandaloneHTMLBuilder): def handle_page(self, pagename, addctx, templatename='page.html', outfilename=None, event_arg=None): - # type: (unicode, Dict, unicode, unicode, Any) -> None + # type: (str, Dict, str, str, Any) -> None """Create a rendered page. This method is overwritten for genindex pages in order to fix href link @@ -476,14 +475,14 @@ class EpubBuilder(StandaloneHTMLBuilder): outfilename, event_arg) def build_mimetype(self, outdir, outname): - # type: (unicode, unicode) -> None + # type: (str, str) -> None """Write the metainfo file mimetype.""" logger.info(__('writing %s file...'), outname) copy_asset_file(path.join(self.template_dir, 'mimetype'), path.join(outdir, outname)) def build_container(self, outdir, outname): - # type: (unicode, unicode) -> None + # type: (str, str) -> None """Write the metainfo file META-INF/container.xml.""" logger.info(__('writing %s file...'), outname) filename = path.join(outdir, outname) @@ -491,11 +490,11 @@ class EpubBuilder(StandaloneHTMLBuilder): copy_asset_file(path.join(self.template_dir, 'container.xml'), filename) def content_metadata(self): - # type: () -> Dict[unicode, Any] + # type: () -> Dict[str, Any] """Create a dictionary with all metadata for the content.opf file properly escaped. """ - metadata = {} # type: Dict[unicode, Any] + metadata = {} # type: Dict[str, Any] metadata['title'] = self.esc(self.config.epub_title) metadata['author'] = self.esc(self.config.epub_author) metadata['uid'] = self.esc(self.config.epub_uid) @@ -511,7 +510,7 @@ class EpubBuilder(StandaloneHTMLBuilder): return metadata def build_content(self, outdir, outname): - # type: (unicode, unicode) -> None + # type: (str, str) -> None """Write the metainfo file content.opf It contains bibliographic data, a file list and the spine (the reading order). """ @@ -522,7 +521,7 @@ class EpubBuilder(StandaloneHTMLBuilder): if not outdir.endswith(os.sep): outdir += os.sep olen = len(outdir) - self.files = [] # type: List[unicode] + self.files = [] # type: List[str] self.ignored_files = ['.buildinfo', 'mimetype', 'content.opf', 'toc.ncx', 'META-INF/container.xml', 'Thumbs.db', 'ehthumbs.db', '.DS_Store', @@ -625,7 +624,7 @@ class EpubBuilder(StandaloneHTMLBuilder): metadata) def new_navpoint(self, node, level, incr=True): - # type: (Dict[unicode, Any], int, bool) -> NavPoint + # type: (Dict[str, Any], int, bool) -> NavPoint """Create a new entry in the toc from the node at given level.""" # XXX Modifies the node if incr: @@ -635,7 +634,7 @@ class EpubBuilder(StandaloneHTMLBuilder): node['text'], node['refuri'], []) def build_navpoints(self, nodes): - # type: (List[Dict[unicode, Any]]) -> List[NavPoint] + # type: (List[Dict[str, Any]]) -> List[NavPoint] """Create the toc navigation structure. Subelements of a node are nested inside the navpoint. For nested nodes @@ -680,11 +679,11 @@ class EpubBuilder(StandaloneHTMLBuilder): return navstack[0].children def toc_metadata(self, level, navpoints): - # type: (int, List[NavPoint]) -> Dict[unicode, Any] + # type: (int, List[NavPoint]) -> Dict[str, Any] """Create a dictionary with all metadata for the toc.ncx file properly escaped. """ - metadata = {} # type: Dict[unicode, Any] + metadata = {} # type: Dict[str, Any] metadata['uid'] = self.config.epub_uid metadata['title'] = self.esc(self.config.epub_title) metadata['level'] = level @@ -692,7 +691,7 @@ class EpubBuilder(StandaloneHTMLBuilder): return metadata def build_toc(self, outdir, outname): - # type: (unicode, unicode) -> None + # type: (str, str) -> None """Write the metainfo file toc.ncx.""" logger.info(__('writing %s file...'), outname) @@ -713,7 +712,7 @@ class EpubBuilder(StandaloneHTMLBuilder): self.toc_metadata(level, navpoints)) def build_epub(self, outdir, outname): - # type: (unicode, unicode) -> None + # type: (str, str) -> None """Write the epub file. It is a zip file with the mimetype file stored uncompressed as the first diff --git a/sphinx/builders/applehelp.py b/sphinx/builders/applehelp.py index 14f1dbd2b..f7379e1ba 100644 --- a/sphinx/builders/applehelp.py +++ b/sphinx/builders/applehelp.py @@ -30,7 +30,6 @@ if False: # For type annotation from typing import Any, Dict # NOQA from sphinx.application import Sphinx # NOQA - from sphinx.util.typing import unicode # NOQA logger = logging.getLogger(__name__) @@ -269,7 +268,7 @@ class AppleHelpBuilder(StandaloneHTMLBuilder): def setup(app): - # type: (Sphinx) -> Dict[unicode, Any] + # type: (Sphinx) -> Dict[str, Any] app.setup_extension('sphinx.builders.html') app.add_builder(AppleHelpBuilder) diff --git a/sphinx/builders/changes.py b/sphinx/builders/changes.py index 5f1999003..5b934fb3e 100644 --- a/sphinx/builders/changes.py +++ b/sphinx/builders/changes.py @@ -27,7 +27,6 @@ if False: # For type annotation from typing import Any, Dict, List, Tuple # NOQA from sphinx.application import Sphinx # NOQA - from sphinx.util.typing import unicode # NOQA logger = logging.getLogger(__name__) @@ -48,22 +47,22 @@ class ChangesBuilder(Builder): self.templates.init(self, self.theme) def get_outdated_docs(self): - # type: () -> unicode + # type: () -> str return self.outdir typemap = { 'versionadded': 'added', 'versionchanged': 'changed', 'deprecated': 'deprecated', - } # type: Dict[unicode, unicode] + } def write(self, *ignored): # type: (Any) -> None version = self.config.version domain = cast(ChangeSetDomain, self.env.get_domain('changeset')) - libchanges = {} # type: Dict[unicode, List[Tuple[unicode, unicode, int]]] - apichanges = [] # type: List[Tuple[unicode, unicode, int]] - otherchanges = {} # type: Dict[Tuple[unicode, unicode], List[Tuple[unicode, unicode, int]]] # NOQA + libchanges = {} # type: Dict[str, List[Tuple[str, str, int]]] + apichanges = [] # type: List[Tuple[str, str, int]] + otherchanges = {} # type: Dict[Tuple[str, str], List[Tuple[str, str, int]]] if version not in self.env.versionchanges: logger.info(bold(__('no changes in version %s.') % version)) return @@ -123,7 +122,7 @@ class ChangesBuilder(Builder): '.. deprecated:: %s' % version] def hl(no, line): - # type: (int, unicode) -> unicode + # type: (int, str) -> str line = '<a name="L%s"> </a>' % no + htmlescape(line) for x in hltext: if x in line: @@ -157,7 +156,7 @@ class ChangesBuilder(Builder): self.outdir) def hl(self, text, version): - # type: (unicode, unicode) -> unicode + # type: (str, str) -> str text = htmlescape(text) for directive in ['versionchanged', 'versionadded', 'deprecated']: text = text.replace('.. %s:: %s' % (directive, version), @@ -170,7 +169,7 @@ class ChangesBuilder(Builder): def setup(app): - # type: (Sphinx) -> Dict[unicode, Any] + # type: (Sphinx) -> Dict[str, Any] app.add_builder(ChangesBuilder) return { diff --git a/sphinx/builders/devhelp.py b/sphinx/builders/devhelp.py index 901fb5560..cb01667b9 100644 --- a/sphinx/builders/devhelp.py +++ b/sphinx/builders/devhelp.py @@ -36,7 +36,6 @@ if False: # For type annotation from typing import Dict, List # NOQA from sphinx.application import Sphinx # NOQA - from sphinx.util.typing import unicode # NOQA logger = logging.getLogger(__name__) @@ -72,7 +71,7 @@ class DevhelpBuilder(StandaloneHTMLBuilder): self.build_devhelp(self.outdir, self.config.devhelp_basename) def build_devhelp(self, outdir, outname): - # type: (unicode, unicode) -> None + # type: (str, str) -> None logger.info(__('dumping devhelp index...')) # Basic info @@ -112,7 +111,7 @@ class DevhelpBuilder(StandaloneHTMLBuilder): index = IndexEntries(self.env).create_index(self) def write_index(title, refs, subitems): - # type: (unicode, List[Any], Any) -> None + # type: (str, List[Any], Any) -> None if len(refs) == 0: pass elif len(refs) == 1: @@ -141,7 +140,7 @@ class DevhelpBuilder(StandaloneHTMLBuilder): def setup(app): - # type: (Sphinx) -> Dict[unicode, Any] + # type: (Sphinx) -> Dict[str, Any] app.setup_extension('sphinx.builders.html') app.add_builder(DevhelpBuilder) diff --git a/sphinx/builders/dummy.py b/sphinx/builders/dummy.py index 9ab1ad155..d20a5ab09 100644 --- a/sphinx/builders/dummy.py +++ b/sphinx/builders/dummy.py @@ -18,7 +18,6 @@ if False: from typing import Any, Dict, Set # NOQA from docutils import nodes # NOQA from sphinx.application import Sphinx # NOQA - from sphinx.util.typing import unicode # NOQA class DummyBuilder(Builder): @@ -32,19 +31,19 @@ class DummyBuilder(Builder): pass def get_outdated_docs(self): - # type: () -> Set[unicode] + # type: () -> Set[str] return self.env.found_docs def get_target_uri(self, docname, typ=None): - # type: (unicode, unicode) -> unicode + # type: (str, str) -> str return '' def prepare_writing(self, docnames): - # type: (Set[unicode]) -> None + # type: (Set[str]) -> None pass def write_doc(self, docname, doctree): - # type: (unicode, nodes.Node) -> None + # type: (str, nodes.Node) -> None pass def finish(self): @@ -53,7 +52,7 @@ class DummyBuilder(Builder): def setup(app): - # type: (Sphinx) -> Dict[unicode, Any] + # type: (Sphinx) -> Dict[str, Any] app.add_builder(DummyBuilder) return { diff --git a/sphinx/builders/epub3.py b/sphinx/builders/epub3.py index 312098098..a378bd981 100644 --- a/sphinx/builders/epub3.py +++ b/sphinx/builders/epub3.py @@ -28,7 +28,6 @@ if False: from docutils import nodes # NOQA from sphinx.application import Sphinx # NOQA from sphinx.config import Config # NOQA - from sphinx.util.typing import unicode # NOQA logger = logging.getLogger(__name__) @@ -141,7 +140,7 @@ class Epub3Builder(_epub_base.EpubBuilder): return metadata def prepare_writing(self, docnames): - # type: (Set[unicode]) -> None + # type: (Set[str]) -> None super(Epub3Builder, self).prepare_writing(docnames) writing_mode = self.config.epub_writing_mode @@ -151,7 +150,7 @@ class Epub3Builder(_epub_base.EpubBuilder): self.globalcontext['skip_ua_compatible'] = True def build_navlist(self, navnodes): - # type: (List[Dict[unicode, Any]]) -> List[NavPoint] + # type: (List[Dict[str, Any]]) -> List[NavPoint] """Create the toc navigation structure. This method is almost same as build_navpoints method in epub.py. @@ -205,7 +204,7 @@ class Epub3Builder(_epub_base.EpubBuilder): return metadata def build_navigation_doc(self, outdir, outname): - # type: (unicode, unicode) -> None + # type: (str, str) -> None """Write the metainfo file nav.xhtml.""" logger.info(__('writing %s file...'), outname) @@ -231,7 +230,7 @@ class Epub3Builder(_epub_base.EpubBuilder): def convert_epub_css_files(app, config): # type: (Sphinx, Config) -> None """This converts string styled epub_css_files to tuple styled one.""" - epub_css_files = [] # type: List[Tuple[unicode, Dict]] + epub_css_files = [] # type: List[Tuple[str, Dict]] for entry in config.epub_css_files: if isinstance(entry, str): epub_css_files.append((entry, {})) @@ -247,7 +246,7 @@ def convert_epub_css_files(app, config): def setup(app): - # type: (Sphinx) -> Dict[unicode, Any] + # type: (Sphinx) -> Dict[str, Any] app.add_builder(Epub3Builder) # config values diff --git a/sphinx/builders/gettext.py b/sphinx/builders/gettext.py index 0ca40708b..7ff8d0d53 100644 --- a/sphinx/builders/gettext.py +++ b/sphinx/builders/gettext.py @@ -36,7 +36,6 @@ if False: from docutils import nodes # NOQA from sphinx.application import Sphinx # NOQA from sphinx.util.i18n import CatalogInfo # NOQA - from sphinx.util.typing import unicode # NOQA logger = logging.getLogger(__name__) @@ -68,13 +67,13 @@ class Catalog: def __init__(self): # type: () -> None - self.messages = [] # type: List[unicode] + self.messages = [] # type: List[str] # retain insertion order, a la OrderedDict - self.metadata = OrderedDict() # type: Dict[unicode, List[Tuple[unicode, int, unicode]]] # NOQA + self.metadata = OrderedDict() # type: Dict[str, List[Tuple[str, int, str]]] # msgid -> file, line, uid def add(self, msg, origin): - # type: (unicode, Union[nodes.Element, MsgOrigin]) -> None + # type: (str, Union[nodes.Element, MsgOrigin]) -> None if not hasattr(origin, 'uid'): # Nodes that are replicated like todo don't have a uid, # however i18n is also unnecessary. @@ -91,7 +90,7 @@ class MsgOrigin: """ def __init__(self, source, line): - # type: (unicode, int) -> None + # type: (str, int) -> None self.source = source self.line = line self.uid = uuid4().hex @@ -124,26 +123,26 @@ class I18nBuilder(Builder): self.env.set_versioning_method(self.versioning_method, self.env.config.gettext_uuid) self.tags = I18nTags() - self.catalogs = defaultdict(Catalog) # type: DefaultDict[unicode, Catalog] + self.catalogs = defaultdict(Catalog) # type: DefaultDict[str, Catalog] def get_target_uri(self, docname, typ=None): - # type: (unicode, unicode) -> unicode + # type: (str, str) -> str return '' def get_outdated_docs(self): - # type: () -> Set[unicode] + # type: () -> Set[str] return self.env.found_docs def prepare_writing(self, docnames): - # type: (Set[unicode]) -> None + # type: (Set[str]) -> None return def compile_catalogs(self, catalogs, message): - # type: (Set[CatalogInfo], unicode) -> None + # type: (Set[CatalogInfo], str) -> None return def write_doc(self, docname, doctree): - # type: (unicode, nodes.document) -> None + # type: (str, nodes.document) -> None catalog = self.catalogs[find_catalog(docname, self.config.gettext_compact)] for node, msg in extract_messages(doctree): @@ -193,7 +192,7 @@ ltz = LocalTimeZone() def should_write(filepath, new_content): - # type: (unicode, unicode) -> bool + # type: (str, str) -> bool if not path.exists(filepath): return True try: @@ -225,7 +224,7 @@ class MessageCatalogBuilder(I18nBuilder): self.templates.init(self) def _collect_templates(self): - # type: () -> Set[unicode] + # type: () -> Set[str] template_files = set() for template_path in self.config.templates_path: tmpl_abs_path = path.join(self.app.srcdir, template_path) @@ -257,7 +256,7 @@ class MessageCatalogBuilder(I18nBuilder): raise ThemeError('%s: %r' % (template, exc)) def build(self, docnames, summary=None, method='update'): - # type: (Iterable[unicode], unicode, unicode) -> None + # type: (Iterable[str], str, str) -> None self._extract_from_template() super(MessageCatalogBuilder, self).build(docnames, summary, method) @@ -309,7 +308,7 @@ class MessageCatalogBuilder(I18nBuilder): def setup(app): - # type: (Sphinx) -> Dict[unicode, Any] + # type: (Sphinx) -> Dict[str, Any] app.add_builder(MessageCatalogBuilder) app.add_config_value('gettext_compact', True, 'gettext') diff --git a/sphinx/builders/html.py b/sphinx/builders/html.py index 53c6c82bc..10a6498e2 100644 --- a/sphinx/builders/html.py +++ b/sphinx/builders/html.py @@ -60,7 +60,6 @@ if False: from sphinx.config import Config # NOQA from sphinx.domains import Domain, Index, IndexEntry # NOQA from sphinx.util.tags import Tags # NOQA - from sphinx.util.typing import unicode # NOQA # Experimental HTML5 Writer if is_html5_writer_available(): @@ -79,7 +78,7 @@ return_codes_re = re.compile('[\r\n]+') def get_stable_hash(obj): - # type: (Any) -> unicode + # type: (Any) -> str """ Return a stable hash for a Python data structure. We can't just use the md5 of str(obj) since for example dictionary items are enumerated @@ -99,11 +98,11 @@ class Stylesheet(text_type): its filename (str). """ - attributes = None # type: Dict[unicode, unicode] - filename = None # type: unicode + attributes = None # type: Dict[str, str] + filename = None # type: str def __new__(cls, filename, *args, **attributes): - # type: (unicode, unicode, unicode) -> None + # type: (str, str, str) -> None self = text_type.__new__(cls, filename) # type: ignore self.filename = filename self.attributes = attributes @@ -119,14 +118,14 @@ class Stylesheet(text_type): class JSContainer(list): """The container for JavaScript scripts.""" def insert(self, index, obj): - # type: (int, unicode) -> None + # type: (int, str) -> None warnings.warn('builder.script_files is deprecated. ' 'Please use app.add_js_file() instead.', RemovedInSphinx30Warning, stacklevel=2) super(JSContainer, self).insert(index, obj) def extend(self, other): # type: ignore - # type: (List[unicode]) -> None + # type: (List[str]) -> None warnings.warn('builder.script_files is deprecated. ' 'Please use app.add_js_file() instead.', RemovedInSphinx30Warning, stacklevel=2) @@ -134,7 +133,7 @@ class JSContainer(list): self.append(item) def __iadd__(self, other): # type: ignore - # type: (List[unicode]) -> JSContainer + # type: (List[str]) -> JSContainer warnings.warn('builder.script_files is deprecated. ' 'Please use app.add_js_file() instead.', RemovedInSphinx30Warning, stacklevel=2) @@ -143,7 +142,7 @@ class JSContainer(list): return self def __add__(self, other): - # type: (List[unicode]) -> JSContainer + # type: (List[str]) -> JSContainer ret = JSContainer(self) ret += other return ret @@ -156,11 +155,11 @@ class JavaScript(text_type): its filename (str). """ - attributes = None # type: Dict[unicode, unicode] - filename = None # type: unicode + attributes = None # type: Dict[str, str] + filename = None # type: str def __new__(cls, filename, **attributes): - # type: (unicode, **unicode) -> None + # type: (str, **str) -> None self = text_type.__new__(cls, filename) # type: ignore self.filename = filename self.attributes = attributes @@ -193,7 +192,7 @@ class BuildInfo: raise ValueError(__('build info file is broken: %r') % exc) def __init__(self, config=None, tags=None, config_categories=[]): - # type: (Config, Tags, List[unicode]) -> None + # type: (Config, Tags, List[str]) -> None self.config_hash = u'' self.tags_hash = u'' @@ -249,8 +248,8 @@ class StandaloneHTMLBuilder(Builder): # use html5 translator by default default_html5_translator = False - imgpath = None # type: unicode - domain_indices = [] # type: List[Tuple[unicode, Type[Index], List[Tuple[unicode, List[IndexEntry]]], bool]] # NOQA + imgpath = None # type: str + domain_indices = [] # type: List[Tuple[str, Type[Index], List[Tuple[str, List[IndexEntry]]], bool]] # NOQA # cached publisher object for snippets _publisher = None @@ -260,7 +259,7 @@ class StandaloneHTMLBuilder(Builder): super(StandaloneHTMLBuilder, self).__init__(app) # CSS files - self.css_files = [] # type: List[Dict[unicode, unicode]] + self.css_files = [] # type: List[Dict[str, str]] # JS files self.script_files = JSContainer() # type: List[JavaScript] @@ -271,9 +270,9 @@ class StandaloneHTMLBuilder(Builder): # basename of images directory self.imagedir = '_images' # section numbers for headings in the currently visited document - self.secnumbers = {} # type: Dict[unicode, Tuple[int, ...]] + self.secnumbers = {} # type: Dict[str, Tuple[int, ...]] # currently written docname - self.current_docname = None # type: unicode + self.current_docname = None # type: str self.init_templates() self.init_highlighter() @@ -302,7 +301,7 @@ class StandaloneHTMLBuilder(Builder): return BuildInfo(self.config, self.tags, ['html']) def _get_translations_js(self): - # type: () -> unicode + # type: () -> str candidates = [path.join(dir, self.config.language, 'LC_MESSAGES', 'sphinx.js') for dir in self.config.locale_dirs] + \ @@ -317,7 +316,7 @@ class StandaloneHTMLBuilder(Builder): return None def get_theme_config(self): - # type: () -> Tuple[unicode, Dict] + # type: () -> Tuple[str, Dict] return self.config.html_theme, self.config.html_theme_options def init_templates(self): @@ -349,7 +348,7 @@ class StandaloneHTMLBuilder(Builder): self.add_css_file(filename, **attrs) def add_css_file(self, filename, **kwargs): - # type: (unicode, **unicode) -> None + # type: (str, **str) -> None if '://' not in filename: filename = posixpath.join('_static', filename) @@ -372,7 +371,7 @@ class StandaloneHTMLBuilder(Builder): self.add_js_file('translations.js') def add_js_file(self, filename, **kwargs): - # type: (unicode, **unicode) -> None + # type: (str, **str) -> None if filename and '://' not in filename: filename = posixpath.join('_static', filename) @@ -392,7 +391,7 @@ class StandaloneHTMLBuilder(Builder): @property def math_renderer_name(self): - # type: () -> unicode + # type: () -> str name = self.get_builder_config('math_renderer', 'html') if name is not None: # use given name @@ -412,7 +411,7 @@ class StandaloneHTMLBuilder(Builder): return None def get_outdated_docs(self): - # type: () -> Iterator[unicode] + # type: () -> Iterator[str] try: with open(path.join(self.outdir, '.buildinfo')) as fp: buildinfo = BuildInfo.load(fp) @@ -449,11 +448,11 @@ class StandaloneHTMLBuilder(Builder): pass def get_asset_paths(self): - # type: () -> List[unicode] + # type: () -> List[str] return self.config.html_extra_path + self.config.html_static_path def render_partial(self, node): - # type: (nodes.Node) -> Dict[unicode, unicode] + # type: (nodes.Node) -> Dict[str, str] """Utility: Render a lone doctree node.""" if node is None: return {'fragment': ''} @@ -479,7 +478,7 @@ class StandaloneHTMLBuilder(Builder): return pub.writer.parts def prepare_writing(self, docnames): - # type: (Set[unicode]) -> None + # type: (Set[str]) -> None # create the search indexer self.indexer = None if self.search: @@ -508,7 +507,7 @@ class StandaloneHTMLBuilder(Builder): domain = None # type: Domain domain = self.env.domains[domain_name] for indexcls in domain.indices: - indexname = '%s-%s' % (domain.name, indexcls.name) # type: unicode + indexname = '%s-%s' % (domain.name, indexcls.name) if isinstance(indices_config, list): if indexname not in indices_config: continue @@ -537,7 +536,7 @@ class StandaloneHTMLBuilder(Builder): self.relations = self.env.collect_relations() - rellinks = [] # type: List[Tuple[unicode, unicode, unicode, unicode]] + rellinks = [] # type: List[Tuple[str, str, str, str]] if self.use_index: rellinks.append(('genindex', _('General Index'), 'I', _('index'))) for indexname, indexcls, content, collapse in self.domain_indices: @@ -581,7 +580,7 @@ class StandaloneHTMLBuilder(Builder): 'logo': logo, 'favicon': favicon, 'html5_doctype': self.config.html_experimental_html5_writer and html5_ready, - } # type: Dict[unicode, Any] + } if self.theme: self.globalcontext.update( ('theme_' + key, val) for (key, val) in @@ -589,7 +588,7 @@ class StandaloneHTMLBuilder(Builder): self.globalcontext.update(self.config.html_context) def get_doc_context(self, docname, body, metatags): - # type: (unicode, unicode, unicode) -> Dict[unicode, Any] + # type: (str, str, str) -> Dict[str, Any] """Collect items for the template context of a page.""" # find out relations prev = next = None @@ -670,14 +669,14 @@ class StandaloneHTMLBuilder(Builder): } def write_doc(self, docname, doctree): - # type: (unicode, nodes.document) -> None + # type: (str, nodes.document) -> None destination = StringOutput(encoding='utf-8') doctree.settings = self.docsettings self.secnumbers = self.env.toc_secnumbers.get(docname, {}) self.fignumbers = self.env.toc_fignumbers.get(docname, {}) self.imgpath = relative_uri(self.get_target_uri(docname), '_images') - self.dlpath = relative_uri(self.get_target_uri(docname), '_downloads') # type: unicode + self.dlpath = relative_uri(self.get_target_uri(docname), '_downloads') self.current_docname = docname self.docwriter.write(doctree, destination) self.docwriter.assemble_parts() @@ -688,7 +687,7 @@ class StandaloneHTMLBuilder(Builder): self.handle_page(docname, ctx, event_arg=doctree) def write_doc_serialized(self, docname, doctree): - # type: (unicode, nodes.document) -> None + # type: (str, nodes.document) -> None self.imgpath = relative_uri(self.get_target_uri(docname), self.imagedir) self.post_process_images(doctree) title_node = self.env.longtitles.get(docname) @@ -808,7 +807,7 @@ class StandaloneHTMLBuilder(Builder): def copy_download_files(self): # type: () -> None def to_relpath(f): - # type: (unicode) -> unicode + # type: (str) -> str return relative_path(self.srcdir, f) # copy downloadable files if self.env.dlfiles: @@ -950,7 +949,7 @@ class StandaloneHTMLBuilder(Builder): reference.append(node) def load_indexer(self, docnames): - # type: (Iterable[unicode]) -> None + # type: (Iterable[str]) -> None keep = set(self.env.all_docs) - set(docnames) try: searchindexfn = path.join(self.outdir, self.searchindex_filename) @@ -969,7 +968,7 @@ class StandaloneHTMLBuilder(Builder): self.indexer.prune(keep) def index_page(self, pagename, doctree, title): - # type: (unicode, nodes.document, unicode) -> None + # type: (str, nodes.document, str) -> None # only index pages with title if self.indexer is not None and title: filename = self.env.doc2path(pagename, base=None) @@ -980,20 +979,20 @@ class StandaloneHTMLBuilder(Builder): self.indexer.feed(pagename, title, doctree) # type: ignore def _get_local_toctree(self, docname, collapse=True, **kwds): - # type: (unicode, bool, Any) -> unicode + # type: (str, bool, Any) -> str if 'includehidden' not in kwds: kwds['includehidden'] = False return self.render_partial(TocTree(self.env).get_toctree_for( docname, self, collapse, **kwds))['fragment'] def get_outfilename(self, pagename): - # type: (unicode) -> unicode + # type: (str) -> str return path.join(self.outdir, os_path(pagename) + self.out_suffix) def add_sidebars(self, pagename, ctx): - # type: (unicode, Dict) -> None + # type: (str, Dict) -> None def has_wildcard(pattern): - # type: (unicode) -> bool + # type: (str) -> bool return any(char in pattern for char in '*?[') sidebars = None matched = None @@ -1044,12 +1043,12 @@ class StandaloneHTMLBuilder(Builder): # --------- these are overwritten by the serialization builder def get_target_uri(self, docname, typ=None): - # type: (unicode, unicode) -> unicode + # type: (str, str) -> str return docname + self.link_suffix def handle_page(self, pagename, addctx, templatename='page.html', outfilename=None, event_arg=None): - # type: (unicode, Dict, unicode, unicode, Any) -> None + # type: (str, Dict, str, str, Any) -> None ctx = self.globalcontext.copy() # current_page_name is backwards compatibility ctx['pagename'] = ctx['current_page_name'] = pagename @@ -1066,7 +1065,7 @@ class StandaloneHTMLBuilder(Builder): ctx['pageurl'] = None def pathto(otheruri, resource=False, baseuri=default_baseuri): - # type: (unicode, bool, unicode) -> unicode + # type: (str, bool, str) -> str if resource and '://' in otheruri: # allow non-local resources given by scheme return otheruri @@ -1079,7 +1078,7 @@ class StandaloneHTMLBuilder(Builder): ctx['pathto'] = pathto def css_tag(css): - # type: (Stylesheet) -> unicode + # type: (Stylesheet) -> str attrs = [] for key in sorted(css.attributes): value = css.attributes[key] @@ -1090,7 +1089,7 @@ class StandaloneHTMLBuilder(Builder): ctx['css_tag'] = css_tag def hasdoc(name): - # type: (unicode) -> bool + # type: (str) -> bool if name in self.env.all_docs: return True elif name == 'search' and self.search: @@ -1101,7 +1100,7 @@ class StandaloneHTMLBuilder(Builder): ctx['hasdoc'] = hasdoc def warn(*args, **kwargs): - # type: (Any, Any) -> unicode + # type: (Any, Any) -> str """Simple warn() wrapper for themes.""" warnings.warn('The template function warn() was deprecated. ' 'Use warning() instead.', @@ -1149,7 +1148,7 @@ class StandaloneHTMLBuilder(Builder): copyfile(self.env.doc2path(pagename), source_name) def update_page_context(self, pagename, templatename, ctx, event_arg): - # type: (unicode, unicode, Dict, Any) -> None + # type: (str, str, Dict, Any) -> None pass def handle_finish(self): @@ -1192,7 +1191,7 @@ class DirectoryHTMLBuilder(StandaloneHTMLBuilder): name = 'dirhtml' def get_target_uri(self, docname, typ=None): - # type: (unicode, unicode) -> unicode + # type: (str, str) -> str if docname == 'index': return '' if docname.endswith(SEP + 'index'): @@ -1200,7 +1199,7 @@ class DirectoryHTMLBuilder(StandaloneHTMLBuilder): return docname + SEP def get_outfilename(self, pagename): - # type: (unicode) -> unicode + # type: (str) -> str if pagename == 'index' or pagename.endswith(SEP + 'index'): outfilename = path.join(self.outdir, os_path(pagename) + self.out_suffix) @@ -1211,7 +1210,7 @@ class DirectoryHTMLBuilder(StandaloneHTMLBuilder): return outfilename def prepare_writing(self, docnames): - # type: (Set[unicode]) -> None + # type: (Set[str]) -> None super(DirectoryHTMLBuilder, self).prepare_writing(docnames) self.globalcontext['no_search_suffix'] = True @@ -1227,11 +1226,11 @@ class SingleFileHTMLBuilder(StandaloneHTMLBuilder): copysource = False def get_outdated_docs(self): # type: ignore - # type: () -> Union[unicode, List[unicode]] + # type: () -> Union[str, List[str]] return 'all documents' def get_target_uri(self, docname, typ=None): - # type: (unicode, unicode) -> unicode + # type: (str, str) -> str if docname in self.env.all_docs: # all references are on the same page... return self.config.master_doc + self.out_suffix + \ @@ -1241,7 +1240,7 @@ class SingleFileHTMLBuilder(StandaloneHTMLBuilder): return docname + self.out_suffix def get_relative_uri(self, from_, to, typ=None): - # type: (unicode, unicode, unicode) -> unicode + # type: (str, str, str) -> str # ignore source return self.get_target_uri(to, typ) @@ -1261,7 +1260,7 @@ class SingleFileHTMLBuilder(StandaloneHTMLBuilder): refnode['refuri'] = fname + refuri[hashindex:] def _get_local_toctree(self, docname, collapse=True, **kwds): - # type: (unicode, bool, Any) -> unicode + # type: (str, bool, Any) -> str if 'includehidden' not in kwds: kwds['includehidden'] = False toctree = TocTree(self.env).get_toctree_for(docname, self, collapse, **kwds) @@ -1280,7 +1279,7 @@ class SingleFileHTMLBuilder(StandaloneHTMLBuilder): return tree def assemble_toc_secnumbers(self): - # type: () -> Dict[unicode, Dict[unicode, Tuple[int, ...]]] + # type: () -> Dict[str, Dict[str, Tuple[int, ...]]] # Assemble toc_secnumbers to resolve section numbers on SingleHTML. # Merge all secnumbers to single secnumber. # @@ -1290,7 +1289,7 @@ class SingleFileHTMLBuilder(StandaloneHTMLBuilder): # # There are related codes in inline_all_toctres() and # HTMLTranslter#add_secnumber(). - new_secnumbers = {} # type: Dict[unicode, Tuple[int, ...]] + new_secnumbers = {} # type: Dict[str, Tuple[int, ...]] for docname, secnums in self.env.toc_secnumbers.items(): for id, secnum in secnums.items(): alias = "%s/%s" % (docname, id) @@ -1299,7 +1298,7 @@ class SingleFileHTMLBuilder(StandaloneHTMLBuilder): return {self.config.master_doc: new_secnumbers} def assemble_toc_fignumbers(self): - # type: () -> Dict[unicode, Dict[unicode, Dict[unicode, Tuple[int, ...]]]] # NOQA + # type: () -> Dict[str, Dict[str, Dict[str, Tuple[int, ...]]]] # Assemble toc_fignumbers to resolve figure numbers on SingleHTML. # Merge all fignumbers to single fignumber. # @@ -1309,7 +1308,7 @@ class SingleFileHTMLBuilder(StandaloneHTMLBuilder): # # There are related codes in inline_all_toctres() and # HTMLTranslter#add_fignumber(). - new_fignumbers = {} # type: Dict[unicode, Dict[unicode, Tuple[int, ...]]] + new_fignumbers = {} # type: Dict[str, Dict[str, Tuple[int, ...]]] # {u'foo': {'figure': {'id2': (2,), 'id1': (1,)}}, u'bar': {'figure': {'id1': (3,)}}} for docname, fignumlist in self.env.toc_fignumbers.items(): for figtype, fignums in fignumlist.items(): @@ -1321,7 +1320,7 @@ class SingleFileHTMLBuilder(StandaloneHTMLBuilder): return {self.config.master_doc: new_fignumbers} def get_doc_context(self, docname, body, metatags): - # type: (unicode, unicode, unicode) -> Dict + # type: (str, str, str) -> Dict # no relation links... toctree = TocTree(self.env).get_toctree_for(self.config.master_doc, self, False) # if there is no toctree, toc is None @@ -1403,7 +1402,7 @@ class SerializingHTMLBuilder(StandaloneHTMLBuilder): additional_dump_args = () # type: Tuple #: the filename for the global context file - globalcontext_filename = None # type: unicode + globalcontext_filename = None # type: str supported_image_types = ['image/svg+xml', 'image/png', 'image/gif', 'image/jpeg'] @@ -1422,7 +1421,7 @@ class SerializingHTMLBuilder(StandaloneHTMLBuilder): self.use_index = self.get_builder_config('use_index', 'html') def get_target_uri(self, docname, typ=None): - # type: (unicode, unicode) -> unicode + # type: (str, str) -> str if docname == 'index': return '' if docname.endswith(SEP + 'index'): @@ -1430,7 +1429,7 @@ class SerializingHTMLBuilder(StandaloneHTMLBuilder): return docname + SEP def dump_context(self, context, filename): - # type: (Dict, unicode) -> None + # type: (Dict, str) -> None if self.implementation_dumps_unicode: with open(filename, 'w', encoding='utf-8') as ft: self.implementation.dump(context, ft, *self.additional_dump_args) @@ -1440,7 +1439,7 @@ class SerializingHTMLBuilder(StandaloneHTMLBuilder): def handle_page(self, pagename, ctx, templatename='page.html', outfilename=None, event_arg=None): - # type: (unicode, Dict, unicode, unicode, Any) -> None + # type: (str, Dict, str, str, Any) -> None ctx['current_page_name'] = pagename self.add_sidebars(pagename, ctx) @@ -1527,7 +1526,7 @@ class JSONHTMLBuilder(SerializingHTMLBuilder): def convert_html_css_files(app, config): # type: (Sphinx, Config) -> None """This converts string styled html_css_files to tuple styled one.""" - html_css_files = [] # type: List[Tuple[unicode, Dict]] + html_css_files = [] # type: List[Tuple[str, Dict]] for entry in config.html_css_files: if isinstance(entry, str): html_css_files.append((entry, {})) @@ -1545,7 +1544,7 @@ def convert_html_css_files(app, config): def convert_html_js_files(app, config): # type: (Sphinx, Config) -> None """This converts string styled html_js_files to tuple styled one.""" - html_js_files = [] # type: List[Tuple[unicode, Dict]] + html_js_files = [] # type: List[Tuple[str, Dict]] for entry in config.html_js_files: if isinstance(entry, str): html_js_files.append((entry, {})) @@ -1561,7 +1560,7 @@ def convert_html_js_files(app, config): def setup_js_tag_helper(app, pagename, templatexname, context, doctree): - # type: (Sphinx, unicode, unicode, Dict, nodes.Node) -> None + # type: (Sphinx, str, str, Dict, nodes.Node) -> None """Set up js_tag() template helper. .. note:: This set up function is added to keep compatibility with webhelper. @@ -1569,9 +1568,9 @@ def setup_js_tag_helper(app, pagename, templatexname, context, doctree): pathto = context.get('pathto') def js_tag(js): - # type: (JavaScript) -> unicode + # type: (JavaScript) -> str attrs = [] - body = '' # type: unicode + body = '' if isinstance(js, JavaScript): for key in sorted(js.attributes): value = js.attributes[key] @@ -1605,7 +1604,7 @@ def validate_math_renderer(app): def setup(app): - # type: (Sphinx) -> Dict[unicode, Any] + # type: (Sphinx) -> Dict[str, Any] # builders app.add_builder(StandaloneHTMLBuilder) app.add_builder(DirectoryHTMLBuilder) diff --git a/sphinx/builders/htmlhelp.py b/sphinx/builders/htmlhelp.py index 72c34b8ba..24f3ab2c4 100644 --- a/sphinx/builders/htmlhelp.py +++ b/sphinx/builders/htmlhelp.py @@ -30,7 +30,6 @@ if False: from typing import Any, Dict, IO, List, Tuple # NOQA from sphinx.application import Sphinx # NOQA from sphinx.config import Config # NOQA - from sphinx.util.typing import unicode # NOQA logger = logging.getLogger(__name__) @@ -208,13 +207,13 @@ class HTMLHelpBuilder(StandaloneHTMLBuilder): self.lcid, self.encoding = locale def open_file(self, outdir, basename, mode='w'): - # type: (unicode, unicode, unicode) -> IO + # type: (str, str, str) -> IO # open a file with the correct encoding for the selected language return open(path.join(outdir, basename), mode, encoding=self.encoding, errors='xmlcharrefreplace') def update_page_context(self, pagename, templatename, ctx, event_arg): - # type: (unicode, unicode, Dict, unicode) -> None + # type: (str, str, Dict, str) -> None ctx['encoding'] = self.encoding def handle_finish(self): @@ -222,7 +221,7 @@ class HTMLHelpBuilder(StandaloneHTMLBuilder): self.build_hhx(self.outdir, self.config.htmlhelp_basename) def write_doc(self, docname, doctree): - # type: (unicode, nodes.document) -> None + # type: (str, nodes.document) -> None for node in doctree.traverse(nodes.reference): # add ``target=_blank`` attributes to external links if node.get('internal') is None and 'refuri' in node: @@ -231,7 +230,7 @@ class HTMLHelpBuilder(StandaloneHTMLBuilder): super(HTMLHelpBuilder, self).write_doc(docname, doctree) def build_hhx(self, outdir, outname): - # type: (unicode, unicode) -> None + # type: (str, str) -> None logger.info(__('dumping stopword list...')) with self.open_file(outdir, outname + '.stp') as f: for word in sorted(stopwords): @@ -305,9 +304,9 @@ class HTMLHelpBuilder(StandaloneHTMLBuilder): f.write('<UL>\n') def write_index(title, refs, subitems): - # type: (unicode, List[Tuple[unicode, unicode]], List[Tuple[unicode, List[Tuple[unicode, unicode]]]]) -> None # NOQA + # type: (str, List[Tuple[str, str]], List[Tuple[str, List[Tuple[str, str]]]]) -> None # NOQA def write_param(name, value): - # type: (unicode, unicode) -> None + # type: (str, str) -> None item = ' <param name="%s" value="%s">\n' % \ (name, value) f.write(item) @@ -336,13 +335,13 @@ class HTMLHelpBuilder(StandaloneHTMLBuilder): def default_htmlhelp_basename(config): - # type: (Config) -> unicode + # type: (Config) -> str """Better default htmlhelp_basename setting.""" return make_filename_from_project(config.project) + 'doc' def setup(app): - # type: (Sphinx) -> Dict[unicode, Any] + # type: (Sphinx) -> Dict[str, Any] app.setup_extension('sphinx.builders.html') app.add_builder(HTMLHelpBuilder) diff --git a/sphinx/builders/latex/__init__.py b/sphinx/builders/latex/__init__.py index a06ae590e..2240b281b 100644 --- a/sphinx/builders/latex/__init__.py +++ b/sphinx/builders/latex/__init__.py @@ -45,7 +45,6 @@ if False: from typing import Any, Dict, Iterable, List, Tuple, Union # NOQA from sphinx.application import Sphinx # NOQA from sphinx.config import Config # NOQA - from sphinx.util.typing import unicode # NOQA XINDY_LANG_OPTIONS = { @@ -103,11 +102,11 @@ XINDY_LANG_OPTIONS = { 'el': '-L greek -C utf8 ', # FIXME, not compatible with [:2] slice but does Sphinx support Greek ? 'el-polyton': '-L greek -C polytonic-utf8 ', -} # type: Dict[unicode, unicode] +} XINDY_CYRILLIC_SCRIPTS = [ 'be', 'bg', 'mk', 'mn', 'ru', 'sr', 'sh', 'uk', -] # type: List[unicode] +] logger = logging.getLogger(__name__) @@ -130,27 +129,27 @@ class LaTeXBuilder(Builder): def init(self): # type: () -> None - self.context = {} # type: Dict[unicode, Any] - self.docnames = [] # type: Iterable[unicode] - self.document_data = [] # type: List[Tuple[unicode, unicode, unicode, unicode, unicode, bool]] # NOQA + self.context = {} # type: Dict[str, Any] + self.docnames = [] # type: Iterable[str] + self.document_data = [] # type: List[Tuple[str, str, str, str, str, bool]] self.usepackages = self.app.registry.latex_packages texescape.init() self.init_context() def get_outdated_docs(self): - # type: () -> Union[unicode, List[unicode]] + # type: () -> Union[str, List[str]] return 'all documents' # for now def get_target_uri(self, docname, typ=None): - # type: (unicode, unicode) -> unicode + # type: (str, str) -> str if docname not in self.docnames: raise NoUri else: return '%' + docname def get_relative_uri(self, from_, to, typ=None): - # type: (unicode, unicode, unicode) -> unicode + # type: (str, str, str) -> str # ignore source path return self.get_target_uri(to, typ) @@ -162,7 +161,7 @@ class LaTeXBuilder(Builder): 'will be written')) return # assign subdirs to titles - self.titles = [] # type: List[Tuple[unicode, unicode]] + self.titles = [] # type: List[Tuple[str, str]] for entry in preliminary_document_data: docname = entry[0] if docname not in self.env.all_docs: @@ -256,7 +255,7 @@ class LaTeXBuilder(Builder): logger.info("done") def get_contentsname(self, indexfile): - # type: (unicode) -> unicode + # type: (str) -> str tree = self.env.get_doctree(indexfile) contentsname = None for toctree in tree.traverse(addnodes.toctree): @@ -267,12 +266,12 @@ class LaTeXBuilder(Builder): return contentsname def update_doc_context(self, title, author): - # type: (unicode, unicode) -> None + # type: (str, str) -> None self.context['title'] = title self.context['author'] = author def assemble_doctree(self, indexfile, toctree_only, appendices): - # type: (unicode, bool, List[unicode]) -> nodes.document + # type: (str, bool, List[str]) -> nodes.document from docutils import nodes # NOQA self.docnames = set([indexfile] + appendices) logger.info(darkgreen(indexfile) + " ", nonl=1) @@ -427,7 +426,7 @@ def validate_config_values(app, config): def default_latex_engine(config): - # type: (Config) -> unicode + # type: (Config) -> str """ Better default latex_engine settings for specific languages. """ if config.language == 'ja': return 'platex' @@ -436,7 +435,7 @@ def default_latex_engine(config): def default_latex_docclass(config): - # type: (Config) -> Dict[unicode, unicode] + # type: (Config) -> Dict[str, str] """ Better default latex_docclass settings for specific languages. """ if config.language == 'ja': return {'manual': 'jsbook', @@ -452,7 +451,7 @@ def default_latex_use_xindy(config): def setup(app): - # type: (Sphinx) -> Dict[unicode, Any] + # type: (Sphinx) -> Dict[str, Any] app.add_builder(LaTeXBuilder) app.add_post_transform(CitationReferenceTransform) app.add_post_transform(MathReferenceTransform) diff --git a/sphinx/builders/latex/transforms.py b/sphinx/builders/latex/transforms.py index 7b76b7545..c3bc50fe3 100644 --- a/sphinx/builders/latex/transforms.py +++ b/sphinx/builders/latex/transforms.py @@ -23,7 +23,6 @@ from sphinx.util.nodes import NodeMatcher if False: # For type annotation from typing import Any, Dict, List, Set, Tuple, Union # NOQA - from sphinx.util.typing import unicode # NOQA URI_SCHEMES = ('mailto:', 'http:', 'https:', 'ftp:') @@ -92,7 +91,7 @@ class ShowUrlsTransform(SphinxTransform): node.parent.insert(index + 1, textnode) def get_docname_for_node(self, node): - # type: (nodes.Node) -> unicode + # type: (nodes.Node) -> str while node: if isinstance(node, nodes.document): return self.env.path2doc(node['source']) @@ -104,7 +103,7 @@ class ShowUrlsTransform(SphinxTransform): return None # never reached here. only for type hinting def create_footnote(self, uri, docname): - # type: (unicode, unicode) -> Tuple[nodes.footnote, nodes.footnote_reference] + # type: (str, str) -> Tuple[nodes.footnote, nodes.footnote_reference] reference = nodes.reference('', nodes.Text(uri), refuri=uri, nolinkurl=True) footnote = nodes.footnote(uri, auto=1, docname=docname) footnote['names'].append('#') @@ -154,7 +153,7 @@ class FootnoteCollector(nodes.NodeVisitor): def __init__(self, document): # type: (nodes.document) -> None self.auto_footnotes = [] # type: List[nodes.footnote] - self.used_footnote_numbers = set() # type: Set[unicode] + self.used_footnote_numbers = set() # type: Set[str] self.footnote_refs = [] # type: List[nodes.footnote_reference] super(FootnoteCollector, self).__init__(document) @@ -361,7 +360,7 @@ class LaTeXFootnoteTransform(SphinxTransform): class LaTeXFootnoteVisitor(nodes.NodeVisitor): def __init__(self, document, footnotes): # type: (nodes.document, List[nodes.footnote]) -> None - self.appeared = set() # type: Set[Tuple[unicode, unicode]] + self.appeared = set() # type: Set[Tuple[str, str]] self.footnotes = footnotes # type: List[nodes.footnote] self.pendings = [] # type: List[nodes.footnote] self.table_footnotes = [] # type: List[nodes.footnote] diff --git a/sphinx/builders/linkcheck.py b/sphinx/builders/linkcheck.py index 9544d5b35..911c58c12 100644 --- a/sphinx/builders/linkcheck.py +++ b/sphinx/builders/linkcheck.py @@ -34,7 +34,6 @@ if False: from typing import Any, Dict, List, Set, Tuple, Union # NOQA from sphinx.application import Sphinx # NOQA from sphinx.util.requests.requests import Response # NOQA - from sphinx.util.typing import unicode # NOQA logger = logging.getLogger(__name__) @@ -44,7 +43,7 @@ class AnchorCheckParser(HTMLParser): """Specialized HTML parser that looks for a specific anchor.""" def __init__(self, search_anchor): - # type: (unicode) -> None + # type: (str) -> None super(AnchorCheckParser, self).__init__() self.search_anchor = search_anchor @@ -59,7 +58,7 @@ class AnchorCheckParser(HTMLParser): def check_anchor(response, anchor): - # type: (Response, unicode) -> bool + # type: (Response, str) -> bool """Reads HTML data from a response object `response` searching for `anchor`. Returns True if anchor was found, False otherwise. """ @@ -87,9 +86,9 @@ class CheckExternalLinksBuilder(Builder): self.to_ignore = [re.compile(x) for x in self.app.config.linkcheck_ignore] self.anchors_ignore = [re.compile(x) for x in self.app.config.linkcheck_anchors_ignore] - self.good = set() # type: Set[unicode] - self.broken = {} # type: Dict[unicode, unicode] - self.redirected = {} # type: Dict[unicode, Tuple[unicode, int]] + self.good = set() # type: Set[str] + self.broken = {} # type: Dict[str, str] + self.redirected = {} # type: Dict[str, Tuple[str, int]] # set a timeout for non-responding servers socket.setdefaulttimeout(5.0) # create output file @@ -117,7 +116,7 @@ class CheckExternalLinksBuilder(Builder): kwargs['timeout'] = self.app.config.linkcheck_timeout def check_uri(): - # type: () -> Tuple[unicode, unicode, int] + # type: () -> Tuple[str, str, int] # split off anchor if '#' in uri: req_url, anchor = uri.split('#', 1) @@ -181,7 +180,7 @@ class CheckExternalLinksBuilder(Builder): return 'redirected', new_url, 0 def check(): - # type: () -> Tuple[unicode, unicode, int] + # type: () -> Tuple[str, str, int] # check for various conditions without bothering the network if len(uri) == 0 or uri.startswith(('#', 'mailto:', 'ftp:')): return 'unchecked', '', 0 @@ -220,7 +219,7 @@ class CheckExternalLinksBuilder(Builder): self.rqueue.put((uri, docname, lineno, status, info, code)) def process_result(self, result): - # type: (Tuple[unicode, unicode, int, unicode, unicode, int]) -> None + # type: (Tuple[str, str, int, str, str, int]) -> None uri, docname, lineno, status, info, code = result if status == 'unchecked': return @@ -258,19 +257,19 @@ class CheckExternalLinksBuilder(Builder): logger.info(color('redirect ') + uri + color(' - ' + text + ' to ' + info)) def get_target_uri(self, docname, typ=None): - # type: (unicode, unicode) -> unicode + # type: (str, str) -> str return '' def get_outdated_docs(self): - # type: () -> Set[unicode] + # type: () -> Set[str] return self.env.found_docs def prepare_writing(self, docnames): - # type: (Set[unicode]) -> None + # type: (Set[str]) -> None return def write_doc(self, docname, doctree): - # type: (unicode, nodes.Node) -> None + # type: (str, nodes.Node) -> None logger.info('') n = 0 for node in doctree.traverse(nodes.reference): @@ -293,7 +292,7 @@ class CheckExternalLinksBuilder(Builder): self.app.statuscode = 1 def write_entry(self, what, docname, line, uri): - # type: (unicode, unicode, int, unicode) -> None + # type: (str, str, int, str) -> None with open(path.join(self.outdir, 'output.txt'), 'a', encoding='utf-8') as output: output.write("%s:%s: [%s] %s\n" % (self.env.doc2path(docname, None), line, what, uri)) @@ -305,7 +304,7 @@ class CheckExternalLinksBuilder(Builder): def setup(app): - # type: (Sphinx) -> Dict[unicode, Any] + # type: (Sphinx) -> Dict[str, Any] app.add_builder(CheckExternalLinksBuilder) app.add_config_value('linkcheck_ignore', [], None) diff --git a/sphinx/builders/manpage.py b/sphinx/builders/manpage.py index e5e9e187d..c4947b76b 100644 --- a/sphinx/builders/manpage.py +++ b/sphinx/builders/manpage.py @@ -29,7 +29,6 @@ if False: from typing import Any, Dict, List, Set, Tuple, Union # NOQA from sphinx.application import Sphinx # NOQA from sphinx.config import Config # NOQA - from sphinx.util.typing import unicode # NOQA logger = logging.getLogger(__name__) @@ -44,7 +43,7 @@ class ManualPageBuilder(Builder): epilog = __('The manual pages are in %(outdir)s.') default_translator_class = ManualPageTranslator - supported_image_types = [] # type: List[unicode] + supported_image_types = [] # type: List[str] def init(self): # type: () -> None @@ -53,11 +52,11 @@ class ManualPageBuilder(Builder): 'will be written')) def get_outdated_docs(self): - # type: () -> Union[unicode, List[unicode]] + # type: () -> Union[str, List[str]] return 'all manpages' # for now def get_target_uri(self, docname, typ=None): - # type: (unicode, unicode) -> unicode + # type: (str, str) -> str if typ == 'token': return '' raise NoUri @@ -96,7 +95,7 @@ class ManualPageBuilder(Builder): encoding='utf-8') tree = self.env.get_doctree(docname) - docnames = set() # type: Set[unicode] + docnames = set() # type: Set[str] largetree = inline_all_toctrees(self, docnames, docname, tree, darkgreen, [docname]) largetree.settings = docsettings @@ -115,7 +114,7 @@ class ManualPageBuilder(Builder): def default_man_pages(config): - # type: (Config) -> List[Tuple[unicode, unicode, unicode, List[unicode], int]] + # type: (Config) -> List[Tuple[str, str, str, List[str], int]] """ Better default man_pages settings. """ filename = make_filename_from_project(config.project) return [(config.master_doc, filename, '%s %s' % (config.project, config.release), @@ -123,7 +122,7 @@ def default_man_pages(config): def setup(app): - # type: (Sphinx) -> Dict[unicode, Any] + # type: (Sphinx) -> Dict[str, Any] app.add_builder(ManualPageBuilder) app.add_config_value('man_pages', default_man_pages, None) diff --git a/sphinx/builders/qthelp.py b/sphinx/builders/qthelp.py index 789a8113f..08042fd87 100644 --- a/sphinx/builders/qthelp.py +++ b/sphinx/builders/qthelp.py @@ -33,7 +33,6 @@ if False: # For type annotation from typing import Any, Dict, List, Tuple # NOQA from sphinx.application import Sphinx # NOQA - from sphinx.util.typing import unicode # NOQA logger = logging.getLogger(__name__) @@ -47,7 +46,7 @@ section_template = '<section title="%(title)s" ref="%(ref)s"/>' def render_file(filename, **kwargs): - # type: (unicode, Any) -> unicode + # type: (str, Any) -> str pathname = os.path.join(package_dir, 'templates', 'qthelp', filename) return SphinxRenderer.render_from_file(pathname, kwargs) @@ -88,7 +87,7 @@ class QtHelpBuilder(StandaloneHTMLBuilder): # self.config.html_style = 'traditional.css' def get_theme_config(self): - # type: () -> Tuple[unicode, Dict] + # type: () -> Tuple[str, Dict] return self.config.qthelp_theme, self.config.qthelp_theme_options def handle_finish(self): @@ -96,7 +95,7 @@ class QtHelpBuilder(StandaloneHTMLBuilder): self.build_qhp(self.outdir, self.config.qthelp_basename) def build_qhp(self, outdir, outname): - # type: (unicode, unicode) -> None + # type: (str, str) -> None logger.info(__('writing project file...')) # sections @@ -170,8 +169,8 @@ class QtHelpBuilder(StandaloneHTMLBuilder): return True def write_toc(self, node, indentlevel=4): - # type: (nodes.Node, int) -> List[unicode] - parts = [] # type: List[unicode] + # type: (nodes.Node, int) -> List[str] + parts = [] # type: List[str] if isinstance(node, nodes.list_item) and self.isdocnode(node): compact_paragraph = cast(addnodes.compact_paragraph, node[0]) reference = cast(nodes.reference, compact_paragraph[0]) @@ -205,7 +204,7 @@ class QtHelpBuilder(StandaloneHTMLBuilder): return parts def keyword_item(self, name, ref): - # type: (unicode, Any) -> unicode + # type: (str, Any) -> str matchobj = _idpattern.match(name) if matchobj: groupdict = matchobj.groupdict() @@ -228,8 +227,8 @@ class QtHelpBuilder(StandaloneHTMLBuilder): return item def build_keywords(self, title, refs, subitems): - # type: (unicode, List[Any], Any) -> List[unicode] - keywords = [] # type: List[unicode] + # type: (str, List[Any], Any) -> List[str] + keywords = [] # type: List[str] # if len(refs) == 0: # XXX # write_param('See Also', title) @@ -251,7 +250,7 @@ class QtHelpBuilder(StandaloneHTMLBuilder): return keywords def get_project_files(self, outdir): - # type: (unicode) -> List[unicode] + # type: (str) -> List[str] if not outdir.endswith(os.sep): outdir += os.sep olen = len(outdir) @@ -269,7 +268,7 @@ class QtHelpBuilder(StandaloneHTMLBuilder): def setup(app): - # type: (Sphinx) -> Dict[unicode, Any] + # type: (Sphinx) -> Dict[str, Any] app.setup_extension('sphinx.builders.html') app.add_builder(QtHelpBuilder) diff --git a/sphinx/builders/texinfo.py b/sphinx/builders/texinfo.py index 82a1b8f3d..3413810c9 100644 --- a/sphinx/builders/texinfo.py +++ b/sphinx/builders/texinfo.py @@ -36,7 +36,6 @@ if False: from sphinx.application import Sphinx # NOQA from sphinx.config import Config # NOQA from typing import Any, Dict, Iterable, List, Tuple, Union # NOQA - from sphinx.util.typing import unicode # NOQA logger = logging.getLogger(__name__) @@ -61,22 +60,22 @@ class TexinfoBuilder(Builder): def init(self): # type: () -> None - self.docnames = [] # type: Iterable[unicode] - self.document_data = [] # type: List[Tuple[unicode, unicode, unicode, unicode, unicode, unicode, unicode, bool]] # NOQA + self.docnames = [] # type: Iterable[str] + self.document_data = [] # type: List[Tuple[str, str, str, str, str, str, str, bool]] def get_outdated_docs(self): - # type: () -> Union[unicode, List[unicode]] + # type: () -> Union[str, List[str]] return 'all documents' # for now def get_target_uri(self, docname, typ=None): - # type: (unicode, unicode) -> unicode + # type: (str, str) -> str if docname not in self.docnames: raise NoUri else: return '%' + docname def get_relative_uri(self, from_, to, typ=None): - # type: (unicode, unicode, unicode) -> unicode + # type: (str, str, str) -> str # ignore source path return self.get_target_uri(to, typ) @@ -88,7 +87,7 @@ class TexinfoBuilder(Builder): 'will be written')) return # assign subdirs to titles - self.titles = [] # type: List[Tuple[unicode, unicode]] + self.titles = [] # type: List[Tuple[str, str]] for entry in preliminary_document_data: docname = entry[0] if docname not in self.env.all_docs: @@ -106,7 +105,7 @@ class TexinfoBuilder(Builder): for entry in self.document_data: docname, targetname, title, author = entry[:4] targetname += '.texi' - direntry = description = category = '' # type: unicode + direntry = description = category = '' if len(entry) > 6: direntry, description, category = entry[4:7] toctree_only = False @@ -139,7 +138,7 @@ class TexinfoBuilder(Builder): logger.info(__("done")) def assemble_doctree(self, indexfile, toctree_only, appendices): - # type: (unicode, bool, List[unicode]) -> nodes.document + # type: (str, bool, List[str]) -> nodes.document self.docnames = set([indexfile] + appendices) logger.info(darkgreen(indexfile) + " ", nonl=1) tree = self.env.get_doctree(indexfile) @@ -212,7 +211,7 @@ class TexinfoBuilder(Builder): def default_texinfo_documents(config): - # type: (Config) -> List[Tuple[unicode, unicode, unicode, unicode, unicode, unicode, unicode]] # NOQA + # type: (Config) -> List[Tuple[str, str, str, str, str, str, str]] """ Better default texinfo_documents settings. """ filename = make_filename_from_project(config.project) return [(config.master_doc, filename, config.project, config.author, filename, @@ -220,7 +219,7 @@ def default_texinfo_documents(config): def setup(app): - # type: (Sphinx) -> Dict[unicode, Any] + # type: (Sphinx) -> Dict[str, Any] app.add_builder(TexinfoBuilder) app.add_config_value('texinfo_documents', default_texinfo_documents, None) diff --git a/sphinx/builders/text.py b/sphinx/builders/text.py index c79caafbf..8a10be1a6 100644 --- a/sphinx/builders/text.py +++ b/sphinx/builders/text.py @@ -24,7 +24,6 @@ if False: from typing import Any, Dict, Iterator, Set, Tuple # NOQA from docutils import nodes # NOQA from sphinx.application import Sphinx # NOQA - from sphinx.util.typing import unicode # NOQA logger = logging.getLogger(__name__) @@ -38,15 +37,15 @@ class TextBuilder(Builder): allow_parallel = True default_translator_class = TextTranslator - current_docname = None # type: unicode + current_docname = None # type: str def init(self): # type: () -> None # section numbers for headings in the currently visited document - self.secnumbers = {} # type: Dict[unicode, Tuple[int, ...]] + self.secnumbers = {} # type: Dict[str, Tuple[int, ...]] def get_outdated_docs(self): - # type: () -> Iterator[unicode] + # type: () -> Iterator[str] for docname in self.env.found_docs: if docname not in self.env.all_docs: yield docname @@ -65,15 +64,15 @@ class TextBuilder(Builder): pass def get_target_uri(self, docname, typ=None): - # type: (unicode, unicode) -> unicode + # type: (str, str) -> str return '' def prepare_writing(self, docnames): - # type: (Set[unicode]) -> None + # type: (Set[str]) -> None self.writer = TextWriter(self) def write_doc(self, docname, doctree): - # type: (unicode, nodes.Node) -> None + # type: (str, nodes.Node) -> None self.current_docname = docname self.secnumbers = self.env.toc_secnumbers.get(docname, {}) destination = StringOutput(encoding='utf-8') @@ -92,7 +91,7 @@ class TextBuilder(Builder): def setup(app): - # type: (Sphinx) -> Dict[unicode, Any] + # type: (Sphinx) -> Dict[str, Any] app.add_builder(TextBuilder) app.add_config_value('text_sectionchars', '*=-~"+`', 'env') diff --git a/sphinx/builders/websupport.py b/sphinx/builders/websupport.py index 077c1bdc2..ab2bf9eaa 100644 --- a/sphinx/builders/websupport.py +++ b/sphinx/builders/websupport.py @@ -13,11 +13,10 @@ if False: # For type annotation from typing import Any, Dict # NOQA from sphinx.application import Sphinx # NOQA - from sphinx.util.typing import unicode # NOQA def setup(app): - # type: (Sphinx) -> Dict[unicode, Any] + # type: (Sphinx) -> Dict[str, Any] try: from sphinxcontrib.websupport.builder import WebSupportBuilder app.add_builder(WebSupportBuilder) diff --git a/sphinx/builders/xml.py b/sphinx/builders/xml.py index 839f3ea49..b36aede1c 100644 --- a/sphinx/builders/xml.py +++ b/sphinx/builders/xml.py @@ -26,7 +26,6 @@ if False: from typing import Any, Dict, Iterator, Set, Type # NOQA from docutils.writers.xml import BaseXMLWriter # NOQA from sphinx.application import Sphinx # NOQA - from sphinx.util.typing import unicode # NOQA logger = logging.getLogger(__name__) @@ -50,7 +49,7 @@ class XMLBuilder(Builder): pass def get_outdated_docs(self): - # type: () -> Iterator[unicode] + # type: () -> Iterator[str] for docname in self.env.found_docs: if docname not in self.env.all_docs: yield docname @@ -69,15 +68,15 @@ class XMLBuilder(Builder): pass def get_target_uri(self, docname, typ=None): - # type: (unicode, unicode) -> unicode + # type: (str, str) -> str return docname def prepare_writing(self, docnames): - # type: (Set[unicode]) -> None + # type: (Set[str]) -> None self.writer = self._writer_class(self) def write_doc(self, docname, doctree): - # type: (unicode, nodes.Node) -> None + # type: (str, nodes.Node) -> None # work around multiple string % tuple issues in docutils; # replace tuples in attribute values with lists doctree = doctree.deepcopy() @@ -119,7 +118,7 @@ class PseudoXMLBuilder(XMLBuilder): def setup(app): - # type: (Sphinx) -> Dict[unicode, Any] + # type: (Sphinx) -> Dict[str, Any] app.add_builder(XMLBuilder) app.add_builder(PseudoXMLBuilder) |
