summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sphinx/__init__.py4
-rw-r--r--sphinx/addnodes.py4
-rw-r--r--sphinx/application.py5
-rw-r--r--sphinx/builders/__init__.py4
-rw-r--r--sphinx/config.py4
-rw-r--r--sphinx/directives/__init__.py5
-rw-r--r--sphinx/directives/code.py4
-rw-r--r--sphinx/directives/other.py5
-rw-r--r--sphinx/directives/patches.py5
-rw-r--r--sphinx/domains/__init__.py5
-rw-r--r--sphinx/domains/changeset.py5
-rw-r--r--sphinx/domains/citation.py5
-rw-r--r--sphinx/domains/index.py4
-rw-r--r--sphinx/domains/math.py4
-rw-r--r--sphinx/domains/std.py5
-rw-r--r--sphinx/environment/__init__.py5
-rw-r--r--sphinx/environment/adapters/toctree.py5
-rw-r--r--sphinx/environment/collectors/__init__.py4
-rw-r--r--sphinx/events.py4
-rw-r--r--sphinx/ext/autodoc/__init__.py4
-rw-r--r--sphinx/ext/doctest.py4
-rw-r--r--sphinx/extension.py4
-rw-r--r--sphinx/io.py4
-rw-r--r--sphinx/jinja2glue.py4
-rw-r--r--sphinx/parsers.py6
-rw-r--r--sphinx/project.py6
-rw-r--r--sphinx/registry.py4
-rw-r--r--sphinx/roles.py4
-rw-r--r--sphinx/setup_command.py6
-rw-r--r--sphinx/theming.py4
-rw-r--r--sphinx/transforms/__init__.py4
-rw-r--r--sphinx/transforms/i18n.py4
-rw-r--r--sphinx/transforms/references.py4
-rw-r--r--sphinx/util/__init__.py4
-rw-r--r--sphinx/util/compat.py4
-rw-r--r--sphinx/util/docfields.py5
-rw-r--r--sphinx/util/docutils.py5
-rw-r--r--sphinx/util/fileutil.py4
-rw-r--r--sphinx/util/i18n.py4
-rw-r--r--sphinx/util/inventory.py4
-rw-r--r--sphinx/util/logging.py4
-rw-r--r--sphinx/util/nodes.py5
-rw-r--r--sphinx/versioning.py4
-rw-r--r--sphinx/writers/html.py5
-rw-r--r--sphinx/writers/html5.py5
-rw-r--r--sphinx/writers/latex.py5
-rw-r--r--sphinx/writers/texinfo.py5
-rw-r--r--sphinx/writers/text.py5
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