From 9e4dc7f3492ccb4db1dd9e7e4d4584aafde41092 Mon Sep 17 00:00:00 2001 From: Anthony Sottile Date: Wed, 29 Jan 2020 17:40:16 -0800 Subject: [PATCH] Fix pre-commit in python 3.6.0-3.6.1 --- .pre-commit-config.yaml | 1 + pre_commit/languages/helpers.py | 7 +++++-- pre_commit/parse_shebang.py | 7 +++++-- 3 files changed, 11 insertions(+), 4 deletions(-) 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):