diff options
48 files changed, 97 insertions, 119 deletions
diff --git a/sphinx/__init__.py b/sphinx/__init__.py index f03a53b1f..3f4dab272 100644 --- a/sphinx/__init__.py +++ b/sphinx/__init__.py @@ -19,10 +19,6 @@ from subprocess import PIPE from .deprecation import RemovedInNextVersionWarning -if False: - # For type annotation - from typing import Any # NOQA - # by default, all DeprecationWarning under sphinx package will be emit. # Users can avoid this by using environment variable: PYTHONWARNINGS= diff --git a/sphinx/addnodes.py b/sphinx/addnodes.py index 15d5fc46b..8a4171f8f 100644 --- a/sphinx/addnodes.py +++ b/sphinx/addnodes.py @@ -10,14 +10,14 @@ import warnings from typing import Any, Dict, List, Sequence +from typing import TYPE_CHECKING from docutils import nodes from docutils.nodes import Node from sphinx.deprecation import RemovedInSphinx40Warning -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx diff --git a/sphinx/application.py b/sphinx/application.py index a24bd9bb9..6eeb3e183 100644 --- a/sphinx/application.py +++ b/sphinx/application.py @@ -19,6 +19,7 @@ from collections import deque from io import StringIO from os import path from typing import Any, Callable, Dict, IO, List, Tuple, Type, Union +from typing import TYPE_CHECKING from docutils import nodes from docutils.nodes import Element, TextElement @@ -53,9 +54,7 @@ from sphinx.util.osutil import abspath, ensuredir, relpath from sphinx.util.tags import Tags from sphinx.util.typing import RoleFunction, TitleGetter -if False: - # For type annotation - from docutils.nodes import Node # NOQA +if TYPE_CHECKING: from sphinx.builders import Builder diff --git a/sphinx/builders/__init__.py b/sphinx/builders/__init__.py index 1d43080df..327172961 100644 --- a/sphinx/builders/__init__.py +++ b/sphinx/builders/__init__.py @@ -12,6 +12,7 @@ import pickle import time from os import path from typing import Any, Dict, Iterable, List, Sequence, Set, Tuple, Type, Union +from typing import TYPE_CHECKING from docutils import nodes from docutils.nodes import Node @@ -42,8 +43,7 @@ try: except ImportError: multiprocessing = None -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx diff --git a/sphinx/config.py b/sphinx/config.py index 652682168..82cf89a4e 100644 --- a/sphinx/config.py +++ b/sphinx/config.py @@ -17,6 +17,7 @@ from os import path, getenv from typing import ( Any, Callable, Dict, Generator, Iterator, List, NamedTuple, Set, Tuple, Union ) +from typing import TYPE_CHECKING from sphinx.deprecation import RemovedInSphinx40Warning from sphinx.errors import ConfigError, ExtensionError @@ -28,8 +29,7 @@ from sphinx.util.pycompat import execfile_ from sphinx.util.tags import Tags from sphinx.util.typing import NoneType -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx from sphinx.environment import BuildEnvironment diff --git a/sphinx/directives/__init__.py b/sphinx/directives/__init__.py index 0d9490f31..3d528e570 100644 --- a/sphinx/directives/__init__.py +++ b/sphinx/directives/__init__.py @@ -10,7 +10,7 @@ import re from typing import Any, Dict, List, Tuple -from typing import cast +from typing import TYPE_CHECKING, cast from docutils import nodes from docutils.nodes import Node @@ -26,8 +26,7 @@ from sphinx.util.docfields import DocFieldTransformer, Field, TypedField from sphinx.util.docutils import SphinxDirective from sphinx.util.typing import DirectiveOption -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx diff --git a/sphinx/directives/code.py b/sphinx/directives/code.py index 8c19dd0c5..c743ec69e 100644 --- a/sphinx/directives/code.py +++ b/sphinx/directives/code.py @@ -10,6 +10,7 @@ import sys import warnings from difflib import unified_diff from typing import Any, Dict, List, Tuple +from typing import TYPE_CHECKING from docutils import nodes from docutils.nodes import Element, Node @@ -24,8 +25,7 @@ from sphinx.util import logging from sphinx.util import parselinenos from sphinx.util.docutils import SphinxDirective -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx logger = logging.getLogger(__name__) diff --git a/sphinx/directives/other.py b/sphinx/directives/other.py index e4fcc0f5c..949e85235 100644 --- a/sphinx/directives/other.py +++ b/sphinx/directives/other.py @@ -8,7 +8,7 @@ import re from typing import Any, Dict, List -from typing import cast +from typing import TYPE_CHECKING, cast from docutils import nodes from docutils.nodes import Element, Node @@ -26,8 +26,7 @@ from sphinx.util.docutils import SphinxDirective from sphinx.util.matching import Matcher, patfilter from sphinx.util.nodes import explicit_title_re -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx diff --git a/sphinx/directives/patches.py b/sphinx/directives/patches.py index 8a27c0170..c4535e119 100644 --- a/sphinx/directives/patches.py +++ b/sphinx/directives/patches.py @@ -8,7 +8,7 @@ import warnings from typing import Any, Dict, List, Tuple -from typing import cast +from typing import TYPE_CHECKING, cast from docutils import nodes from docutils.nodes import Node, make_id, system_message @@ -22,8 +22,7 @@ from sphinx.domains.math import MathDomain from sphinx.util.docutils import SphinxDirective from sphinx.util.nodes import set_source_info -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx diff --git a/sphinx/domains/__init__.py b/sphinx/domains/__init__.py index 11f0d208c..f1d8523d4 100644 --- a/sphinx/domains/__init__.py +++ b/sphinx/domains/__init__.py @@ -11,7 +11,7 @@ import copy from typing import Any, Callable, Dict, Iterable, List, NamedTuple, Tuple, Type, Union -from typing import cast +from typing import TYPE_CHECKING, cast from docutils import nodes from docutils.nodes import Element, Node, system_message @@ -23,8 +23,7 @@ from sphinx.locale import _ from sphinx.roles import XRefRole from sphinx.util.typing import RoleFunction -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.builders import Builder from sphinx.environment import BuildEnvironment diff --git a/sphinx/domains/changeset.py b/sphinx/domains/changeset.py index 0f982f418..a5a6e51e5 100644 --- a/sphinx/domains/changeset.py +++ b/sphinx/domains/changeset.py @@ -9,7 +9,7 @@ """ from typing import Any, Dict, List, NamedTuple -from typing import cast +from typing import TYPE_CHECKING, cast from docutils import nodes from docutils.nodes import Node @@ -20,8 +20,7 @@ from sphinx.locale import _ from sphinx.util.docutils import SphinxDirective -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx from sphinx.environment import BuildEnvironment diff --git a/sphinx/domains/citation.py b/sphinx/domains/citation.py index 38901867a..f097ecf97 100644 --- a/sphinx/domains/citation.py +++ b/sphinx/domains/citation.py @@ -9,7 +9,7 @@ """ from typing import Any, Dict, List, Set, Tuple -from typing import cast +from typing import TYPE_CHECKING, cast from docutils import nodes from docutils.nodes import Element @@ -21,8 +21,7 @@ from sphinx.transforms import SphinxTransform from sphinx.util import logging from sphinx.util.nodes import copy_source_info, make_refnode -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx from sphinx.builders import Builder from sphinx.environment import BuildEnvironment diff --git a/sphinx/domains/index.py b/sphinx/domains/index.py index 18a256bac..25d681f5e 100644 --- a/sphinx/domains/index.py +++ b/sphinx/domains/index.py @@ -9,6 +9,7 @@ """ from typing import Any, Dict, Iterable, List, Tuple +from typing import TYPE_CHECKING from docutils import nodes from docutils.nodes import Node, system_message @@ -22,8 +23,7 @@ from sphinx.util import split_index_msg from sphinx.util.docutils import ReferenceRole, SphinxDirective from sphinx.util.nodes import process_index_entry -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx diff --git a/sphinx/domains/math.py b/sphinx/domains/math.py index 88b6e4eb8..49c57bda8 100644 --- a/sphinx/domains/math.py +++ b/sphinx/domains/math.py @@ -10,6 +10,7 @@ import warnings from typing import Any, Dict, Iterable, List, Tuple +from typing import TYPE_CHECKING from docutils import nodes from docutils.nodes import Element, Node, system_message @@ -24,8 +25,7 @@ from sphinx.roles import XRefRole from sphinx.util import logging from sphinx.util.nodes import make_refnode -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx from sphinx.builders import Builder diff --git a/sphinx/domains/std.py b/sphinx/domains/std.py index 0fa93dd23..4b3441cfe 100644 --- a/sphinx/domains/std.py +++ b/sphinx/domains/std.py @@ -13,7 +13,7 @@ import unicodedata import warnings from copy import copy from typing import Any, Callable, Dict, Iterable, Iterator, List, Optional, Tuple, Type, Union -from typing import cast +from typing import TYPE_CHECKING, cast from docutils import nodes from docutils.nodes import Element, Node, system_message @@ -32,8 +32,7 @@ from sphinx.util.docutils import SphinxDirective from sphinx.util.nodes import clean_astext, make_id, make_refnode from sphinx.util.typing import RoleFunction -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx from sphinx.builders import Builder from sphinx.environment import BuildEnvironment diff --git a/sphinx/environment/__init__.py b/sphinx/environment/__init__.py index d40a6cbb3..c45e43c23 100644 --- a/sphinx/environment/__init__.py +++ b/sphinx/environment/__init__.py @@ -15,7 +15,7 @@ from collections import defaultdict from copy import copy from os import path from typing import Any, Callable, Dict, Generator, Iterator, List, Set, Tuple, Union -from typing import cast +from typing import TYPE_CHECKING, cast from docutils import nodes from docutils.nodes import Node @@ -36,8 +36,7 @@ from sphinx.util.docutils import LoggingReporter from sphinx.util.i18n import CatalogRepository, docname_to_domain from sphinx.util.nodes import is_translatable -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx from sphinx.builders import Builder diff --git a/sphinx/environment/adapters/toctree.py b/sphinx/environment/adapters/toctree.py index bd3abd9ed..2156156c2 100644 --- a/sphinx/environment/adapters/toctree.py +++ b/sphinx/environment/adapters/toctree.py @@ -9,7 +9,7 @@ """ from typing import Any, Iterable, List -from typing import cast +from typing import TYPE_CHECKING, cast from docutils import nodes from docutils.nodes import Element, Node @@ -20,8 +20,7 @@ from sphinx.util import url_re, logging from sphinx.util.matching import Matcher from sphinx.util.nodes import clean_astext, process_only_nodes -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.builders import Builder from sphinx.environment import BuildEnvironment diff --git a/sphinx/environment/collectors/__init__.py b/sphinx/environment/collectors/__init__.py index 53e3a1c72..2dd33c767 100644 --- a/sphinx/environment/collectors/__init__.py +++ b/sphinx/environment/collectors/__init__.py @@ -9,13 +9,13 @@ """ from typing import Dict, List, Set +from typing import TYPE_CHECKING from docutils import nodes from sphinx.environment import BuildEnvironment -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx diff --git a/sphinx/events.py b/sphinx/events.py index ff49f290c..46759eccd 100644 --- a/sphinx/events.py +++ b/sphinx/events.py @@ -14,14 +14,14 @@ import warnings from collections import defaultdict from operator import attrgetter from typing import Any, Callable, Dict, List, NamedTuple +from typing import TYPE_CHECKING from sphinx.deprecation import RemovedInSphinx40Warning from sphinx.errors import ExtensionError from sphinx.locale import __ from sphinx.util import logging -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx diff --git a/sphinx/ext/autodoc/__init__.py b/sphinx/ext/autodoc/__init__.py index 025d4a091..1eaa81508 100644 --- a/sphinx/ext/autodoc/__init__.py +++ b/sphinx/ext/autodoc/__init__.py @@ -15,6 +15,7 @@ import re import warnings from types import ModuleType from typing import Any, Callable, Dict, Iterator, List, Sequence, Set, Tuple, Type, Union +from typing import TYPE_CHECKING from docutils.statemachine import StringList @@ -34,8 +35,7 @@ from sphinx.util.docstrings import extract_metadata, prepare_docstring from sphinx.util.inspect import getdoc, object_description, safe_getattr, stringify_signature from sphinx.util.typing import stringify as stringify_typehint -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.ext.autodoc.directive import DocumenterBridge diff --git a/sphinx/ext/doctest.py b/sphinx/ext/doctest.py index f20e840ec..687bd6e0a 100644 --- a/sphinx/ext/doctest.py +++ b/sphinx/ext/doctest.py @@ -17,6 +17,7 @@ import warnings from io import StringIO from os import path from typing import Any, Callable, Dict, Iterable, List, Sequence, Set, Tuple, Type +from typing import TYPE_CHECKING from docutils import nodes from docutils.nodes import Element, Node, TextElement @@ -33,8 +34,7 @@ from sphinx.util.console import bold # type: ignore from sphinx.util.docutils import SphinxDirective from sphinx.util.osutil import relpath -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx diff --git a/sphinx/extension.py b/sphinx/extension.py index 45ea46677..af164ab2a 100644 --- a/sphinx/extension.py +++ b/sphinx/extension.py @@ -9,14 +9,14 @@ """ from typing import Any, Dict +from typing import TYPE_CHECKING from sphinx.config import Config from sphinx.errors import VersionRequirementError from sphinx.locale import __ from sphinx.util import logging -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx logger = logging.getLogger(__name__) diff --git a/sphinx/io.py b/sphinx/io.py index 0462afd83..c8dba1fed 100644 --- a/sphinx/io.py +++ b/sphinx/io.py @@ -10,6 +10,7 @@ import codecs import warnings from typing import Any, List, Type +from typing import TYPE_CHECKING from docutils import nodes from docutils.core import Publisher @@ -37,8 +38,7 @@ from sphinx.util import UnicodeDecodeErrorHandler from sphinx.util.docutils import LoggingReporter from sphinx.versioning import UIDTransform -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx diff --git a/sphinx/jinja2glue.py b/sphinx/jinja2glue.py index e943cfb1e..a097888a1 100644 --- a/sphinx/jinja2glue.py +++ b/sphinx/jinja2glue.py @@ -11,6 +11,7 @@ from os import path from pprint import pformat from typing import Any, Callable, Dict, Iterator, List, Tuple, Union +from typing import TYPE_CHECKING from jinja2 import FileSystemLoader, BaseLoader, TemplateNotFound, contextfunction from jinja2.environment import Environment @@ -22,8 +23,7 @@ from sphinx.theming import Theme from sphinx.util import logging from sphinx.util.osutil import mtimes_of_files -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.builders import Builder diff --git a/sphinx/parsers.py b/sphinx/parsers.py index fb6c263c9..635cd6d50 100644 --- a/sphinx/parsers.py +++ b/sphinx/parsers.py @@ -10,6 +10,7 @@ import warnings from typing import Any, Dict, List, Type, Union +from typing import TYPE_CHECKING import docutils.parsers import docutils.parsers.rst @@ -21,8 +22,7 @@ from docutils.transforms.universal import SmartQuotes from sphinx.deprecation import RemovedInSphinx50Warning from sphinx.util.rst import append_epilog, prepend_prolog -if False: - # For type annotation +if TYPE_CHECKING: from docutils.transforms import Transform # NOQA from sphinx.application import Sphinx @@ -70,7 +70,7 @@ class Parser(docutils.parsers.Parser): class RSTParser(docutils.parsers.rst.Parser, Parser): """A reST parser for Sphinx.""" - def get_transforms(self) -> List[Type[Transform]]: + def get_transforms(self) -> List[Type["Transform"]]: """Sphinx's reST parser replaces a transform class for smart-quotes by own's refs: sphinx.io.SphinxStandaloneReader diff --git a/sphinx/project.py b/sphinx/project.py index d63af1fcb..409916608 100644 --- a/sphinx/project.py +++ b/sphinx/project.py @@ -9,6 +9,7 @@ """ import os +from typing import TYPE_CHECKING from sphinx.locale import __ from sphinx.util import get_matching_files @@ -17,9 +18,8 @@ from sphinx.util import path_stabilize from sphinx.util.matching import compile_matchers from sphinx.util.osutil import SEP, relpath -if False: - # For type annotation - from typing import Dict, List, Set # NOQA +if TYPE_CHECKING: + from typing import Dict, List, Set logger = logging.getLogger(__name__) diff --git a/sphinx/registry.py b/sphinx/registry.py index d25c688c4..35d07bf6c 100644 --- a/sphinx/registry.py +++ b/sphinx/registry.py @@ -12,6 +12,7 @@ import traceback from importlib import import_module from types import MethodType from typing import Any, Callable, Dict, Iterator, List, Tuple, Type, Union +from typing import TYPE_CHECKING from docutils import nodes from docutils.io import Input @@ -35,8 +36,7 @@ from sphinx.util import logging from sphinx.util.logging import prefixed_warnings from sphinx.util.typing import RoleFunction, TitleGetter -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx from sphinx.ext.autodoc import Documenter diff --git a/sphinx/roles.py b/sphinx/roles.py index 45a628533..f7c77c449 100644 --- a/sphinx/roles.py +++ b/sphinx/roles.py @@ -11,6 +11,7 @@ import re import warnings from typing import Any, Dict, List, Tuple, Type +from typing import TYPE_CHECKING from docutils import nodes, utils from docutils.nodes import Element, Node, TextElement, system_message @@ -26,8 +27,7 @@ from sphinx.util.nodes import ( ) from sphinx.util.typing import RoleFunction -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx from sphinx.environment import BuildEnvironment diff --git a/sphinx/setup_command.py b/sphinx/setup_command.py index f55158575..fa28c230d 100644 --- a/sphinx/setup_command.py +++ b/sphinx/setup_command.py @@ -16,6 +16,7 @@ import sys from distutils.cmd import Command from distutils.errors import DistutilsOptionError, DistutilsExecError from io import StringIO +from typing import TYPE_CHECKING from sphinx.application import Sphinx from sphinx.cmd.build import handle_exception @@ -23,9 +24,8 @@ from sphinx.util.console import nocolor, color_terminal from sphinx.util.docutils import docutils_namespace, patch_docutils from sphinx.util.osutil import abspath -if False: - # For type annotation - from typing import Any, Dict # NOQA +if TYPE_CHECKING: + from typing import Any, Dict class BuildDoc(Command): diff --git a/sphinx/theming.py b/sphinx/theming.py index 13a895393..2636329a0 100644 --- a/sphinx/theming.py +++ b/sphinx/theming.py @@ -14,6 +14,7 @@ import shutil import tempfile from os import path from typing import Any, Dict, List +from typing import TYPE_CHECKING from zipfile import ZipFile import pkg_resources @@ -24,8 +25,7 @@ from sphinx.locale import __ from sphinx.util import logging from sphinx.util.osutil import ensuredir -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx diff --git a/sphinx/transforms/__init__.py b/sphinx/transforms/__init__.py index a00f04fdf..2185b3de1 100644 --- a/sphinx/transforms/__init__.py +++ b/sphinx/transforms/__init__.py @@ -10,6 +10,7 @@ import re from typing import Any, Dict, Generator, List, Tuple +from typing import TYPE_CHECKING from docutils import nodes from docutils.nodes import Element, Node, Text @@ -28,8 +29,7 @@ from sphinx.util.docutils import new_document from sphinx.util.i18n import format_date from sphinx.util.nodes import NodeMatcher, apply_source_workaround, is_smartquotable -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx from sphinx.domain.std import StandardDomain from sphinx.environment import BuildEnvironment diff --git a/sphinx/transforms/i18n.py b/sphinx/transforms/i18n.py index c889884af..e6a12b962 100644 --- a/sphinx/transforms/i18n.py +++ b/sphinx/transforms/i18n.py @@ -11,6 +11,7 @@ from os import path from textwrap import indent from typing import Any, Dict, List, Tuple, Type, TypeVar +from typing import TYPE_CHECKING from docutils import nodes from docutils.io import StringInput @@ -29,8 +30,7 @@ from sphinx.util.nodes import ( extract_messages, is_pending_meta, traverse_translatable_index, ) -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx diff --git a/sphinx/transforms/references.py b/sphinx/transforms/references.py index e74d9657d..d25c8cbac 100644 --- a/sphinx/transforms/references.py +++ b/sphinx/transforms/references.py @@ -9,14 +9,14 @@ """ from typing import Any, Dict +from typing import TYPE_CHECKING from docutils import nodes from docutils.transforms.references import DanglingReferences, Substitutions from sphinx.transforms import SphinxTransform -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx diff --git a/sphinx/util/__init__.py b/sphinx/util/__init__.py index 186d48d2d..8e1d4df84 100644 --- a/sphinx/util/__init__.py +++ b/sphinx/util/__init__.py @@ -26,6 +26,7 @@ from importlib import import_module from os import path from time import mktime, strptime from typing import Any, Callable, Dict, IO, Iterable, Iterator, List, Pattern, Set, Tuple, Type +from typing import TYPE_CHECKING from urllib.parse import urlsplit, urlunsplit, quote_plus, parse_qsl, urlencode from sphinx.deprecation import RemovedInSphinx40Warning @@ -49,8 +50,7 @@ from sphinx.util.nodes import ( # noqa from sphinx.util.matching import patfilter # noqa -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx diff --git a/sphinx/util/compat.py b/sphinx/util/compat.py index 0135899eb..502edb525 100644 --- a/sphinx/util/compat.py +++ b/sphinx/util/compat.py @@ -11,6 +11,7 @@ import sys import warnings from typing import Any, Dict +from typing import TYPE_CHECKING from docutils.utils import get_source_line @@ -18,8 +19,7 @@ from sphinx import addnodes from sphinx.deprecation import RemovedInSphinx40Warning from sphinx.transforms import SphinxTransform -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx diff --git a/sphinx/util/docfields.py b/sphinx/util/docfields.py index 83eb282ac..561271c4f 100644 --- a/sphinx/util/docfields.py +++ b/sphinx/util/docfields.py @@ -11,7 +11,7 @@ import warnings from typing import Any, Dict, List, Tuple, Type, Union -from typing import cast +from typing import TYPE_CHECKING, cast from docutils import nodes from docutils.nodes import Node @@ -20,8 +20,7 @@ from sphinx import addnodes from sphinx.deprecation import RemovedInSphinx40Warning from sphinx.util.typing import TextlikeNode -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.environment import BuildEnvironment from sphinx.directive import ObjectDescription diff --git a/sphinx/util/docutils.py b/sphinx/util/docutils.py index 32b90a332..f211b5d0d 100644 --- a/sphinx/util/docutils.py +++ b/sphinx/util/docutils.py @@ -16,7 +16,7 @@ from distutils.version import LooseVersion from os import path from types import ModuleType from typing import Any, Callable, Dict, Generator, IO, List, Optional, Set, Tuple, Type -from typing import cast +from typing import TYPE_CHECKING, cast import docutils from docutils import nodes @@ -34,8 +34,7 @@ from sphinx.util.typing import RoleFunction logger = logging.getLogger(__name__) report_re = re.compile('^(.+?:(?:\\d+)?): \\((DEBUG|INFO|WARNING|ERROR|SEVERE)/(\\d+)?\\) ') -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.builders import Builder from sphinx.config import Config from sphinx.environment import BuildEnvironment diff --git a/sphinx/util/fileutil.py b/sphinx/util/fileutil.py index d8e896d48..b3da39b58 100644 --- a/sphinx/util/fileutil.py +++ b/sphinx/util/fileutil.py @@ -11,14 +11,14 @@ import os import posixpath from typing import Dict +from typing import TYPE_CHECKING from docutils.utils import relative_path from sphinx.util.osutil import copyfile, ensuredir from sphinx.util.typing import PathMatcher -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.util.template import BaseRenderer diff --git a/sphinx/util/i18n.py b/sphinx/util/i18n.py index c1da94429..f58b0faaf 100644 --- a/sphinx/util/i18n.py +++ b/sphinx/util/i18n.py @@ -14,6 +14,7 @@ import warnings from datetime import datetime, timezone from os import path from typing import Callable, Generator, List, NamedTuple, Set, Tuple +from typing import TYPE_CHECKING import babel.dates from babel.messages.mofile import write_mo @@ -26,8 +27,7 @@ from sphinx.util import logging from sphinx.util.matching import Matcher from sphinx.util.osutil import SEP, canon_path, relpath -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.environment import BuildEnvironment diff --git a/sphinx/util/inventory.py b/sphinx/util/inventory.py index 9b647ccac..3e5cf19b2 100644 --- a/sphinx/util/inventory.py +++ b/sphinx/util/inventory.py @@ -11,6 +11,7 @@ import os import re import zlib from typing import Callable, IO, Iterator +from typing import TYPE_CHECKING from sphinx.util import logging from sphinx.util.typing import Inventory @@ -19,8 +20,7 @@ from sphinx.util.typing import Inventory BUFSIZE = 16 * 1024 logger = logging.getLogger(__name__) -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.builders import Builder from sphinx.environment import BuildEnvironment diff --git a/sphinx/util/logging.py b/sphinx/util/logging.py index 266e2b0a0..c9085c663 100644 --- a/sphinx/util/logging.py +++ b/sphinx/util/logging.py @@ -13,6 +13,7 @@ import logging.handlers from collections import defaultdict from contextlib import contextmanager from typing import Any, Dict, Generator, IO, List, Tuple, Type, Union +from typing import TYPE_CHECKING from docutils import nodes from docutils.nodes import Node @@ -21,8 +22,7 @@ from docutils.utils import get_source_line from sphinx.errors import SphinxWarning from sphinx.util.console import colorize -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx diff --git a/sphinx/util/nodes.py b/sphinx/util/nodes.py index 6a3c6591d..406511815 100644 --- a/sphinx/util/nodes.py +++ b/sphinx/util/nodes.py @@ -11,7 +11,7 @@ import re import warnings from typing import Any, Callable, Iterable, List, Set, Tuple, Type -from typing import cast +from typing import TYPE_CHECKING, cast from docutils import nodes from docutils.nodes import Element, Node @@ -24,8 +24,7 @@ from sphinx.deprecation import RemovedInSphinx40Warning from sphinx.locale import __ from sphinx.util import logging -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.builders import Builder from sphinx.environment import BuildEnvironment from sphinx.utils.tags import Tags diff --git a/sphinx/versioning.py b/sphinx/versioning.py index 502bf361c..3c6a43c19 100644 --- a/sphinx/versioning.py +++ b/sphinx/versioning.py @@ -13,14 +13,14 @@ from itertools import product, zip_longest from operator import itemgetter from os import path from typing import Any, Dict, Iterator +from typing import TYPE_CHECKING from uuid import uuid4 from docutils.nodes import Node from sphinx.transforms import SphinxTransform -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.application import Sphinx try: diff --git a/sphinx/writers/html.py b/sphinx/writers/html.py index e74c0334f..508e28c22 100644 --- a/sphinx/writers/html.py +++ b/sphinx/writers/html.py @@ -13,7 +13,7 @@ import os import posixpath import warnings from typing import Any, Iterable, Tuple -from typing import cast +from typing import TYPE_CHECKING, cast from docutils import nodes from docutils.nodes import Element, Node, Text @@ -27,8 +27,7 @@ from sphinx.util import logging from sphinx.util.docutils import SphinxTranslator from sphinx.util.images import get_image_size -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.builders.html import StandaloneHTMLBuilder diff --git a/sphinx/writers/html5.py b/sphinx/writers/html5.py index bb8fb66a7..164ec3659 100644 --- a/sphinx/writers/html5.py +++ b/sphinx/writers/html5.py @@ -12,7 +12,7 @@ import os import posixpath import warnings from typing import Any, Iterable, Tuple -from typing import cast +from typing import TYPE_CHECKING, cast from docutils import nodes from docutils.nodes import Element, Node, Text @@ -26,8 +26,7 @@ from sphinx.util import logging from sphinx.util.docutils import SphinxTranslator from sphinx.util.images import get_image_size -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.builders.html import StandaloneHTMLBuilder diff --git a/sphinx/writers/latex.py b/sphinx/writers/latex.py index 9390ba5de..e97271a18 100644 --- a/sphinx/writers/latex.py +++ b/sphinx/writers/latex.py @@ -16,7 +16,7 @@ import warnings from collections import defaultdict from os import path from typing import Any, Dict, Iterable, Iterator, List, Tuple, Set, Union -from typing import cast +from typing import TYPE_CHECKING, cast from docutils import nodes, writers from docutils.nodes import Element, Node, Text @@ -42,8 +42,7 @@ except ImportError: # In Debain/Ubuntu, roman package is provided as roman, not as docutils.utils.roman from roman import toRoman # type: ignore -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.builders.latex import LaTeXBuilder from sphinx.builders.latex.theming import Theme diff --git a/sphinx/writers/texinfo.py b/sphinx/writers/texinfo.py index 9c30244e9..bd30a73ee 100644 --- a/sphinx/writers/texinfo.py +++ b/sphinx/writers/texinfo.py @@ -12,7 +12,7 @@ import re import textwrap from os import path from typing import Any, Dict, Iterable, Iterator, List, Pattern, Set, Tuple, Union -from typing import cast +from typing import TYPE_CHECKING, cast from docutils import nodes, writers from docutils.nodes import Element, Node, Text @@ -27,8 +27,7 @@ from sphinx.util.docutils import SphinxTranslator from sphinx.util.i18n import format_date from sphinx.writers.latex import collected_footnote -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.builders.texinfo import TexinfoBuilder diff --git a/sphinx/writers/text.py b/sphinx/writers/text.py index b2ccd7b89..7ac5f52c6 100644 --- a/sphinx/writers/text.py +++ b/sphinx/writers/text.py @@ -13,7 +13,7 @@ import re import textwrap from itertools import groupby, chain from typing import Any, Dict, Generator, List, Iterable, Optional, Set, Tuple, Union -from typing import cast +from typing import TYPE_CHECKING, cast from docutils import nodes, writers from docutils.nodes import Element, Node, Text @@ -23,8 +23,7 @@ from sphinx import addnodes from sphinx.locale import admonitionlabels, _ from sphinx.util.docutils import SphinxTranslator -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.builders.text import TextBuilder |