Skip to content

Commit c787efd

Browse files
authored
Merge pull request pre-commit#2669 from pre-commit/env_dir
simplify environment_dir
2 parents 10f835c + 05c8911 commit c787efd

File tree

17 files changed

+77
-103
lines changed

17 files changed

+77
-103
lines changed

pre_commit/languages/conda.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,7 @@ def in_env(
4444
prefix: Prefix,
4545
language_version: str,
4646
) -> Generator[None, None, None]:
47-
directory = helpers.environment_dir(ENVIRONMENT_DIR, language_version)
48-
envdir = prefix.path(directory)
47+
envdir = helpers.environment_dir(prefix, ENVIRONMENT_DIR, language_version)
4948
with envcontext(get_env_patch(envdir)):
5049
yield
5150

@@ -65,11 +64,10 @@ def install_environment(
6564
additional_dependencies: Sequence[str],
6665
) -> None:
6766
helpers.assert_version_default('conda', version)
68-
directory = helpers.environment_dir(ENVIRONMENT_DIR, version)
6967

7068
conda_exe = _conda_exe()
7169

72-
env_dir = prefix.path(directory)
70+
env_dir = helpers.environment_dir(prefix, ENVIRONMENT_DIR, version)
7371
cmd_output_b(
7472
conda_exe, 'env', 'create', '-p', env_dir, '--file',
7573
'environment.yml', cwd=prefix.prefix_dir,

pre_commit/languages/coursier.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def install_environment(
3535
'executables in the application search path',
3636
)
3737

38-
envdir = prefix.path(helpers.environment_dir(ENVIRONMENT_DIR, version))
38+
envdir = helpers.environment_dir(prefix, ENVIRONMENT_DIR, version)
3939
channel = prefix.path('.pre-commit-channel')
4040
for app_descriptor in os.listdir(channel):
4141
_, app_file = os.path.split(app_descriptor)
@@ -62,11 +62,10 @@ def get_env_patch(target_dir: str) -> PatchesT: # pragma: win32 no cover
6262
@contextlib.contextmanager
6363
def in_env(
6464
prefix: Prefix,
65+
language_version: str,
6566
) -> Generator[None, None, None]: # pragma: win32 no cover
66-
target_dir = prefix.path(
67-
helpers.environment_dir(ENVIRONMENT_DIR, get_default_version()),
68-
)
69-
with envcontext(get_env_patch(target_dir)):
67+
envdir = helpers.environment_dir(prefix, ENVIRONMENT_DIR, language_version)
68+
with envcontext(get_env_patch(envdir)):
7069
yield
7170

7271

@@ -75,5 +74,5 @@ def run_hook(
7574
file_args: Sequence[str],
7675
color: bool,
7776
) -> tuple[int, bytes]: # pragma: win32 no cover
78-
with in_env(hook.prefix):
77+
with in_env(hook.prefix, hook.language_version):
7978
return helpers.run_xargs(hook, hook.cmd, file_args, color=color)

pre_commit/languages/dart.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@ def get_env_patch(venv: str) -> PatchesT:
3131

3232
@contextlib.contextmanager
3333
def in_env(prefix: Prefix) -> Generator[None, None, None]:
34-
directory = helpers.environment_dir(ENVIRONMENT_DIR, C.DEFAULT)
35-
envdir = prefix.path(directory)
34+
envdir = helpers.environment_dir(prefix, ENVIRONMENT_DIR, C.DEFAULT)
3635
with envcontext(get_env_patch(envdir)):
3736
yield
3837

@@ -44,7 +43,7 @@ def install_environment(
4443
) -> None:
4544
helpers.assert_version_default('dart', version)
4645

47-
envdir = prefix.path(helpers.environment_dir(ENVIRONMENT_DIR, version))
46+
envdir = helpers.environment_dir(prefix, ENVIRONMENT_DIR, version)
4847
bin_dir = os.path.join(envdir, 'bin')
4948

5049
def _install_dir(prefix_p: Prefix, pub_cache: str) -> None:

pre_commit/languages/docker.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,7 @@ def install_environment(
9494
helpers.assert_version_default('docker', version)
9595
helpers.assert_no_additional_deps('docker', additional_dependencies)
9696

97-
directory = prefix.path(
98-
helpers.environment_dir(ENVIRONMENT_DIR, C.DEFAULT),
99-
)
97+
directory = helpers.environment_dir(prefix, ENVIRONMENT_DIR, C.DEFAULT)
10098

10199
# Docker doesn't really have relevant disk environment, but pre-commit
102100
# still needs to cleanup its state files on failure

pre_commit/languages/dotnet.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ def get_env_patch(venv: str) -> PatchesT:
3232

3333
@contextlib.contextmanager
3434
def in_env(prefix: Prefix) -> Generator[None, None, None]:
35-
directory = helpers.environment_dir(ENVIRONMENT_DIR, C.DEFAULT)
36-
envdir = prefix.path(directory)
35+
envdir = helpers.environment_dir(prefix, ENVIRONMENT_DIR, C.DEFAULT)
3736
with envcontext(get_env_patch(envdir)):
3837
yield
3938

@@ -62,7 +61,7 @@ def install_environment(
6261
helpers.assert_version_default('dotnet', version)
6362
helpers.assert_no_additional_deps('dotnet', additional_dependencies)
6463

65-
envdir = prefix.path(helpers.environment_dir(ENVIRONMENT_DIR, version))
64+
envdir = helpers.environment_dir(prefix, ENVIRONMENT_DIR, version)
6665
build_dir = 'pre-commit-build'
6766

6867
# Build & pack nupkg file

pre_commit/languages/golang.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,7 @@ def get_env_patch(venv: str) -> PatchesT:
3131

3232
@contextlib.contextmanager
3333
def in_env(prefix: Prefix) -> Generator[None, None, None]:
34-
envdir = prefix.path(
35-
helpers.environment_dir(ENVIRONMENT_DIR, C.DEFAULT),
36-
)
34+
envdir = helpers.environment_dir(prefix, ENVIRONMENT_DIR, C.DEFAULT)
3735
with envcontext(get_env_patch(envdir)):
3836
yield
3937

@@ -60,9 +58,7 @@ def install_environment(
6058
additional_dependencies: Sequence[str],
6159
) -> None:
6260
helpers.assert_version_default('golang', version)
63-
directory = prefix.path(
64-
helpers.environment_dir(ENVIRONMENT_DIR, C.DEFAULT),
65-
)
61+
directory = helpers.environment_dir(prefix, ENVIRONMENT_DIR, C.DEFAULT)
6662

6763
remote = git.get_remote_url(prefix.prefix_dir)
6864
repo_src_dir = os.path.join(directory, 'src', guess_go_dir(remote))

pre_commit/languages/helpers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ def run_setup_cmd(prefix: Prefix, cmd: tuple[str, ...], **kwargs: Any) -> None:
4747
cmd_output_b(*cmd, cwd=prefix.prefix_dir, **kwargs)
4848

4949

50-
def environment_dir(d: str, language_version: str) -> str:
51-
return f'{d}-{language_version}'
50+
def environment_dir(prefix: Prefix, d: str, language_version: str) -> str:
51+
return prefix.path(f'{d}-{language_version}')
5252

5353

5454
def assert_version_default(binary: str, version: str) -> None:

pre_commit/languages/lua.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,10 @@ def get_env_patch(d: str) -> PatchesT: # pragma: win32 no cover
4444
)
4545

4646

47-
def _envdir(prefix: Prefix) -> str: # pragma: win32 no cover
48-
directory = helpers.environment_dir(ENVIRONMENT_DIR, C.DEFAULT)
49-
return prefix.path(directory)
50-
51-
5247
@contextlib.contextmanager # pragma: win32 no cover
5348
def in_env(prefix: Prefix) -> Generator[None, None, None]:
54-
with envcontext(get_env_patch(_envdir(prefix))):
49+
envdir = helpers.environment_dir(prefix, ENVIRONMENT_DIR, C.DEFAULT)
50+
with envcontext(get_env_patch(envdir)):
5551
yield
5652

5753

@@ -62,7 +58,7 @@ def install_environment(
6258
) -> None: # pragma: win32 no cover
6359
helpers.assert_version_default('lua', version)
6460

65-
envdir = _envdir(prefix)
61+
envdir = helpers.environment_dir(prefix, ENVIRONMENT_DIR, C.DEFAULT)
6662
with in_env(prefix):
6763
# luarocks doesn't bootstrap a tree prior to installing
6864
# so ensure the directory exists.

pre_commit/languages/node.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,6 @@ def get_default_version() -> str:
3636
return C.DEFAULT
3737

3838

39-
def _envdir(prefix: Prefix, version: str) -> str:
40-
directory = helpers.environment_dir(ENVIRONMENT_DIR, version)
41-
return prefix.path(directory)
42-
43-
4439
def get_env_patch(venv: str) -> PatchesT:
4540
if sys.platform == 'cygwin': # pragma: no cover
4641
_, win_venv, _ = cmd_output('cygpath', '-w', venv)
@@ -68,7 +63,8 @@ def in_env(
6863
prefix: Prefix,
6964
language_version: str,
7065
) -> Generator[None, None, None]:
71-
with envcontext(get_env_patch(_envdir(prefix, language_version))):
66+
envdir = helpers.environment_dir(prefix, ENVIRONMENT_DIR, language_version)
67+
with envcontext(get_env_patch(envdir)):
7268
yield
7369

7470

@@ -85,7 +81,7 @@ def install_environment(
8581
prefix: Prefix, version: str, additional_dependencies: Sequence[str],
8682
) -> None:
8783
assert prefix.exists('package.json')
88-
envdir = _envdir(prefix, version)
84+
envdir = helpers.environment_dir(prefix, ENVIRONMENT_DIR, version)
8985

9086
# https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx?f=255&MSPPError=-2147217396#maxpath
9187
if sys.platform == 'win32': # pragma: no cover

pre_commit/languages/perl.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,6 @@
1818
health_check = helpers.basic_health_check
1919

2020

21-
def _envdir(prefix: Prefix, version: str) -> str:
22-
directory = helpers.environment_dir(ENVIRONMENT_DIR, version)
23-
return prefix.path(directory)
24-
25-
2621
def get_env_patch(venv: str) -> PatchesT:
2722
return (
2823
('PATH', (os.path.join(venv, 'bin'), os.pathsep, Var('PATH'))),
@@ -42,7 +37,8 @@ def in_env(
4237
prefix: Prefix,
4338
language_version: str,
4439
) -> Generator[None, None, None]:
45-
with envcontext(get_env_patch(_envdir(prefix, language_version))):
40+
envdir = helpers.environment_dir(prefix, ENVIRONMENT_DIR, language_version)
41+
with envcontext(get_env_patch(envdir)):
4642
yield
4743

4844

0 commit comments

Comments
 (0)