diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e7c441f5..23c19961 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -15,6 +15,7 @@ repos: rev: 3.7.9 hooks: - id: flake8 + additional_dependencies: [flake8-typing-imports==1.5.0] - repo: https://github.com/pre-commit/mirrors-autopep8 rev: v1.4.4 hooks: diff --git a/pre_commit/languages/helpers.py b/pre_commit/languages/helpers.py index 3b538291..ba96568c 100644 --- a/pre_commit/languages/helpers.py +++ b/pre_commit/languages/helpers.py @@ -3,11 +3,11 @@ import os import random from typing import Any from typing import List -from typing import NoReturn from typing import Optional from typing import overload from typing import Sequence from typing import Tuple +from typing import TYPE_CHECKING import pre_commit.constants as C from pre_commit.hook import Hook @@ -15,6 +15,9 @@ from pre_commit.prefix import Prefix from pre_commit.util import cmd_output_b from pre_commit.xargs import xargs +if TYPE_CHECKING: + from typing import NoReturn + FIXED_RANDOM_SEED = 1542676186 @@ -65,7 +68,7 @@ def no_install( prefix: Prefix, version: str, additional_dependencies: Sequence[str], -) -> NoReturn: +) -> 'NoReturn': raise AssertionError('This type is not installable') diff --git a/pre_commit/parse_shebang.py b/pre_commit/parse_shebang.py index 3dc8dcae..7b9a0582 100644 --- a/pre_commit/parse_shebang.py +++ b/pre_commit/parse_shebang.py @@ -1,11 +1,14 @@ import os.path from typing import Mapping -from typing import NoReturn from typing import Optional from typing import Tuple +from typing import TYPE_CHECKING from identify.identify import parse_shebang_from_file +if TYPE_CHECKING: + from typing import NoReturn + class ExecutableNotFoundError(OSError): def to_output(self) -> Tuple[int, bytes, None]: @@ -44,7 +47,7 @@ def find_executable( def normexe(orig: str) -> str: - def _error(msg: str) -> NoReturn: + def _error(msg: str) -> 'NoReturn': raise ExecutableNotFoundError(f'Executable `{orig}` {msg}') if os.sep not in orig and (not os.altsep or os.altsep not in orig):