Thanks to visit codestin.com Credit goes to github.com
We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent bcf0230 commit ae34a96Copy full SHA for ae34a96
23 files changed
pre_commit/commands/run.py
@@ -189,7 +189,8 @@ def _run_single_hook(
189
filenames = ()
190
time_before = time.time()
191
language = languages[hook.language]
192
- retcode, out = language.run_hook(hook, filenames, use_color)
+ with language.in_env(hook.prefix, hook.language_version):
193
+ retcode, out = language.run_hook(hook, filenames, use_color)
194
duration = round(time.time() - time_before, 2) or 0
195
diff_after = _get_diff()
196
pre_commit/languages/all.py
@@ -1,5 +1,6 @@
1
from __future__ import annotations
2
3
+from typing import ContextManager
4
from typing import Protocol
5
from typing import Sequence
6
@@ -50,6 +51,14 @@ def install_environment(
50
51
) -> None:
52
...
53
54
+ # modify the environment for hook execution
55
+ def in_env(
56
+ self,
57
+ prefix: Prefix,
58
+ version: str,
59
+ ) -> ContextManager[None]:
60
+ ...
61
+
62
# execute a hook and return the exit code and output
63
def run_hook(
64
self,
pre_commit/languages/conda.py
@@ -40,11 +40,8 @@ def get_env_patch(env: str) -> PatchesT:
40
41
42
@contextlib.contextmanager
43
-def in_env(
44
- prefix: Prefix,
45
- language_version: str,
46
-) -> Generator[None, None, None]:
47
- envdir = helpers.environment_dir(prefix, ENVIRONMENT_DIR, language_version)
+def in_env(prefix: Prefix, version: str) -> Generator[None, None, None]:
+ envdir = helpers.environment_dir(prefix, ENVIRONMENT_DIR, version)
48
with envcontext(get_env_patch(envdir)):
49
yield
@@ -88,5 +85,4 @@ def run_hook(
88
85
# can run them without which is much quicker and produces a better
89
86
# output.
90
87
# cmd = ('conda', 'run', '-p', env_dir) + hook.cmd
91
- with in_env(hook.prefix, hook.language_version):
92
- return helpers.run_xargs(hook, hook.cmd, file_args, color=color)
+ return helpers.run_xargs(hook, hook.cmd, file_args, color=color)
pre_commit/languages/coursier.py
@@ -59,12 +59,9 @@ def get_env_patch(target_dir: str) -> PatchesT: # pragma: win32 no cover
)
-@contextlib.contextmanager
65
66
-) -> Generator[None, None, None]: # pragma: win32 no cover
67
+@contextlib.contextmanager # pragma: win32 no cover
68
69
70
@@ -74,5 +71,4 @@ def run_hook(
74
71
file_args: Sequence[str],
75
72
color: bool,
76
73
) -> tuple[int, bytes]: # pragma: win32 no cover
77
78
pre_commit/languages/dart.py
@@ -7,7 +7,6 @@
7
from typing import Generator
8
9
10
-import pre_commit.constants as C
11
from pre_commit.envcontext import envcontext
12
from pre_commit.envcontext import PatchesT
13
from pre_commit.envcontext import Var
@@ -30,8 +29,8 @@ def get_env_patch(venv: str) -> PatchesT:
30
29
31
32
33
-def in_env(prefix: Prefix) -> Generator[None, None, None]:
34
- envdir = helpers.environment_dir(prefix, ENVIRONMENT_DIR, C.DEFAULT)
35
36
37
@@ -103,5 +102,4 @@ def run_hook(
103
102
104
105
) -> tuple[int, bytes]:
106
- with in_env(hook.prefix):
107
pre_commit/languages/docker.py
@@ -5,7 +5,6 @@
import os
from pre_commit.hook import Hook
from pre_commit.languages import helpers
from pre_commit.prefix import Prefix
@@ -16,6 +15,7 @@
16
15
PRE_COMMIT_LABEL = 'PRE_COMMIT'
17
get_default_version = helpers.basic_get_default_version
18
health_check = helpers.basic_health_check
+in_env = helpers.no_env # no special environment for docker
19
20
21
def _is_in_docker() -> bool:
@@ -94,7 +94,7 @@ def install_environment(
94
helpers.assert_version_default('docker', version)
95
helpers.assert_no_additional_deps('docker', additional_dependencies)
96
97
- directory = helpers.environment_dir(prefix, ENVIRONMENT_DIR, C.DEFAULT)
+ directory = helpers.environment_dir(prefix, ENVIRONMENT_DIR, version)
98
99
# Docker doesn't really have relevant disk environment, but pre-commit
100
# still needs to cleanup its state files on failure
pre_commit/languages/docker_image.py
@@ -10,6 +10,7 @@
install_environment = helpers.no_install
+in_env = helpers.no_env
14
pre_commit/languages/dotnet.py
@@ -9,7 +9,6 @@
@@ -31,8 +30,8 @@ def get_env_patch(venv: str) -> PatchesT:
38
@@ -121,5 +120,4 @@ def run_hook(
121
120
122
123
124
125
pre_commit/languages/fail.py
@@ -9,6 +9,7 @@
pre_commit/languages/golang.py
@@ -164,5 +164,4 @@ def run_hook(
164
165
166
167
168
0 commit comments