summaryrefslogtreecommitdiff
path: root/src/pip
diff options
context:
space:
mode:
authorJon Dufresne <jon.dufresne@gmail.com>2021-01-01 15:16:16 -0800
committerJon Dufresne <jon.dufresne@gmail.com>2021-02-18 19:09:13 -0800
commita6392bd62e7d3b13698c4a4df64e5f51a5c67b9d (patch)
treece6be9c52903db89adafc11af298cd26eee63716 /src/pip
parentf7b5586e71f6c5721bedd801eb5ec862fe7d8917 (diff)
downloadpip-a6392bd62e7d3b13698c4a4df64e5f51a5c67b9d.tar.gz
Replace pip._internal.utils.typing with stdlib typing
The stdlib module has been available since Python 3.5 and the TYPE_CHECKING constant has been available since 3.5.2. By using stdlib, this removes the need for pip to maintain its own Python 2 typing compatibility shim.
Diffstat (limited to 'src/pip')
-rw-r--r--src/pip/__init__.py4
-rwxr-xr-xsrc/pip/_internal/__init__.py5
-rw-r--r--src/pip/_internal/build_env.py4
-rw-r--r--src/pip/_internal/cache.py4
-rw-r--r--src/pip/_internal/cli/autocompletion.py4
-rw-r--r--src/pip/_internal/cli/base_command.py4
-rw-r--r--src/pip/_internal/cli/cmdoptions.py4
-rw-r--r--src/pip/_internal/cli/command_context.py5
-rw-r--r--src/pip/_internal/cli/main.py4
-rw-r--r--src/pip/_internal/cli/main_parser.py4
-rw-r--r--src/pip/_internal/cli/parser.py4
-rw-r--r--src/pip/_internal/cli/progress_bars.py4
-rw-r--r--src/pip/_internal/cli/req_command.py4
-rw-r--r--src/pip/_internal/cli/spinners.py4
-rw-r--r--src/pip/_internal/commands/__init__.py5
-rw-r--r--src/pip/_internal/commands/cache.py4
-rw-r--r--src/pip/_internal/commands/check.py4
-rw-r--r--src/pip/_internal/commands/completion.py4
-rw-r--r--src/pip/_internal/commands/configuration.py4
-rw-r--r--src/pip/_internal/commands/debug.py4
-rw-r--r--src/pip/_internal/commands/download.py4
-rw-r--r--src/pip/_internal/commands/freeze.py4
-rw-r--r--src/pip/_internal/commands/hash.py4
-rw-r--r--src/pip/_internal/commands/help.py5
-rw-r--r--src/pip/_internal/commands/install.py4
-rw-r--r--src/pip/_internal/commands/list.py4
-rw-r--r--src/pip/_internal/commands/search.py4
-rw-r--r--src/pip/_internal/commands/show.py4
-rw-r--r--src/pip/_internal/commands/uninstall.py5
-rw-r--r--src/pip/_internal/commands/wheel.py4
-rw-r--r--src/pip/_internal/configuration.py4
-rw-r--r--src/pip/_internal/distributions/__init__.py5
-rw-r--r--src/pip/_internal/distributions/base.py5
-rw-r--r--src/pip/_internal/distributions/installed.py5
-rw-r--r--src/pip/_internal/distributions/sdist.py4
-rw-r--r--src/pip/_internal/distributions/wheel.py4
-rw-r--r--src/pip/_internal/exceptions.py5
-rw-r--r--src/pip/_internal/index/collector.py4
-rw-r--r--src/pip/_internal/index/package_finder.py4
-rw-r--r--src/pip/_internal/locations.py4
-rw-r--r--src/pip/_internal/main.py4
-rw-r--r--src/pip/_internal/metadata/__init__.py4
-rw-r--r--src/pip/_internal/metadata/base.py5
-rw-r--r--src/pip/_internal/metadata/pkg_resources.py4
-rw-r--r--src/pip/_internal/models/candidate.py5
-rw-r--r--src/pip/_internal/models/direct_url.py7
-rw-r--r--src/pip/_internal/models/format_control.py5
-rw-r--r--src/pip/_internal/models/link.py4
-rw-r--r--src/pip/_internal/models/search_scope.py4
-rw-r--r--src/pip/_internal/models/selection_prefs.py4
-rw-r--r--src/pip/_internal/models/target_python.py4
-rw-r--r--src/pip/_internal/models/wheel.py4
-rw-r--r--src/pip/_internal/network/auth.py4
-rw-r--r--src/pip/_internal/network/cache.py4
-rw-r--r--src/pip/_internal/network/download.py4
-rw-r--r--src/pip/_internal/network/lazy_wheel.py4
-rw-r--r--src/pip/_internal/network/session.py4
-rw-r--r--src/pip/_internal/network/utils.py5
-rw-r--r--src/pip/_internal/network/xmlrpc.py4
-rw-r--r--src/pip/_internal/operations/build/metadata.py4
-rw-r--r--src/pip/_internal/operations/build/metadata_legacy.py4
-rw-r--r--src/pip/_internal/operations/build/wheel.py4
-rw-r--r--src/pip/_internal/operations/build/wheel_legacy.py4
-rw-r--r--src/pip/_internal/operations/check.py4
-rw-r--r--src/pip/_internal/operations/freeze.py4
-rw-r--r--src/pip/_internal/operations/install/editable_legacy.py4
-rw-r--r--src/pip/_internal/operations/install/legacy.py4
-rw-r--r--src/pip/_internal/operations/install/wheel.py10
-rw-r--r--src/pip/_internal/operations/prepare.py4
-rw-r--r--src/pip/_internal/pyproject.py4
-rw-r--r--src/pip/_internal/req/__init__.py4
-rw-r--r--src/pip/_internal/req/constructors.py4
-rw-r--r--src/pip/_internal/req/req_file.py4
-rw-r--r--src/pip/_internal/req/req_install.py4
-rw-r--r--src/pip/_internal/req/req_set.py4
-rw-r--r--src/pip/_internal/req/req_tracker.py4
-rw-r--r--src/pip/_internal/req/req_uninstall.py4
-rw-r--r--src/pip/_internal/resolution/base.py4
-rw-r--r--src/pip/_internal/resolution/legacy/resolver.py4
-rw-r--r--src/pip/_internal/resolution/resolvelib/base.py5
-rw-r--r--src/pip/_internal/resolution/resolvelib/candidates.py4
-rw-r--r--src/pip/_internal/resolution/resolvelib/factory.py4
-rw-r--r--src/pip/_internal/resolution/resolvelib/found_candidates.py5
-rw-r--r--src/pip/_internal/resolution/resolvelib/provider.py6
-rw-r--r--src/pip/_internal/resolution/resolvelib/reporter.py5
-rw-r--r--src/pip/_internal/resolution/resolvelib/requirements.py6
-rw-r--r--src/pip/_internal/resolution/resolvelib/resolver.py4
-rw-r--r--src/pip/_internal/self_outdated_check.py4
-rw-r--r--src/pip/_internal/utils/appdirs.py5
-rw-r--r--src/pip/_internal/utils/compat.py5
-rw-r--r--src/pip/_internal/utils/compatibility_tags.py5
-rw-r--r--src/pip/_internal/utils/deprecation.py4
-rw-r--r--src/pip/_internal/utils/direct_url_helpers.py4
-rw-r--r--src/pip/_internal/utils/distutils_args.py5
-rw-r--r--src/pip/_internal/utils/encoding.py5
-rw-r--r--src/pip/_internal/utils/entrypoints.py4
-rw-r--r--src/pip/_internal/utils/filesystem.py4
-rw-r--r--src/pip/_internal/utils/filetypes.py5
-rw-r--r--src/pip/_internal/utils/glibc.py5
-rw-r--r--src/pip/_internal/utils/hashes.py4
-rw-r--r--src/pip/_internal/utils/logging.py4
-rw-r--r--src/pip/_internal/utils/misc.py4
-rw-r--r--src/pip/_internal/utils/packaging.py4
-rw-r--r--src/pip/_internal/utils/parallel.py5
-rw-r--r--src/pip/_internal/utils/pkg_resources.py6
-rw-r--r--src/pip/_internal/utils/setuptools_build.py5
-rw-r--r--src/pip/_internal/utils/subprocess.py4
-rw-r--r--src/pip/_internal/utils/temp_dir.py4
-rw-r--r--src/pip/_internal/utils/typing.py38
-rw-r--r--src/pip/_internal/utils/unpacking.py4
-rw-r--r--src/pip/_internal/utils/urls.py5
-rw-r--r--src/pip/_internal/utils/virtualenv.py5
-rw-r--r--src/pip/_internal/utils/wheel.py4
-rw-r--r--src/pip/_internal/vcs/__init__.py2
-rw-r--r--src/pip/_internal/vcs/bazaar.py4
-rw-r--r--src/pip/_internal/vcs/git.py4
-rw-r--r--src/pip/_internal/vcs/mercurial.py4
-rw-r--r--src/pip/_internal/vcs/subversion.py4
-rw-r--r--src/pip/_internal/vcs/versioncontrol.py4
-rw-r--r--src/pip/_internal/wheel_builder.py4
120 files changed, 252 insertions, 302 deletions
diff --git a/src/pip/__init__.py b/src/pip/__init__.py
index 9de6dc0f2..97b5e2f88 100644
--- a/src/pip/__init__.py
+++ b/src/pip/__init__.py
@@ -1,6 +1,6 @@
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
+from typing import TYPE_CHECKING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import List, Optional
diff --git a/src/pip/_internal/__init__.py b/src/pip/_internal/__init__.py
index a778e9948..23652fadc 100755
--- a/src/pip/_internal/__init__.py
+++ b/src/pip/_internal/__init__.py
@@ -1,7 +1,8 @@
+from typing import TYPE_CHECKING
+
import pip._internal.utils.inject_securetransport # noqa
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import List, Optional
diff --git a/src/pip/_internal/build_env.py b/src/pip/_internal/build_env.py
index a587d9f7c..9df467f30 100644
--- a/src/pip/_internal/build_env.py
+++ b/src/pip/_internal/build_env.py
@@ -8,6 +8,7 @@ import textwrap
from collections import OrderedDict
from distutils.sysconfig import get_python_lib
from sysconfig import get_paths
+from typing import TYPE_CHECKING
from pip._vendor.pkg_resources import Requirement, VersionConflict, WorkingSet
@@ -15,9 +16,8 @@ from pip import __file__ as pip_location
from pip._internal.cli.spinners import open_spinner
from pip._internal.utils.subprocess import call_subprocess
from pip._internal.utils.temp_dir import TempDirectory, tempdir_kinds
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from types import TracebackType
from typing import Iterable, List, Optional, Set, Tuple, Type
diff --git a/src/pip/_internal/cache.py b/src/pip/_internal/cache.py
index 5e7db9c1f..83ea57ad4 100644
--- a/src/pip/_internal/cache.py
+++ b/src/pip/_internal/cache.py
@@ -5,6 +5,7 @@ import hashlib
import json
import logging
import os
+from typing import TYPE_CHECKING
from pip._vendor.packaging.tags import interpreter_name, interpreter_version
from pip._vendor.packaging.utils import canonicalize_name
@@ -13,10 +14,9 @@ from pip._internal.exceptions import InvalidWheelFilename
from pip._internal.models.link import Link
from pip._internal.models.wheel import Wheel
from pip._internal.utils.temp_dir import TempDirectory, tempdir_kinds
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from pip._internal.utils.urls import path_to_url
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Any, Dict, List, Optional, Set
from pip._vendor.packaging.tags import Tag
diff --git a/src/pip/_internal/cli/autocompletion.py b/src/pip/_internal/cli/autocompletion.py
index 329de6025..3b4fc339e 100644
--- a/src/pip/_internal/cli/autocompletion.py
+++ b/src/pip/_internal/cli/autocompletion.py
@@ -5,13 +5,13 @@ import optparse
import os
import sys
from itertools import chain
+from typing import TYPE_CHECKING
from pip._internal.cli.main_parser import create_main_parser
from pip._internal.commands import commands_dict, create_command
from pip._internal.utils.misc import get_installed_distributions
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Any, Iterable, List, Optional
diff --git a/src/pip/_internal/cli/base_command.py b/src/pip/_internal/cli/base_command.py
index 108435a84..380ba8a71 100644
--- a/src/pip/_internal/cli/base_command.py
+++ b/src/pip/_internal/cli/base_command.py
@@ -6,6 +6,7 @@ import optparse
import os
import sys
import traceback
+from typing import TYPE_CHECKING
from pip._internal.cli import cmdoptions
from pip._internal.cli.command_context import CommandContextMixIn
@@ -29,10 +30,9 @@ from pip._internal.utils.filesystem import check_path_owner
from pip._internal.utils.logging import BrokenStdoutLoggingError, setup_logging
from pip._internal.utils.misc import get_prog, normalize_path
from pip._internal.utils.temp_dir import global_tempdir_manager, tempdir_registry
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from pip._internal.utils.virtualenv import running_under_virtualenv
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from optparse import Values
from typing import Any, List, Optional, Tuple
diff --git a/src/pip/_internal/cli/cmdoptions.py b/src/pip/_internal/cli/cmdoptions.py
index 663143950..bcecf6748 100644
--- a/src/pip/_internal/cli/cmdoptions.py
+++ b/src/pip/_internal/cli/cmdoptions.py
@@ -16,6 +16,7 @@ import warnings
from functools import partial
from optparse import SUPPRESS_HELP, Option, OptionGroup
from textwrap import dedent
+from typing import TYPE_CHECKING
from pip._vendor.packaging.utils import canonicalize_name
@@ -27,9 +28,8 @@ from pip._internal.models.index import PyPI
from pip._internal.models.target_python import TargetPython
from pip._internal.utils.hashes import STRONG_HASHES
from pip._internal.utils.misc import strtobool
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from optparse import OptionParser, Values
from typing import Any, Callable, Dict, Optional, Tuple
diff --git a/src/pip/_internal/cli/command_context.py b/src/pip/_internal/cli/command_context.py
index ade14f2f6..d04b35db4 100644
--- a/src/pip/_internal/cli/command_context.py
+++ b/src/pip/_internal/cli/command_context.py
@@ -1,10 +1,9 @@
from contextlib import contextmanager
+from typing import TYPE_CHECKING
from pip._vendor.contextlib2 import ExitStack
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import ContextManager, Iterator, TypeVar
_T = TypeVar('_T', covariant=True)
diff --git a/src/pip/_internal/cli/main.py b/src/pip/_internal/cli/main.py
index ed5907307..64210aeba 100644
--- a/src/pip/_internal/cli/main.py
+++ b/src/pip/_internal/cli/main.py
@@ -4,15 +4,15 @@ import locale
import logging
import os
import sys
+from typing import TYPE_CHECKING
from pip._internal.cli.autocompletion import autocomplete
from pip._internal.cli.main_parser import parse_command
from pip._internal.commands import create_command
from pip._internal.exceptions import PipError
from pip._internal.utils import deprecation
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import List, Optional
logger = logging.getLogger(__name__)
diff --git a/src/pip/_internal/cli/main_parser.py b/src/pip/_internal/cli/main_parser.py
index 7351cdda0..1ad8d7de3 100644
--- a/src/pip/_internal/cli/main_parser.py
+++ b/src/pip/_internal/cli/main_parser.py
@@ -3,15 +3,15 @@
import os
import sys
+from typing import TYPE_CHECKING
from pip._internal.cli import cmdoptions
from pip._internal.cli.parser import ConfigOptionParser, UpdatingDefaultsHelpFormatter
from pip._internal.commands import commands_dict, get_similar_commands
from pip._internal.exceptions import CommandError
from pip._internal.utils.misc import get_pip_version, get_prog
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import List, Tuple
diff --git a/src/pip/_internal/cli/parser.py b/src/pip/_internal/cli/parser.py
index 89591fa7f..d5389a9a1 100644
--- a/src/pip/_internal/cli/parser.py
+++ b/src/pip/_internal/cli/parser.py
@@ -8,15 +8,15 @@ import optparse
import shutil
import sys
import textwrap
+from typing import TYPE_CHECKING
from pip._vendor.contextlib2 import suppress
from pip._internal.cli.status_codes import UNKNOWN_ERROR
from pip._internal.configuration import Configuration, ConfigurationError
from pip._internal.utils.misc import redact_auth_from_url, strtobool
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Any
logger = logging.getLogger(__name__)
diff --git a/src/pip/_internal/cli/progress_bars.py b/src/pip/_internal/cli/progress_bars.py
index 59b01a6d0..2d3847082 100644
--- a/src/pip/_internal/cli/progress_bars.py
+++ b/src/pip/_internal/cli/progress_bars.py
@@ -1,6 +1,7 @@
import itertools
import sys
from signal import SIGINT, default_int_handler, signal
+from typing import TYPE_CHECKING
from pip._vendor.progress.bar import Bar, FillingCirclesBar, IncrementalBar
from pip._vendor.progress.spinner import Spinner
@@ -8,9 +9,8 @@ from pip._vendor.progress.spinner import Spinner
from pip._internal.utils.compat import WINDOWS
from pip._internal.utils.logging import get_indentation
from pip._internal.utils.misc import format_size
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Any, Dict, List
try:
diff --git a/src/pip/_internal/cli/req_command.py b/src/pip/_internal/cli/req_command.py
index 468b3ccea..436cd8dda 100644
--- a/src/pip/_internal/cli/req_command.py
+++ b/src/pip/_internal/cli/req_command.py
@@ -8,6 +8,7 @@ PackageFinder machinery and all its vendored dependencies, etc.
import logging
import os
from functools import partial
+from typing import TYPE_CHECKING
from pip._internal.cli import cmdoptions
from pip._internal.cli.base_command import Command
@@ -27,9 +28,8 @@ from pip._internal.req.constructors import (
from pip._internal.req.req_file import parse_requirements
from pip._internal.self_outdated_check import pip_self_version_check
from pip._internal.utils.temp_dir import tempdir_kinds
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from optparse import Values
from typing import Any, List, Optional, Tuple
diff --git a/src/pip/_internal/cli/spinners.py b/src/pip/_internal/cli/spinners.py
index 05ec2dcc7..d55434e60 100644
--- a/src/pip/_internal/cli/spinners.py
+++ b/src/pip/_internal/cli/spinners.py
@@ -3,14 +3,14 @@ import itertools
import logging
import sys
import time
+from typing import TYPE_CHECKING
from pip._vendor.progress import HIDE_CURSOR, SHOW_CURSOR
from pip._internal.utils.compat import WINDOWS
from pip._internal.utils.logging import get_indentation
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import IO, Iterator
logger = logging.getLogger(__name__)
diff --git a/src/pip/_internal/commands/__init__.py b/src/pip/_internal/commands/__init__.py
index f2411201c..3037e9da8 100644
--- a/src/pip/_internal/commands/__init__.py
+++ b/src/pip/_internal/commands/__init__.py
@@ -4,10 +4,9 @@ Package containing all pip commands
import importlib
from collections import OrderedDict, namedtuple
+from typing import TYPE_CHECKING
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Any, Optional
from pip._internal.cli.base_command import Command
diff --git a/src/pip/_internal/commands/cache.py b/src/pip/_internal/commands/cache.py
index d5ac45ad7..4f746dd98 100644
--- a/src/pip/_internal/commands/cache.py
+++ b/src/pip/_internal/commands/cache.py
@@ -1,14 +1,14 @@
import logging
import os
import textwrap
+from typing import TYPE_CHECKING
import pip._internal.utils.filesystem as filesystem
from pip._internal.cli.base_command import Command
from pip._internal.cli.status_codes import ERROR, SUCCESS
from pip._internal.exceptions import CommandError, PipError
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from optparse import Values
from typing import Any, List
diff --git a/src/pip/_internal/commands/check.py b/src/pip/_internal/commands/check.py
index e066bb63c..5bc07cb7e 100644
--- a/src/pip/_internal/commands/check.py
+++ b/src/pip/_internal/commands/check.py
@@ -1,4 +1,5 @@
import logging
+from typing import TYPE_CHECKING
from pip._internal.cli.base_command import Command
from pip._internal.cli.status_codes import ERROR, SUCCESS
@@ -7,11 +8,10 @@ from pip._internal.operations.check import (
create_package_set_from_installed,
)
from pip._internal.utils.misc import write_output
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
logger = logging.getLogger(__name__)
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from optparse import Values
from typing import Any, List
diff --git a/src/pip/_internal/commands/completion.py b/src/pip/_internal/commands/completion.py
index 2c19d5686..ca3360752 100644
--- a/src/pip/_internal/commands/completion.py
+++ b/src/pip/_internal/commands/completion.py
@@ -1,12 +1,12 @@
import sys
import textwrap
+from typing import TYPE_CHECKING
from pip._internal.cli.base_command import Command
from pip._internal.cli.status_codes import SUCCESS
from pip._internal.utils.misc import get_prog
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from optparse import Values
from typing import List
diff --git a/src/pip/_internal/commands/configuration.py b/src/pip/_internal/commands/configuration.py
index a440a2b17..8cf034aaf 100644
--- a/src/pip/_internal/commands/configuration.py
+++ b/src/pip/_internal/commands/configuration.py
@@ -1,6 +1,7 @@
import logging
import os
import subprocess
+from typing import TYPE_CHECKING
from pip._internal.cli.base_command import Command
from pip._internal.cli.status_codes import ERROR, SUCCESS
@@ -8,9 +9,8 @@ from pip._internal.configuration import Configuration, get_configuration_files,
from pip._internal.exceptions import PipError
from pip._internal.utils.logging import indent_log
from pip._internal.utils.misc import get_prog, write_output
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from optparse import Values
from typing import Any, List, Optional
diff --git a/src/pip/_internal/commands/debug.py b/src/pip/_internal/commands/debug.py
index c1af3630e..15c66fd53 100644
--- a/src/pip/_internal/commands/debug.py
+++ b/src/pip/_internal/commands/debug.py
@@ -2,6 +2,7 @@ import locale
import logging
import os
import sys
+from typing import TYPE_CHECKING
import pip._vendor
from pip._vendor.certifi import where
@@ -15,9 +16,8 @@ from pip._internal.cli.status_codes import SUCCESS
from pip._internal.metadata import get_environment
from pip._internal.utils.logging import indent_log
from pip._internal.utils.misc import get_pip_version
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from optparse import Values
from types import ModuleType
from typing import Dict, List, Optional
diff --git a/src/pip/_internal/commands/download.py b/src/pip/_internal/commands/download.py
index 0f09fcc0e..212b75c7a 100644
--- a/src/pip/_internal/commands/download.py
+++ b/src/pip/_internal/commands/download.py
@@ -1,5 +1,6 @@
import logging
import os
+from typing import TYPE_CHECKING
from pip._internal.cli import cmdoptions
from pip._internal.cli.cmdoptions import make_target_python
@@ -8,9 +9,8 @@ from pip._internal.cli.status_codes import SUCCESS
from pip._internal.req.req_tracker import get_requirement_tracker
from pip._internal.utils.misc import ensure_dir, normalize_path, write_output
from pip._internal.utils.temp_dir import TempDirectory
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from optparse import Values
from typing import List
diff --git a/src/pip/_internal/commands/freeze.py b/src/pip/_internal/commands/freeze.py
index bf20db6c3..6a3288d6b 100644
--- a/src/pip/_internal/commands/freeze.py
+++ b/src/pip/_internal/commands/freeze.py
@@ -1,4 +1,5 @@
import sys
+from typing import TYPE_CHECKING
from pip._internal.cli import cmdoptions
from pip._internal.cli.base_command import Command
@@ -6,11 +7,10 @@ from pip._internal.cli.status_codes import SUCCESS
from pip._internal.operations.freeze import freeze
from pip._internal.utils.compat import stdlib_pkgs
from pip._internal.utils.deprecation import deprecated
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
DEV_PKGS = {'pip', 'setuptools', 'distribute', 'wheel'}
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from optparse import Values
from typing import List
diff --git a/src/pip/_internal/commands/hash.py b/src/pip/_internal/commands/hash.py
index db68f6ce7..ff871b806 100644
--- a/src/pip/_internal/commands/hash.py
+++ b/src/pip/_internal/commands/hash.py
@@ -1,14 +1,14 @@
import hashlib
import logging
import sys
+from typing import TYPE_CHECKING
from pip._internal.cli.base_command import Command
from pip._internal.cli.status_codes import ERROR, SUCCESS
from pip._internal.utils.hashes import FAVORITE_HASH, STRONG_HASHES
from pip._internal.utils.misc import read_chunks, write_output
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from optparse import Values
from typing import List
diff --git a/src/pip/_internal/commands/help.py b/src/pip/_internal/commands/help.py
index 8372ac615..0e1dc81ff 100644
--- a/src/pip/_internal/commands/help.py
+++ b/src/pip/_internal/commands/help.py
@@ -1,9 +1,10 @@
+from typing import TYPE_CHECKING
+
from pip._internal.cli.base_command import Command
from pip._internal.cli.status_codes import SUCCESS
from pip._internal.exceptions import CommandError
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from optparse import Values
from typing import List
diff --git a/src/pip/_internal/commands/install.py b/src/pip/_internal/commands/install.py
index e303adf86..a6989a0f8 100644
--- a/src/pip/_internal/commands/install.py
+++ b/src/pip/_internal/commands/install.py
@@ -5,6 +5,7 @@ import os
import shutil
import site
from optparse import SUPPRESS_HELP
+from typing import TYPE_CHECKING
from pip._vendor import pkg_resources
from pip._vendor.packaging.utils import canonicalize_name
@@ -29,11 +30,10 @@ from pip._internal.utils.misc import (
write_output,
)
from pip._internal.utils.temp_dir import TempDirectory
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from pip._internal.utils.virtualenv import virtualenv_no_global
from pip._internal.wheel_builder import build, should_build_for_install_command
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from optparse import Values
from typing import Iterable, List, Optional
diff --git a/src/pip/_internal/commands/list.py b/src/pip/_internal/commands/list.py
index 89cfb625e..4ee0d54b4 100644
--- a/src/pip/_internal/commands/list.py
+++ b/src/pip/_internal/commands/list.py
@@ -1,5 +1,6 @@
import json
import logging
+from typing import TYPE_CHECKING
from pip._internal.cli import cmdoptions
from pip._internal.cli.req_command import IndexGroupCommand
@@ -17,9 +18,8 @@ from pip._internal.utils.misc import (
)
from pip._internal.utils.packaging import get_installer
from pip._internal.utils.parallel import map_multithread
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from optparse import Values
from typing import Iterator, List, Set, Tuple
diff --git a/src/pip/_internal/commands/search.py b/src/pip/_internal/commands/search.py
index 90a5b512d..1c7fa74ae 100644
--- a/src/pip/_internal/commands/search.py
+++ b/src/pip/_internal/commands/search.py
@@ -3,6 +3,7 @@ import shutil
import sys
import textwrap
from collections import OrderedDict
+from typing import TYPE_CHECKING
from pip._vendor.packaging.version import parse as parse_version
@@ -19,9 +20,8 @@ from pip._internal.models.index import PyPI
from pip._internal.network.xmlrpc import PipXmlrpcTransport
from pip._internal.utils.logging import indent_log
from pip._internal.utils.misc import write_output
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from optparse import Values
from typing import Dict, List, Optional
diff --git a/src/pip/_internal/commands/show.py b/src/pip/_internal/commands/show.py
index a6363cfd0..e4d250290 100644
--- a/src/pip/_internal/commands/show.py
+++ b/src/pip/_internal/commands/show.py
@@ -1,6 +1,7 @@
import logging
import os
from email.parser import FeedParser
+from typing import TYPE_CHECKING
from pip._vendor import pkg_resources
from pip._vendor.packaging.utils import canonicalize_name
@@ -8,9 +9,8 @@ from pip._vendor.packaging.utils import canonicalize_name
from pip._internal.cli.base_command import Command
from pip._internal.cli.status_codes import ERROR, SUCCESS
from pip._internal.utils.misc import write_output
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from optparse import Values
from typing import Dict, Iterator, List
diff --git a/src/pip/_internal/commands/uninstall.py b/src/pip/_internal/commands/uninstall.py
index 6dc96c3d6..5084f32d2 100644
--- a/src/pip/_internal/commands/uninstall.py
+++ b/src/pip/_internal/commands/uninstall.py
@@ -1,3 +1,5 @@
+from typing import TYPE_CHECKING
+
from pip._vendor.packaging.utils import canonicalize_name
from pip._internal.cli.base_command import Command
@@ -10,9 +12,8 @@ from pip._internal.req.constructors import (
install_req_from_parsed_requirement,
)
from pip._internal.utils.misc import protect_pip_from_modification_on_windows
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from optparse import Values
from typing import List
diff --git a/src/pip/_internal/commands/wheel.py b/src/pip/_internal/commands/wheel.py
index 28918fa74..d97ac00c4 100644
--- a/src/pip/_internal/commands/wheel.py
+++ b/src/pip/_internal/commands/wheel.py
@@ -1,6 +1,7 @@
import logging
import os
import shutil
+from typing import TYPE_CHECKING
from pip._internal.cache import WheelCache
from pip._internal.cli import cmdoptions
@@ -10,10 +11,9 @@ from pip._internal.exceptions import CommandError
from pip._internal.req.req_tracker import get_requirement_tracker
from pip._internal.utils.misc import ensure_dir, normalize_path
from pip._internal.utils.temp_dir import TempDirectory
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from pip._internal.wheel_builder import build, should_build_for_wheel_command
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from optparse import Values
from typing import List
diff --git a/src/pip/_internal/configuration.py b/src/pip/_internal/configuration.py
index 9d9a36e80..a52b83a11 100644
--- a/src/pip/_internal/configuration.py
+++ b/src/pip/_internal/configuration.py
@@ -16,6 +16,7 @@ import locale
import logging
import os
import sys
+from typing import TYPE_CHECKING
from pip._internal.exceptions import (
ConfigurationError,
@@ -24,9 +25,8 @@ from pip._internal.exceptions import (
from pip._internal.utils import appdirs
from pip._internal.utils.compat import WINDOWS
from pip._internal.utils.misc import ensure_dir, enum
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Any, Dict, Iterable, List, NewType, Optional, Tuple
RawConfigParser = configparser.RawConfigParser # Shorthand
diff --git a/src/pip/_internal/distributions/__init__.py b/src/pip/_internal/distributions/__init__.py
index d5c1afc5b..d68f358e2 100644
--- a/src/pip/_internal/distributions/__init__.py
+++ b/src/pip/_internal/distributions/__init__.py
@@ -1,8 +1,9 @@
+from typing import TYPE_CHECKING
+
from pip._internal.distributions.sdist import SourceDistribution
from pip._internal.distributions.wheel import WheelDistribution
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from pip._internal.distributions.base import AbstractDistribution
from pip._internal.req.req_install import InstallRequirement
diff --git a/src/pip/_internal/distributions/base.py b/src/pip/_internal/distributions/base.py
index 37db810b3..50a21deff 100644
--- a/src/pip/_internal/distributions/base.py
+++ b/src/pip/_internal/distributions/base.py
@@ -1,8 +1,7 @@
import abc
+from typing import TYPE_CHECKING
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Optional
from pip._vendor.pkg_resources import Distribution
diff --git a/src/pip/_internal/distributions/installed.py b/src/pip/_internal/distributions/installed.py
index a813b211f..70f16499b 100644
--- a/src/pip/_internal/distributions/installed.py
+++ b/src/pip/_internal/distributions/installed.py
@@ -1,7 +1,8 @@
+from typing import TYPE_CHECKING
+
from pip._internal.distributions.base import AbstractDistribution
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Optional
from pip._vendor.pkg_resources import Distribution
diff --git a/src/pip/_internal/distributions/sdist.py b/src/pip/_internal/distributions/sdist.py
index 9b708fdd8..538bbfe8e 100644
--- a/src/pip/_internal/distributions/sdist.py
+++ b/src/pip/_internal/distributions/sdist.py
@@ -1,12 +1,12 @@
import logging
+from typing import TYPE_CHECKING
from pip._internal.build_env import BuildEnvironment
from pip._internal.distributions.base import AbstractDistribution
from pip._internal.exceptions import InstallationError
from pip._internal.utils.subprocess import runner_with_spinner_message
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Set, Tuple
from pip._vendor.pkg_resources import Distribution
diff --git a/src/pip/_internal/distributions/wheel.py b/src/pip/_internal/distributions/wheel.py
index 2adc22862..bc8ab99c0 100644
--- a/src/pip/_internal/distributions/wheel.py
+++ b/src/pip/_internal/distributions/wheel.py
@@ -1,10 +1,10 @@
+from typing import TYPE_CHECKING
from zipfile import ZipFile
from pip._internal.distributions.base import AbstractDistribution
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from pip._internal.utils.wheel import pkg_resources_distribution_for_wheel
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from pip._vendor.pkg_resources import Distribution
from pip._internal.index.package_finder import PackageFinder
diff --git a/src/pip/_internal/exceptions.py b/src/pip/_internal/exceptions.py
index 891f8c376..9af1961ff 100644
--- a/src/pip/_internal/exceptions.py
+++ b/src/pip/_internal/exceptions.py
@@ -1,10 +1,9 @@
"""Exceptions used throughout package"""
from itertools import chain, groupby, repeat
+from typing import TYPE_CHECKING
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
import configparser
from hashlib import _Hash
from typing import Dict, List, Optional
diff --git a/src/pip/_internal/index/collector.py b/src/pip/_internal/index/collector.py
index ee4eb7199..1472c763e 100644
--- a/src/pip/_internal/index/collector.py
+++ b/src/pip/_internal/index/collector.py
@@ -12,6 +12,7 @@ import re
import urllib.parse
import urllib.request
from collections import OrderedDict
+from typing import TYPE_CHECKING
from pip._vendor import html5lib, requests
from pip._vendor.distlib.compat import unescape
@@ -23,11 +24,10 @@ from pip._internal.models.search_scope import SearchScope
from pip._internal.network.utils import raise_for_status
from pip._internal.utils.filetypes import is_archive_file
from pip._internal.utils.misc import pairwise, redact_auth_from_url
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from pip._internal.utils.urls import path_to_url, url_to_path
from pip._internal.vcs import is_url, vcs
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
import xml.etree.ElementTree
from optparse import Values
from typing import (
diff --git a/src/pip/_internal/index/package_finder.py b/src/pip/_internal/index/package_finder.py
index 731188926..5e603ef15 100644
--- a/src/pip/_internal/index/package_finder.py
+++ b/src/pip/_internal/index/package_finder.py
@@ -6,6 +6,7 @@
import functools
import logging
import re
+from typing import TYPE_CHECKING
from pip._vendor.packaging import specifiers
from pip._vendor.packaging.utils import canonicalize_name
@@ -28,11 +29,10 @@ from pip._internal.utils.filetypes import WHEEL_EXTENSION
from pip._internal.utils.logging import indent_log
from pip._internal.utils.misc import build_netloc
from pip._internal.utils.packaging import check_requires_python
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from pip._internal.utils.unpacking import SUPPORTED_EXTENSIONS
from pip._internal.utils.urls import url_to_path
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import FrozenSet, Iterable, List, Optional, Set, Tuple, Union
from pip._vendor.packaging.tags import Tag
diff --git a/src/pip/_internal/locations.py b/src/pip/_internal/locations.py
index 88b9e43cd..4e6b28105 100644
--- a/src/pip/_internal/locations.py
+++ b/src/pip/_internal/locations.py
@@ -10,14 +10,14 @@ import sys
import sysconfig
from distutils.command.install import SCHEME_KEYS
from distutils.command.install import install as distutils_install_command
+from typing import TYPE_CHECKING, cast
from pip._internal.models.scheme import Scheme
from pip._internal.utils import appdirs
from pip._internal.utils.compat import WINDOWS
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING, cast
from pip._internal.utils.virtualenv import running_under_virtualenv
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from distutils.cmd import Command as DistutilsCommand
from typing import Dict, List, Optional, Union
diff --git a/src/pip/_internal/main.py b/src/pip/_internal/main.py
index 1c99c49a1..647cde25f 100644
--- a/src/pip/_internal/main.py
+++ b/src/pip/_internal/main.py
@@ -1,6 +1,6 @@
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
+from typing import TYPE_CHECKING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import List, Optional
diff --git a/src/pip/_internal/metadata/__init__.py b/src/pip/_internal/metadata/__init__.py
index ba0471aa1..ecf2550e1 100644
--- a/src/pip/_internal/metadata/__init__.py
+++ b/src/pip/_internal/metadata/__init__.py
@@ -1,6 +1,6 @@
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
+from typing import TYPE_CHECKING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import List, Optional
from .base import BaseDistribution, BaseEnvironment
diff --git a/src/pip/_internal/metadata/base.py b/src/pip/_internal/metadata/base.py
index fb1f8579a..8ff57374c 100644
--- a/src/pip/_internal/metadata/base.py
+++ b/src/pip/_internal/metadata/base.py
@@ -1,7 +1,8 @@
+from typing import TYPE_CHECKING
+
from pip._internal.utils.misc import stdlib_pkgs # TODO: Move definition here.
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Container, Iterator, List, Optional
from pip._vendor.packaging.version import _BaseVersion
diff --git a/src/pip/_internal/metadata/pkg_resources.py b/src/pip/_internal/metadata/pkg_resources.py
index 48d959a37..ccc3cc57b 100644
--- a/src/pip/_internal/metadata/pkg_resources.py
+++ b/src/pip/_internal/metadata/pkg_resources.py
@@ -1,16 +1,16 @@
import zipfile
+from typing import TYPE_CHECKING
from pip._vendor import pkg_resources
from pip._vendor.packaging.utils import canonicalize_name
from pip._internal.utils import misc # TODO: Move definition here.
from pip._internal.utils.packaging import get_installer
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from pip._internal.utils.wheel import pkg_resources_distribution_for_wheel
from .base import BaseDistribution, BaseEnvironment
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Iterator, List, Optional
from pip._vendor.packaging.version import _BaseVersion
diff --git a/src/pip/_internal/models/candidate.py b/src/pip/_internal/models/candidate.py
index d8a8d42eb..d4eade13e 100644
--- a/src/pip/_internal/models/candidate.py
+++ b/src/pip/_internal/models/candidate.py
@@ -1,9 +1,10 @@
+from typing import TYPE_CHECKING
+
from pip._vendor.packaging.version import parse as parse_version
from pip._internal.utils.models import KeyBasedCompareMixin
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from pip._vendor.packaging.version import _BaseVersion
from pip._internal.models.link import Link
diff --git a/src/pip/_internal/models/direct_url.py b/src/pip/_internal/models/direct_url.py
index a8869bd04..d10a8044d 100644
--- a/src/pip/_internal/models/direct_url.py
+++ b/src/pip/_internal/models/direct_url.py
@@ -2,10 +2,9 @@
import json
import re
import urllib.parse
+from typing import TYPE_CHECKING
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Any, Dict, Iterable, Optional, Type, TypeVar, Union
T = TypeVar("T")
@@ -156,7 +155,7 @@ class DirInfo:
return _filter_none(editable=self.editable or None)
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
InfoType = Union[ArchiveInfo, DirInfo, VcsInfo]
diff --git a/src/pip/_internal/models/format_control.py b/src/pip/_internal/models/format_control.py
index eb46f2535..73d045728 100644
--- a/src/pip/_internal/models/format_control.py
+++ b/src/pip/_internal/models/format_control.py
@@ -1,9 +1,10 @@
+from typing import TYPE_CHECKING
+
from pip._vendor.packaging.utils import canonicalize_name
from pip._internal.exceptions import CommandError
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import FrozenSet, Optional, Set
diff --git a/src/pip/_internal/models/link.py b/src/pip/_internal/models/link.py
index 06a7ceb3f..757f43b90 100644
--- a/src/pip/_internal/models/link.py
+++ b/src/pip/_internal/models/link.py
@@ -2,6 +2,7 @@ import os
import posixpath
import re
import urllib.parse
+from typing import TYPE_CHECKING
from pip._internal.utils.filetypes import WHEEL_EXTENSION
from pip._internal.utils.misc import (
@@ -10,10 +11,9 @@ from pip._internal.utils.misc import (
splitext,
)
from pip._internal.utils.models import KeyBasedCompareMixin
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from pip._internal.utils.urls import path_to_url, url_to_path
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Optional, Tuple, Union
from pip._internal.index.collector import HTMLPage
diff --git a/src/pip/_internal/models/search_scope.py b/src/pip/_internal/models/search_scope.py
index c972f1d17..21907aab7 100644
--- a/src/pip/_internal/models/search_scope.py
+++ b/src/pip/_internal/models/search_scope.py
@@ -3,15 +3,15 @@ import logging
import os
import posixpath
import urllib.parse
+from typing import TYPE_CHECKING
from pip._vendor.packaging.utils import canonicalize_name
from pip._internal.models.index import PyPI
from pip._internal.utils.compat import has_tls
from pip._internal.utils.misc import normalize_path, redact_auth_from_url
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import List
diff --git a/src/pip/_internal/models/selection_prefs.py b/src/pip/_internal/models/selection_prefs.py
index 4d5822268..65750ebb2 100644
--- a/src/pip/_internal/models/selection_prefs.py
+++ b/src/pip/_internal/models/selection_prefs.py
@@ -1,6 +1,6 @@
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
+from typing import TYPE_CHECKING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Optional
from pip._internal.models.format_control import FormatControl
diff --git a/src/pip/_internal/models/target_python.py b/src/pip/_internal/models/target_python.py
index 6e6e8b52e..742c089eb 100644
--- a/src/pip/_internal/models/target_python.py
+++ b/src/pip/_internal/models/target_python.py
@@ -1,10 +1,10 @@
import sys
+from typing import TYPE_CHECKING
from pip._internal.utils.compatibility_tags import get_supported, version_info_to_nodot
from pip._internal.utils.misc import normalize_version_info
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import List, Optional, Tuple
from pip._vendor.packaging.tags import Tag
diff --git a/src/pip/_internal/models/wheel.py b/src/pip/_internal/models/wheel.py
index 5e03f9ff8..484596aaa 100644
--- a/src/pip/_internal/models/wheel.py
+++ b/src/pip/_internal/models/wheel.py
@@ -2,13 +2,13 @@
name that have meaning.
"""
import re
+from typing import TYPE_CHECKING
from pip._vendor.packaging.tags import Tag
from pip._internal.exceptions import InvalidWheelFilename
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import List
diff --git a/src/pip/_internal/network/auth.py b/src/pip/_internal/network/auth.py
index 99fa2bd67..315aca699 100644
--- a/src/pip/_internal/network/auth.py
+++ b/src/pip/_internal/network/auth.py
@@ -6,6 +6,7 @@ providing credentials in the context of network requests.
import logging
import urllib.parse
+from typing import TYPE_CHECKING
from pip._vendor.requests.auth import AuthBase, HTTPBasicAuth
from pip._vendor.requests.utils import get_netrc_auth
@@ -17,9 +18,8 @@ from pip._internal.utils.misc import (
remove_auth_from_url,
split_auth_netloc_from_url,
)
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Any, Dict, List, Optional, Tuple
from pip._vendor.requests.models import Request, Response
diff --git a/src/pip/_internal/network/cache.py b/src/pip/_internal/network/cache.py
index 9253b2047..cdec4949c 100644
--- a/src/pip/_internal/network/cache.py
+++ b/src/pip/_internal/network/cache.py
@@ -3,6 +3,7 @@
import os
from contextlib import contextmanager
+from typing import TYPE_CHECKING
from pip._vendor.cachecontrol.cache import BaseCache
from pip._vendor.cachecontrol.caches import FileCache
@@ -10,9 +11,8 @@ from pip._vendor.requests.models import Response
from pip._internal.utils.filesystem import adjacent_tmp_file, replace
from pip._internal.utils.misc import ensure_dir
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Iterator, Optional
diff --git a/src/pip/_internal/network/download.py b/src/pip/_internal/network/download.py
index a2a0e8e2a..7f02fa6f6 100644
--- a/src/pip/_internal/network/download.py
+++ b/src/pip/_internal/network/download.py
@@ -4,6 +4,7 @@ import cgi
import logging
import mimetypes
import os
+from typing import TYPE_CHECKING
from pip._vendor.requests.models import CONTENT_CHUNK_SIZE
@@ -13,9 +14,8 @@ from pip._internal.models.index import PyPI
from pip._internal.network.cache import is_from_cache
from pip._internal.network.utils import HEADERS, raise_for_status, response_chunks
from pip._internal.utils.misc import format_size, redact_auth_from_url, splitext
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Iterable, Optional, Tuple
from pip._vendor.requests.models import Response
diff --git a/src/pip/_internal/network/lazy_wheel.py b/src/pip/_internal/network/lazy_wheel.py
index c5176a4bb..fd7ab7f03 100644
--- a/src/pip/_internal/network/lazy_wheel.py
+++ b/src/pip/_internal/network/lazy_wheel.py
@@ -5,15 +5,15 @@ __all__ = ['HTTPRangeRequestUnsupported', 'dist_from_wheel_url']
from bisect import bisect_left, bisect_right
from contextlib import contextmanager
from tempfile import NamedTemporaryFile
+from typing import TYPE_CHECKING
from zipfile import BadZipfile, ZipFile
from pip._vendor.requests.models import CONTENT_CHUNK_SIZE
from pip._internal.network.utils import HEADERS, raise_for_status, response_chunks
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from pip._internal.utils.wheel import pkg_resources_distribution_for_wheel
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Any, Dict, Iterator, List, Optional, Tuple
from pip._vendor.pkg_resources import Distribution
diff --git a/src/pip/_internal/network/session.py b/src/pip/_internal/network/session.py
index 1128e6253..83bcecca3 100644
--- a/src/pip/_internal/network/session.py
+++ b/src/pip/_internal/network/session.py
@@ -15,6 +15,7 @@ import platform
import sys
import urllib.parse
import warnings
+from typing import TYPE_CHECKING
from pip._vendor import requests, urllib3
from pip._vendor.cachecontrol import CacheControlAdapter
@@ -35,10 +36,9 @@ from pip._internal.utils.misc import (
get_installed_version,
parse_netloc,
)
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from pip._internal.utils.urls import url_to_path
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Any, Iterator, List, Optional, Sequence, Tuple, Union
from pip._internal.models.link import Link
diff --git a/src/pip/_internal/network/utils.py b/src/pip/_internal/network/utils.py
index f4ff95010..47ece6d13 100644
--- a/src/pip/_internal/network/utils.py
+++ b/src/pip/_internal/network/utils.py
@@ -1,9 +1,10 @@
+from typing import TYPE_CHECKING
+
from pip._vendor.requests.models import CONTENT_CHUNK_SIZE, Response
from pip._internal.exceptions import NetworkConnectionError
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Dict, Iterator
# The following comments and HTTP headers were originally added by
diff --git a/src/pip/_internal/network/xmlrpc.py b/src/pip/_internal/network/xmlrpc.py
index 874904532..d4aa71c09 100644
--- a/src/pip/_internal/network/xmlrpc.py
+++ b/src/pip/_internal/network/xmlrpc.py
@@ -3,6 +3,7 @@
import logging
import urllib.parse
+from typing import TYPE_CHECKING
# NOTE: XMLRPC Client is not annotated in typeshed as on 2017-07-17, which is
# why we ignore the type on this import
@@ -10,9 +11,8 @@ from pip._vendor.six.moves import xmlrpc_client # type: ignore
from pip._internal.exceptions import NetworkConnectionError
from pip._internal.network.utils import raise_for_status
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Dict
from pip._internal.network.session import PipSession
diff --git a/src/pip/_internal/operations/build/metadata.py b/src/pip/_internal/operations/build/metadata.py
index 5709962b0..21f86c8dc 100644
--- a/src/pip/_internal/operations/build/metadata.py
+++ b/src/pip/_internal/operations/build/metadata.py
@@ -2,12 +2,12 @@
"""
import os
+from typing import TYPE_CHECKING
from pip._internal.utils.subprocess import runner_with_spinner_message
from pip._internal.utils.temp_dir import TempDirectory
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from pip._vendor.pep517.wrappers import Pep517HookCaller
from pip._internal.build_env import BuildEnvironment
diff --git a/src/pip/_internal/operations/build/metadata_legacy.py b/src/pip/_internal/operations/build/metadata_legacy.py
index d44589666..a113a4a4e 100644
--- a/src/pip/_internal/operations/build/metadata_legacy.py
+++ b/src/pip/_internal/operations/build/metadata_legacy.py
@@ -3,14 +3,14 @@
import logging
import os
+from typing import TYPE_CHECKING
from pip._internal.exceptions import InstallationError
from pip._internal.utils.setuptools_build import make_setuptools_egg_info_args
from pip._internal.utils.subprocess import call_subprocess
from pip._internal.utils.temp_dir import TempDirectory
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from pip._internal.build_env import BuildEnvironment
logger = logging.getLogger(__name__)
diff --git a/src/pip/_internal/operations/build/wheel.py b/src/pip/_internal/operations/build/wheel.py
index d25f9c42f..9af53caa2 100644
--- a/src/pip/_internal/operations/build/wheel.py
+++ b/src/pip/_internal/operations/build/wheel.py
@@ -1,10 +1,10 @@
import logging
import os
+from typing import TYPE_CHECKING
from pip._internal.utils.subprocess import runner_with_spinner_message
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import List, Optional
from pip._vendor.pep517.wrappers import Pep517HookCaller
diff --git a/src/pip/_internal/operations/build/wheel_legacy.py b/src/pip/_internal/operations/build/wheel_legacy.py
index 82fa44406..0a4a68d20 100644
--- a/src/pip/_internal/operations/build/wheel_legacy.py
+++ b/src/pip/_internal/operations/build/wheel_legacy.py
@@ -1,5 +1,6 @@
import logging
import os.path
+from typing import TYPE_CHECKING
from pip._internal.cli.spinners import open_spinner
from pip._internal.utils.setuptools_build import make_setuptools_bdist_wheel_args
@@ -8,9 +9,8 @@ from pip._internal.utils.subprocess import (
call_subprocess,
format_command_args,
)
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import List, Optional
logger = logging.getLogger(__name__)
diff --git a/src/pip/_internal/operations/check.py b/src/pip/_internal/operations/check.py
index 5dee6bcb4..a3189061c 100644
--- a/src/pip/_internal/operations/check.py
+++ b/src/pip/_internal/operations/check.py
@@ -3,17 +3,17 @@
import logging
from collections import namedtuple
+from typing import TYPE_CHECKING
from pip._vendor.packaging.utils import canonicalize_name
from pip._vendor.pkg_resources import RequirementParseError
from pip._internal.distributions import make_distribution_for_install_requirement
from pip._internal.utils.misc import get_installed_distributions
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
logger = logging.getLogger(__name__)
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Any, Callable, Dict, List, Optional, Set, Tuple
from pip._internal.req.req_install import InstallRequirement
diff --git a/src/pip/_internal/operations/freeze.py b/src/pip/_internal/operations/freeze.py
index 5d63c12fa..b082caa8a 100644
--- a/src/pip/_internal/operations/freeze.py
+++ b/src/pip/_internal/operations/freeze.py
@@ -1,6 +1,7 @@
import collections
import logging
import os
+from typing import TYPE_CHECKING
from pip._vendor.packaging.utils import canonicalize_name
from pip._vendor.pkg_resources import RequirementParseError
@@ -16,9 +17,8 @@ from pip._internal.utils.direct_url_helpers import (
dist_get_direct_url,
)
from pip._internal.utils.misc import dist_is_editable, get_installed_distributions
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import (
Container,
Dict,
diff --git a/src/pip/_internal/operations/install/editable_legacy.py b/src/pip/_internal/operations/install/editable_legacy.py
index a668a61dc..f2ec1f882 100644
--- a/src/pip/_internal/operations/install/editable_legacy.py
+++ b/src/pip/_internal/operations/install/editable_legacy.py
@@ -1,13 +1,13 @@
"""Legacy editable installation process, i.e. `setup.py develop`.
"""
import logging
+from typing import TYPE_CHECKING
from pip._internal.utils.logging import indent_log
from pip._internal.utils.setuptools_build import make_setuptools_develop_args
from pip._internal.utils.subprocess import call_subprocess
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import List, Optional, Sequence
from pip._internal.build_env import BuildEnvironment
diff --git a/src/pip/_internal/operations/install/legacy.py b/src/pip/_internal/operations/install/legacy.py
index 63a693a91..a70be0d22 100644
--- a/src/pip/_internal/operations/install/legacy.py
+++ b/src/pip/_internal/operations/install/legacy.py
@@ -5,6 +5,7 @@ import logging
import os
import sys
from distutils.util import change_root
+from typing import TYPE_CHECKING
from pip._internal.exceptions import InstallationError
from pip._internal.utils.logging import indent_log
@@ -12,9 +13,8 @@ from pip._internal.utils.misc import ensure_dir
from pip._internal.utils.setuptools_build import make_setuptools_install_args
from pip._internal.utils.subprocess import runner_with_spinner_message
from pip._internal.utils.temp_dir import TempDirectory
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import List, Optional, Sequence
from pip._internal.build_env import BuildEnvironment
diff --git a/src/pip/_internal/operations/install/wheel.py b/src/pip/_internal/operations/install/wheel.py
index e3ce62c5c..db72f7111 100644
--- a/src/pip/_internal/operations/install/wheel.py
+++ b/src/pip/_internal/operations/install/wheel.py
@@ -14,6 +14,7 @@ import sys
import warnings
from base64 import urlsafe_b64encode
from itertools import chain, filterfalse, starmap
+from typing import TYPE_CHECKING, cast
from zipfile import ZipFile
from pip._vendor import pkg_resources
@@ -27,7 +28,6 @@ from pip._internal.models.direct_url import DIRECT_URL_METADATA_NAME, DirectUrl
from pip._internal.models.scheme import SCHEME_KEYS
from pip._internal.utils.filesystem import adjacent_tmp_file, replace
from pip._internal.utils.misc import captured_stdout, ensure_dir, hash_file, partition
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from pip._internal.utils.unpacking import (
current_umask,
is_within_directory,
@@ -36,12 +36,7 @@ from pip._internal.utils.unpacking import (
)
from pip._internal.utils.wheel import parse_wheel, pkg_resources_distribution_for_wheel
-# Use the custom cast function at runtime to make cast work,
-# and import typing.cast when performing pre-commit and type
-# checks
-if not MYPY_CHECK_RUNNING:
- from pip._internal.utils.typing import cast
-else:
+if TYPE_CHECKING:
from email.message import Message
from typing import (
IO,
@@ -59,7 +54,6 @@ else:
Set,
Tuple,
Union,
- cast,
)
from zipfile import ZipInfo
diff --git a/src/pip/_internal/operations/prepare.py b/src/pip/_internal/operations/prepare.py
index 715c3debd..e09fa7fb0 100644
--- a/src/pip/_internal/operations/prepare.py
+++ b/src/pip/_internal/operations/prepare.py
@@ -8,6 +8,7 @@ import logging
import mimetypes
import os
import shutil
+from typing import TYPE_CHECKING
from pip._vendor.packaging.utils import canonicalize_name
@@ -33,11 +34,10 @@ from pip._internal.utils.hashes import MissingHashes
from pip._internal.utils.logging import indent_log
from pip._internal.utils.misc import display_path, hide_url, path_to_display, rmtree
from pip._internal.utils.temp_dir import TempDirectory
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from pip._internal.utils.unpacking import unpack_file
from pip._internal.vcs import vcs
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Dict, Iterable, List, Optional, Tuple
from pip._vendor.pkg_resources import Distribution
diff --git a/src/pip/_internal/pyproject.py b/src/pip/_internal/pyproject.py
index 68ca53bf0..fdd289b56 100644
--- a/src/pip/_internal/pyproject.py
+++ b/src/pip/_internal/pyproject.py
@@ -1,13 +1,13 @@
import os
from collections import namedtuple
+from typing import TYPE_CHECKING
from pip._vendor import toml
from pip._vendor.packaging.requirements import InvalidRequirement, Requirement
from pip._internal.exceptions import InstallationError
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Any, List, Optional
diff --git a/src/pip/_internal/req/__init__.py b/src/pip/_internal/req/__init__.py
index 352d8923f..ef6e162a2 100644
--- a/src/pip/_internal/req/__init__.py
+++ b/src/pip/_internal/req/__init__.py
@@ -1,14 +1,14 @@
import collections
import logging
+from typing import TYPE_CHECKING
from pip._internal.utils.logging import indent_log
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from .req_file import parse_requirements
from .req_install import InstallRequirement
from .req_set import RequirementSet
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Iterator, List, Optional, Sequence, Tuple
__all__ = [
diff --git a/src/pip/_internal/req/constructors.py b/src/pip/_internal/req/constructors.py
index cfb1951b6..6a649f0d8 100644
--- a/src/pip/_internal/req/constructors.py
+++ b/src/pip/_internal/req/constructors.py
@@ -11,6 +11,7 @@ InstallRequirement.
import logging
import os
import re
+from typing import TYPE_CHECKING
from pip._vendor.packaging.markers import Marker
from pip._vendor.packaging.requirements import InvalidRequirement, Requirement
@@ -25,11 +26,10 @@ from pip._internal.pyproject import make_pyproject_path
from pip._internal.req.req_install import InstallRequirement
from pip._internal.utils.filetypes import is_archive_file
from pip._internal.utils.misc import is_installable_dir
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from pip._internal.utils.urls import path_to_url
from pip._internal.vcs import is_url, vcs
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Any, Dict, Optional, Set, Tuple, Union
from pip._internal.req.req_file import ParsedRequirement
diff --git a/src/pip/_internal/req/req_file.py b/src/pip/_internal/req/req_file.py
index 716005dc5..a2f87209b 100644
--- a/src/pip/_internal/req/req_file.py
+++ b/src/pip/_internal/req/req_file.py
@@ -7,16 +7,16 @@ import os
import re
import shlex
import urllib.parse
+from typing import TYPE_CHECKING
from pip._internal.cli import cmdoptions
from pip._internal.exceptions import InstallationError, RequirementsFileParseError
from pip._internal.models.search_scope import SearchScope
from pip._internal.network.utils import raise_for_status
from pip._internal.utils.encoding import auto_decode
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from pip._internal.utils.urls import get_url_scheme, url_to_path
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from optparse import Values
from typing import (
Any,
diff --git a/src/pip/_internal/req/req_install.py b/src/pip/_internal/req/req_install.py
index b9562bedc..448563453 100644
--- a/src/pip/_internal/req/req_install.py
+++ b/src/pip/_internal/req/req_install.py
@@ -7,6 +7,7 @@ import shutil
import sys
import uuid
import zipfile
+from typing import TYPE_CHECKING
from pip._vendor import pkg_resources, six
from pip._vendor.packaging.requirements import Requirement
@@ -48,11 +49,10 @@ from pip._internal.utils.misc import (
)
from pip._internal.utils.packaging import get_metadata
from pip._internal.utils.temp_dir import TempDirectory, tempdir_kinds
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from pip._internal.utils.virtualenv import running_under_virtualenv
from pip._internal.vcs import vcs
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Any, Dict, Iterable, List, Optional, Sequence, Union
from pip._vendor.packaging.markers import Marker
diff --git a/src/pip/_internal/req/req_set.py b/src/pip/_internal/req/req_set.py
index fa58be663..c95521832 100644
--- a/src/pip/_internal/req/req_set.py
+++ b/src/pip/_internal/req/req_set.py
@@ -1,14 +1,14 @@
import logging
from collections import OrderedDict
+from typing import TYPE_CHECKING
from pip._vendor.packaging.utils import canonicalize_name
from pip._internal.exceptions import InstallationError
from pip._internal.models.wheel import Wheel
from pip._internal.utils import compatibility_tags
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Dict, Iterable, List, Optional, Tuple
from pip._internal.req.req_install import InstallRequirement
diff --git a/src/pip/_internal/req/req_tracker.py b/src/pip/_internal/req/req_tracker.py
index a6aeb188f..ac4831a84 100644
--- a/src/pip/_internal/req/req_tracker.py
+++ b/src/pip/_internal/req/req_tracker.py
@@ -2,13 +2,13 @@ import contextlib
import hashlib
import logging
import os
+from typing import TYPE_CHECKING
from pip._vendor import contextlib2
from pip._internal.utils.temp_dir import TempDirectory
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from types import TracebackType
from typing import Dict, Iterator, Optional, Set, Type, Union
diff --git a/src/pip/_internal/req/req_uninstall.py b/src/pip/_internal/req/req_uninstall.py
index a37a378dd..d7e28dc00 100644
--- a/src/pip/_internal/req/req_uninstall.py
+++ b/src/pip/_internal/req/req_uninstall.py
@@ -5,6 +5,7 @@ import os
import sys
import sysconfig
from importlib.util import cache_from_source
+from typing import TYPE_CHECKING
from pip._vendor import pkg_resources
@@ -23,9 +24,8 @@ from pip._internal.utils.misc import (
rmtree,
)
from pip._internal.utils.temp_dir import AdjacentTempDirectory, TempDirectory
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import (
Any,
Callable,
diff --git a/src/pip/_internal/resolution/base.py b/src/pip/_internal/resolution/base.py
index f2816ab71..caf4e0d8c 100644
--- a/src/pip/_internal/resolution/base.py
+++ b/src/pip/_internal/resolution/base.py
@@ -1,6 +1,6 @@
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
+from typing import TYPE_CHECKING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Callable, List
from pip._internal.req.req_install import InstallRequirement
diff --git a/src/pip/_internal/resolution/legacy/resolver.py b/src/pip/_internal/resolution/legacy/resolver.py
index 665dba128..8f5378a07 100644
--- a/src/pip/_internal/resolution/legacy/resolver.py
+++ b/src/pip/_internal/resolution/legacy/resolver.py
@@ -18,6 +18,7 @@ import logging
import sys
from collections import defaultdict
from itertools import chain
+from typing import TYPE_CHECKING
from pip._vendor.packaging import specifiers
@@ -35,9 +36,8 @@ from pip._internal.utils.compatibility_tags import get_supported
from pip._internal.utils.logging import indent_log
from pip._internal.utils.misc import dist_in_usersite, normalize_version_info
from pip._internal.utils.packaging import check_requires_python, get_requires_python
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import DefaultDict, List, Optional, Set, Tuple
from pip._vendor.pkg_resources import Distribution
diff --git a/src/pip/_internal/resolution/resolvelib/base.py b/src/pip/_internal/resolution/resolvelib/base.py
index 82c5ec7c7..29d798c30 100644
--- a/src/pip/_internal/resolution/resolvelib/base.py
+++ b/src/pip/_internal/resolution/resolvelib/base.py
@@ -1,11 +1,12 @@
+from typing import TYPE_CHECKING
+
from pip._vendor.packaging.specifiers import SpecifierSet
from pip._vendor.packaging.utils import canonicalize_name
from pip._internal.req.req_install import InstallRequirement
from pip._internal.utils.hashes import Hashes
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import FrozenSet, Iterable, Optional, Tuple
from pip._vendor.packaging.version import _BaseVersion
diff --git a/src/pip/_internal/resolution/resolvelib/candidates.py b/src/pip/_internal/resolution/resolvelib/candidates.py
index 91662b326..2240cac08 100644
--- a/src/pip/_internal/resolution/resolvelib/candidates.py
+++ b/src/pip/_internal/resolution/resolvelib/candidates.py
@@ -1,5 +1,6 @@
import logging
import sys
+from typing import TYPE_CHECKING
from pip._vendor.packaging.specifiers import InvalidSpecifier, SpecifierSet
from pip._vendor.packaging.utils import canonicalize_name
@@ -14,11 +15,10 @@ from pip._internal.req.constructors import (
from pip._internal.req.req_install import InstallRequirement
from pip._internal.utils.misc import dist_is_editable, normalize_version_info
from pip._internal.utils.packaging import get_requires_python
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from .base import Candidate, format_name
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Any, FrozenSet, Iterable, Optional, Tuple, Union
from pip._vendor.packaging.version import _BaseVersion
diff --git a/src/pip/_internal/resolution/resolvelib/factory.py b/src/pip/_internal/resolution/resolvelib/factory.py
index be0729e39..5bfe0cc06 100644
--- a/src/pip/_internal/resolution/resolvelib/factory.py
+++ b/src/pip/_internal/resolution/resolvelib/factory.py
@@ -1,5 +1,6 @@
import functools
import logging
+from typing import TYPE_CHECKING
from pip._vendor.packaging.utils import canonicalize_name
@@ -20,7 +21,6 @@ from pip._internal.utils.misc import (
dist_in_usersite,
get_installed_distributions,
)
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from pip._internal.utils.virtualenv import running_under_virtualenv
from .base import Constraint
@@ -39,7 +39,7 @@ from .requirements import (
UnsatisfiableRequirement,
)
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import (
Dict,
FrozenSet,
diff --git a/src/pip/_internal/resolution/resolvelib/found_candidates.py b/src/pip/_internal/resolution/resolvelib/found_candidates.py
index f11b47603..2a8d58ce2 100644
--- a/src/pip/_internal/resolution/resolvelib/found_candidates.py
+++ b/src/pip/_internal/resolution/resolvelib/found_candidates.py
@@ -9,12 +9,11 @@ something.
"""
import functools
+from typing import TYPE_CHECKING
from pip._vendor.six.moves import collections_abc # type: ignore
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Callable, Iterator, Optional, Set, Tuple
from pip._vendor.packaging.version import _BaseVersion
diff --git a/src/pip/_internal/resolution/resolvelib/provider.py b/src/pip/_internal/resolution/resolvelib/provider.py
index 2ac3933b4..f8632410e 100644
--- a/src/pip/_internal/resolution/resolvelib/provider.py
+++ b/src/pip/_internal/resolution/resolvelib/provider.py
@@ -1,10 +1,10 @@
-from pip._vendor.resolvelib.providers import AbstractProvider
+from typing import TYPE_CHECKING
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
+from pip._vendor.resolvelib.providers import AbstractProvider
from .base import Constraint
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Any, Dict, Iterable, Optional, Sequence, Tuple, Union
from .base import Candidate, Requirement
diff --git a/src/pip/_internal/resolution/resolvelib/reporter.py b/src/pip/_internal/resolution/resolvelib/reporter.py
index d0ef3fadc..6679d73f2 100644
--- a/src/pip/_internal/resolution/resolvelib/reporter.py
+++ b/src/pip/_internal/resolution/resolvelib/reporter.py
@@ -1,11 +1,10 @@
from collections import defaultdict
from logging import getLogger
+from typing import TYPE_CHECKING
from pip._vendor.resolvelib.reporters import BaseReporter
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Any, DefaultDict
from .base import Candidate, Requirement
diff --git a/src/pip/_internal/resolution/resolvelib/requirements.py b/src/pip/_internal/resolution/resolvelib/requirements.py
index 61c81e00e..a2fad4bdb 100644
--- a/src/pip/_internal/resolution/resolvelib/requirements.py
+++ b/src/pip/_internal/resolution/resolvelib/requirements.py
@@ -1,10 +1,10 @@
-from pip._vendor.packaging.utils import canonicalize_name
+from typing import TYPE_CHECKING
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
+from pip._vendor.packaging.utils import canonicalize_name
from .base import Requirement, format_name
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from pip._vendor.packaging.specifiers import SpecifierSet
from pip._internal.req.req_install import InstallRequirement
diff --git a/src/pip/_internal/resolution/resolvelib/resolver.py b/src/pip/_internal/resolution/resolvelib/resolver.py
index d02a49c7d..935723737 100644
--- a/src/pip/_internal/resolution/resolvelib/resolver.py
+++ b/src/pip/_internal/resolution/resolvelib/resolver.py
@@ -1,6 +1,7 @@
import functools
import logging
import os
+from typing import TYPE_CHECKING
from pip._vendor import six
from pip._vendor.packaging.utils import canonicalize_name
@@ -19,12 +20,11 @@ from pip._internal.resolution.resolvelib.reporter import (
from pip._internal.utils.deprecation import deprecated
from pip._internal.utils.filetypes import is_archive_file
from pip._internal.utils.misc import dist_is_editable
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from .base import Constraint
from .factory import Factory
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Dict, List, Optional, Set, Tuple
from pip._vendor.resolvelib.resolvers import Result
diff --git a/src/pip/_internal/self_outdated_check.py b/src/pip/_internal/self_outdated_check.py
index 026378f23..9281636fa 100644
--- a/src/pip/_internal/self_outdated_check.py
+++ b/src/pip/_internal/self_outdated_check.py
@@ -4,6 +4,7 @@ import json
import logging
import os.path
import sys
+from typing import TYPE_CHECKING
from pip._vendor.packaging import version as packaging_version
@@ -13,9 +14,8 @@ from pip._internal.metadata import get_default_environment
from pip._internal.models.selection_prefs import SelectionPreferences
from pip._internal.utils.filesystem import adjacent_tmp_file, check_path_owner, replace
from pip._internal.utils.misc import ensure_dir, get_installed_version
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
import optparse
from typing import Any, Dict
diff --git a/src/pip/_internal/utils/appdirs.py b/src/pip/_internal/utils/appdirs.py
index a0a37be87..55e83e0d6 100644
--- a/src/pip/_internal/utils/appdirs.py
+++ b/src/pip/_internal/utils/appdirs.py
@@ -7,12 +7,11 @@ and eventually drop this after all usages are changed.
"""
import os
+from typing import TYPE_CHECKING
from pip._vendor import appdirs as _appdirs
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import List
diff --git a/src/pip/_internal/utils/compat.py b/src/pip/_internal/utils/compat.py
index 0ae0483c8..0b0599523 100644
--- a/src/pip/_internal/utils/compat.py
+++ b/src/pip/_internal/utils/compat.py
@@ -9,10 +9,9 @@ import locale
import logging
import os
import sys
+from typing import TYPE_CHECKING
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Optional, Union
diff --git a/src/pip/_internal/utils/compatibility_tags.py b/src/pip/_internal/utils/compatibility_tags.py
index ac37c3a17..cfba97a53 100644
--- a/src/pip/_internal/utils/compatibility_tags.py
+++ b/src/pip/_internal/utils/compatibility_tags.py
@@ -2,6 +2,7 @@
"""
import re
+from typing import TYPE_CHECKING
from pip._vendor.packaging.tags import (
Tag,
@@ -13,9 +14,7 @@ from pip._vendor.packaging.tags import (
mac_platforms,
)
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import List, Optional, Tuple
from pip._vendor.packaging.tags import PythonVersion
diff --git a/src/pip/_internal/utils/deprecation.py b/src/pip/_internal/utils/deprecation.py
index 534d3fde8..d4b60ea1a 100644
--- a/src/pip/_internal/utils/deprecation.py
+++ b/src/pip/_internal/utils/deprecation.py
@@ -7,13 +7,13 @@ A module that implements tooling to enable easy warnings about deprecations.
import logging
import warnings
+from typing import TYPE_CHECKING
from pip._vendor.packaging.version import parse
from pip import __version__ as current_version
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Any, Optional
diff --git a/src/pip/_internal/utils/direct_url_helpers.py b/src/pip/_internal/utils/direct_url_helpers.py
index 9598137aa..caf2fa148 100644
--- a/src/pip/_internal/utils/direct_url_helpers.py
+++ b/src/pip/_internal/utils/direct_url_helpers.py
@@ -1,5 +1,6 @@
import json
import logging
+from typing import TYPE_CHECKING
from pip._internal.models.direct_url import (
DIRECT_URL_METADATA_NAME,
@@ -9,10 +10,9 @@ from pip._internal.models.direct_url import (
DirInfo,
VcsInfo,
)
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from pip._internal.vcs import vcs
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Optional
from pip._vendor.pkg_resources import Distribution
diff --git a/src/pip/_internal/utils/distutils_args.py b/src/pip/_internal/utils/distutils_args.py
index e38e402d7..7d3dae785 100644
--- a/src/pip/_internal/utils/distutils_args.py
+++ b/src/pip/_internal/utils/distutils_args.py
@@ -1,9 +1,8 @@
from distutils.errors import DistutilsArgError
from distutils.fancy_getopt import FancyGetopt
+from typing import TYPE_CHECKING
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Dict, List
diff --git a/src/pip/_internal/utils/encoding.py b/src/pip/_internal/utils/encoding.py
index 7df679878..122c4ab29 100644
--- a/src/pip/_internal/utils/encoding.py
+++ b/src/pip/_internal/utils/encoding.py
@@ -2,10 +2,9 @@ import codecs
import locale
import re
import sys
+from typing import TYPE_CHECKING
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import List, Tuple
BOMS = [
diff --git a/src/pip/_internal/utils/entrypoints.py b/src/pip/_internal/utils/entrypoints.py
index 64d1cb2bd..9c0454a62 100644
--- a/src/pip/_internal/utils/entrypoints.py
+++ b/src/pip/_internal/utils/entrypoints.py
@@ -1,9 +1,9 @@
import sys
+from typing import TYPE_CHECKING
from pip._internal.cli.main import main
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import List, Optional
diff --git a/src/pip/_internal/utils/filesystem.py b/src/pip/_internal/utils/filesystem.py
index 1af8c10ea..1a9d952f4 100644
--- a/src/pip/_internal/utils/filesystem.py
+++ b/src/pip/_internal/utils/filesystem.py
@@ -7,6 +7,7 @@ import stat
import sys
from contextlib import contextmanager
from tempfile import NamedTemporaryFile
+from typing import TYPE_CHECKING, cast
# NOTE: retrying is not annotated in typeshed as on 2017-07-17, which is
# why we ignore the type on this import.
@@ -14,9 +15,8 @@ from pip._vendor.retrying import retry # type: ignore
from pip._internal.utils.compat import get_path_uid
from pip._internal.utils.misc import format_size
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING, cast
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Any, BinaryIO, Iterator, List, Union
diff --git a/src/pip/_internal/utils/filetypes.py b/src/pip/_internal/utils/filetypes.py
index 201c6ebbe..440151d5f 100644
--- a/src/pip/_internal/utils/filetypes.py
+++ b/src/pip/_internal/utils/filetypes.py
@@ -1,9 +1,10 @@
"""Filetype information.
"""
+from typing import TYPE_CHECKING
+
from pip._internal.utils.misc import splitext
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Tuple
WHEEL_EXTENSION = '.whl'
diff --git a/src/pip/_internal/utils/glibc.py b/src/pip/_internal/utils/glibc.py
index 819979d80..37caad45e 100644
--- a/src/pip/_internal/utils/glibc.py
+++ b/src/pip/_internal/utils/glibc.py
@@ -3,10 +3,9 @@
import os
import sys
+from typing import TYPE_CHECKING
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Optional, Tuple
diff --git a/src/pip/_internal/utils/hashes.py b/src/pip/_internal/utils/hashes.py
index d5ff90063..612c5e740 100644
--- a/src/pip/_internal/utils/hashes.py
+++ b/src/pip/_internal/utils/hashes.py
@@ -1,10 +1,10 @@
import hashlib
+from typing import TYPE_CHECKING
from pip._internal.exceptions import HashMismatch, HashMissing, InstallationError
from pip._internal.utils.misc import read_chunks
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from hashlib import _Hash
from typing import BinaryIO, Dict, Iterator, List, NoReturn
diff --git a/src/pip/_internal/utils/logging.py b/src/pip/_internal/utils/logging.py
index f82c5d565..82b997628 100644
--- a/src/pip/_internal/utils/logging.py
+++ b/src/pip/_internal/utils/logging.py
@@ -8,13 +8,13 @@ import logging.handlers
import os
import sys
from logging import Filter, getLogger
+from typing import TYPE_CHECKING
from pip._internal.utils.compat import WINDOWS
from pip._internal.utils.deprecation import DEPRECATION_MSG_PREFIX
from pip._internal.utils.misc import ensure_dir
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Any
try:
diff --git a/src/pip/_internal/utils/misc.py b/src/pip/_internal/utils/misc.py
index 809392865..984efbc66 100644
--- a/src/pip/_internal/utils/misc.py
+++ b/src/pip/_internal/utils/misc.py
@@ -16,6 +16,7 @@ import sys
import urllib.parse
from io import StringIO
from itertools import filterfalse, tee, zip_longest
+from typing import TYPE_CHECKING, cast
from pip._vendor import pkg_resources
@@ -27,13 +28,12 @@ from pip import __version__
from pip._internal.exceptions import CommandError
from pip._internal.locations import get_major_minor_version, site_packages, user_site
from pip._internal.utils.compat import WINDOWS, stdlib_pkgs
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING, cast
from pip._internal.utils.virtualenv import (
running_under_virtualenv,
virtualenv_no_global,
)
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import (
Any,
AnyStr,
diff --git a/src/pip/_internal/utils/packaging.py b/src/pip/_internal/utils/packaging.py
index fae06070c..f8de544d3 100644
--- a/src/pip/_internal/utils/packaging.py
+++ b/src/pip/_internal/utils/packaging.py
@@ -1,14 +1,14 @@
import logging
from email.parser import FeedParser
+from typing import TYPE_CHECKING
from pip._vendor import pkg_resources
from pip._vendor.packaging import specifiers, version
from pip._internal.exceptions import NoneMetadataError
from pip._internal.utils.misc import display_path
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from email.message import Message
from typing import Optional, Tuple
diff --git a/src/pip/_internal/utils/parallel.py b/src/pip/_internal/utils/parallel.py
index 57082367e..af5d4a9df 100644
--- a/src/pip/_internal/utils/parallel.py
+++ b/src/pip/_internal/utils/parallel.py
@@ -21,12 +21,11 @@ __all__ = ['map_multiprocess', 'map_multithread']
from contextlib import contextmanager
from multiprocessing import Pool as ProcessPool
from multiprocessing.dummy import Pool as ThreadPool
+from typing import TYPE_CHECKING
from pip._vendor.requests.adapters import DEFAULT_POOLSIZE
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from multiprocessing import pool
from typing import Callable, Iterable, Iterator, TypeVar, Union
diff --git a/src/pip/_internal/utils/pkg_resources.py b/src/pip/_internal/utils/pkg_resources.py
index 816ac1223..913bebd98 100644
--- a/src/pip/_internal/utils/pkg_resources.py
+++ b/src/pip/_internal/utils/pkg_resources.py
@@ -1,8 +1,8 @@
-from pip._vendor.pkg_resources import yield_lines
+from typing import TYPE_CHECKING
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
+from pip._vendor.pkg_resources import yield_lines
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Dict, Iterable, List
diff --git a/src/pip/_internal/utils/setuptools_build.py b/src/pip/_internal/utils/setuptools_build.py
index 2a664b007..49b0f22f5 100644
--- a/src/pip/_internal/utils/setuptools_build.py
+++ b/src/pip/_internal/utils/setuptools_build.py
@@ -1,8 +1,7 @@
import sys
+from typing import TYPE_CHECKING
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import List, Optional, Sequence
# Shim to wrap setup.py invocation with setuptools
diff --git a/src/pip/_internal/utils/subprocess.py b/src/pip/_internal/utils/subprocess.py
index f685b03b3..82bc3987c 100644
--- a/src/pip/_internal/utils/subprocess.py
+++ b/src/pip/_internal/utils/subprocess.py
@@ -2,15 +2,15 @@ import logging
import os
import shlex
import subprocess
+from typing import TYPE_CHECKING
from pip._internal.cli.spinners import SpinnerInterface, open_spinner
from pip._internal.exceptions import InstallationSubprocessError
from pip._internal.utils.compat import console_to_str, str_to_display
from pip._internal.utils.logging import subprocess_logger
from pip._internal.utils.misc import HiddenText, path_to_display
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Any, Callable, Iterable, List, Mapping, Optional, Union
CommandArgs = List[Union[str, HiddenText]]
diff --git a/src/pip/_internal/utils/temp_dir.py b/src/pip/_internal/utils/temp_dir.py
index c7fca502b..562795a5a 100644
--- a/src/pip/_internal/utils/temp_dir.py
+++ b/src/pip/_internal/utils/temp_dir.py
@@ -4,13 +4,13 @@ import logging
import os.path
import tempfile
from contextlib import contextmanager
+from typing import TYPE_CHECKING
from pip._vendor.contextlib2 import ExitStack
from pip._internal.utils.misc import enum, rmtree
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Any, Dict, Iterator, Optional, TypeVar, Union
_T = TypeVar('_T', bound='TempDirectory')
diff --git a/src/pip/_internal/utils/typing.py b/src/pip/_internal/utils/typing.py
deleted file mode 100644
index 8505a29b1..000000000
--- a/src/pip/_internal/utils/typing.py
+++ /dev/null
@@ -1,38 +0,0 @@
-"""For neatly implementing static typing in pip.
-
-`mypy` - the static type analysis tool we use - uses the `typing` module, which
-provides core functionality fundamental to mypy's functioning.
-
-Generally, `typing` would be imported at runtime and used in that fashion -
-it acts as a no-op at runtime and does not have any run-time overhead by
-design.
-
-As it turns out, `typing` is not vendorable - it uses separate sources for
-Python 2/Python 3. Thus, this codebase can not expect it to be present.
-To work around this, mypy allows the typing import to be behind a False-y
-optional to prevent it from running at runtime and type-comments can be used
-to remove the need for the types to be accessible directly during runtime.
-
-This module provides the False-y guard in a nicely named fashion so that a
-curious maintainer can reach here to read this.
-
-In pip, all static-typing related imports should be guarded as follows:
-
- from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-
- if MYPY_CHECK_RUNNING:
- from typing import ...
-
-Ref: https://github.com/python/mypy/issues/3216
-"""
-
-MYPY_CHECK_RUNNING = False
-
-
-if MYPY_CHECK_RUNNING:
- from typing import cast
-else:
- # typing's cast() is needed at runtime, but we don't want to import typing.
- # Thus, we use a dummy no-op version, which we tell mypy to ignore.
- def cast(type_, value): # type: ignore
- return value
diff --git a/src/pip/_internal/utils/unpacking.py b/src/pip/_internal/utils/unpacking.py
index a24d7e557..86c474458 100644
--- a/src/pip/_internal/utils/unpacking.py
+++ b/src/pip/_internal/utils/unpacking.py
@@ -7,6 +7,7 @@ import shutil
import stat
import tarfile
import zipfile
+from typing import TYPE_CHECKING
from pip._internal.exceptions import InstallationError
from pip._internal.utils.filetypes import (
@@ -16,9 +17,8 @@ from pip._internal.utils.filetypes import (
ZIP_EXTENSIONS,
)
from pip._internal.utils.misc import ensure_dir
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Iterable, List, Optional
from zipfile import ZipInfo
diff --git a/src/pip/_internal/utils/urls.py b/src/pip/_internal/utils/urls.py
index 0ef063c21..da8e91a4b 100644
--- a/src/pip/_internal/utils/urls.py
+++ b/src/pip/_internal/utils/urls.py
@@ -2,10 +2,9 @@ import os
import sys
import urllib.parse
import urllib.request
+from typing import TYPE_CHECKING
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Optional
diff --git a/src/pip/_internal/utils/virtualenv.py b/src/pip/_internal/utils/virtualenv.py
index 3086bf2fc..eb91c9071 100644
--- a/src/pip/_internal/utils/virtualenv.py
+++ b/src/pip/_internal/utils/virtualenv.py
@@ -3,10 +3,9 @@ import os
import re
import site
import sys
+from typing import TYPE_CHECKING
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import List, Optional
logger = logging.getLogger(__name__)
diff --git a/src/pip/_internal/utils/wheel.py b/src/pip/_internal/utils/wheel.py
index c84cae36a..65ebf6424 100644
--- a/src/pip/_internal/utils/wheel.py
+++ b/src/pip/_internal/utils/wheel.py
@@ -3,6 +3,7 @@
import logging
from email.parser import Parser
+from typing import TYPE_CHECKING
from zipfile import BadZipFile, ZipFile
from pip._vendor.packaging.utils import canonicalize_name
@@ -10,9 +11,8 @@ from pip._vendor.pkg_resources import DistInfoDistribution
from pip._internal.exceptions import UnsupportedWheel
from pip._internal.utils.pkg_resources import DictMetadata
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from email.message import Message
from typing import Dict, Tuple
diff --git a/src/pip/_internal/vcs/__init__.py b/src/pip/_internal/vcs/__init__.py
index 2a4eb1375..2ed7c177f 100644
--- a/src/pip/_internal/vcs/__init__.py
+++ b/src/pip/_internal/vcs/__init__.py
@@ -1,6 +1,6 @@
# Expose a limited set of classes and functions so callers outside of
# the vcs package don't need to import deeper than `pip._internal.vcs`.
-# (The test directory and imports protected by MYPY_CHECK_RUNNING may
+# (The test directory and imports protected by TYPE_CHECKING may
# still need to import from a vcs sub-package.)
# Import all vcs modules to register each VCS in the VcsSupport object.
import pip._internal.vcs.bazaar
diff --git a/src/pip/_internal/vcs/bazaar.py b/src/pip/_internal/vcs/bazaar.py
index 13d2bc88a..6ccf8df5b 100644
--- a/src/pip/_internal/vcs/bazaar.py
+++ b/src/pip/_internal/vcs/bazaar.py
@@ -1,13 +1,13 @@
import logging
import os
+from typing import TYPE_CHECKING
from pip._internal.utils.misc import display_path, rmtree
from pip._internal.utils.subprocess import make_command
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from pip._internal.utils.urls import path_to_url
from pip._internal.vcs.versioncontrol import RemoteNotFoundError, VersionControl, vcs
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import List, Optional, Tuple
from pip._internal.utils.misc import HiddenText
diff --git a/src/pip/_internal/vcs/git.py b/src/pip/_internal/vcs/git.py
index 846563294..7c7104c9f 100644
--- a/src/pip/_internal/vcs/git.py
+++ b/src/pip/_internal/vcs/git.py
@@ -3,6 +3,7 @@ import os.path
import re
import urllib.parse
import urllib.request
+from typing import TYPE_CHECKING
from pip._vendor.packaging.version import parse as parse_version
@@ -10,7 +11,6 @@ from pip._internal.exceptions import BadCommand, InstallationError
from pip._internal.utils.misc import display_path, hide_url
from pip._internal.utils.subprocess import make_command
from pip._internal.utils.temp_dir import TempDirectory
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from pip._internal.vcs.versioncontrol import (
RemoteNotFoundError,
VersionControl,
@@ -18,7 +18,7 @@ from pip._internal.vcs.versioncontrol import (
vcs,
)
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import List, Optional, Tuple
from pip._vendor.packaging.version import _BaseVersion
diff --git a/src/pip/_internal/vcs/mercurial.py b/src/pip/_internal/vcs/mercurial.py
index 442ff4217..079672191 100644
--- a/src/pip/_internal/vcs/mercurial.py
+++ b/src/pip/_internal/vcs/mercurial.py
@@ -1,12 +1,12 @@
import configparser
import logging
import os
+from typing import TYPE_CHECKING
from pip._internal.exceptions import BadCommand, InstallationError
from pip._internal.utils.misc import display_path
from pip._internal.utils.subprocess import make_command
from pip._internal.utils.temp_dir import TempDirectory
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from pip._internal.utils.urls import path_to_url
from pip._internal.vcs.versioncontrol import (
VersionControl,
@@ -14,7 +14,7 @@ from pip._internal.vcs.versioncontrol import (
vcs,
)
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import List, Optional
from pip._internal.utils.misc import HiddenText
diff --git a/src/pip/_internal/vcs/subversion.py b/src/pip/_internal/vcs/subversion.py
index e93483739..2ddb9c0a1 100644
--- a/src/pip/_internal/vcs/subversion.py
+++ b/src/pip/_internal/vcs/subversion.py
@@ -1,6 +1,7 @@
import logging
import os
import re
+from typing import TYPE_CHECKING
from pip._internal.utils.logging import indent_log
from pip._internal.utils.misc import (
@@ -10,7 +11,6 @@ from pip._internal.utils.misc import (
split_auth_from_netloc,
)
from pip._internal.utils.subprocess import make_command
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from pip._internal.vcs.versioncontrol import RemoteNotFoundError, VersionControl, vcs
_svn_xml_url_re = re.compile('url="([^"]+)"')
@@ -19,7 +19,7 @@ _svn_info_xml_rev_re = re.compile(r'\s*revision="(\d+)"')
_svn_info_xml_url_re = re.compile(r'<url>(.*)</url>')
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import List, Optional, Tuple
from pip._internal.utils.misc import HiddenText
diff --git a/src/pip/_internal/vcs/versioncontrol.py b/src/pip/_internal/vcs/versioncontrol.py
index 218de58a6..84ce0dffc 100644
--- a/src/pip/_internal/vcs/versioncontrol.py
+++ b/src/pip/_internal/vcs/versioncontrol.py
@@ -5,6 +5,7 @@ import os
import shutil
import sys
import urllib.parse
+from typing import TYPE_CHECKING
from pip._vendor import pkg_resources
@@ -18,10 +19,9 @@ from pip._internal.utils.misc import (
rmtree,
)
from pip._internal.utils.subprocess import call_subprocess, make_command
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from pip._internal.utils.urls import get_url_scheme
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import (
Any,
Dict,
diff --git a/src/pip/_internal/wheel_builder.py b/src/pip/_internal/wheel_builder.py
index 9fbb5329f..4b72e5124 100644
--- a/src/pip/_internal/wheel_builder.py
+++ b/src/pip/_internal/wheel_builder.py
@@ -5,6 +5,7 @@ import logging
import os.path
import re
import shutil
+from typing import TYPE_CHECKING
from pip._vendor.packaging.utils import canonicalize_name, canonicalize_version
from pip._vendor.packaging.version import InvalidVersion, Version
@@ -20,11 +21,10 @@ from pip._internal.utils.misc import ensure_dir, hash_file, is_wheel_installed
from pip._internal.utils.setuptools_build import make_setuptools_clean_args
from pip._internal.utils.subprocess import call_subprocess
from pip._internal.utils.temp_dir import TempDirectory
-from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from pip._internal.utils.urls import path_to_url
from pip._internal.vcs import vcs
-if MYPY_CHECK_RUNNING:
+if TYPE_CHECKING:
from typing import Any, Callable, Iterable, List, Optional, Tuple
from pip._internal.cache import WheelCache