From e43463a8dfa2ace4bf78da1396d2b59beb68060e Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Sat, 15 Jan 2022 09:33:40 +0100 Subject: [PATCH] Add mamba support to `language: conda` --- pre_commit/languages/conda.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/pre_commit/languages/conda.py b/pre_commit/languages/conda.py index d634e4931..39b4ca9d9 100644 --- a/pre_commit/languages/conda.py +++ b/pre_commit/languages/conda.py @@ -1,5 +1,6 @@ import contextlib import os +import shutil from typing import Generator from typing import Sequence from typing import Tuple @@ -58,15 +59,25 @@ def install_environment( helpers.assert_version_default('conda', version) directory = helpers.environment_dir(ENVIRONMENT_DIR, version) + conda_exe = None + if os.environ.get('PRE_COMMIT_USE_MICROMAMBA', '1') == '1': + conda_exe = shutil.which('micromamba') + if ( + conda_exe is None and + os.environ.get('PRE_COMMIT_USE_MAMBA', '1') == '1' + ): + conda_exe = shutil.which('mamba') + conda_exe = conda_exe or 'conda' + env_dir = prefix.path(directory) with clean_path_on_failure(env_dir): cmd_output_b( - 'conda', 'env', 'create', '-p', env_dir, '--file', + conda_exe, 'env', 'create', '-p', env_dir, '--file', 'environment.yml', cwd=prefix.prefix_dir, ) if additional_dependencies: cmd_output_b( - 'conda', 'install', '-p', env_dir, *additional_dependencies, + conda_exe, 'install', '-p', env_dir, *additional_dependencies, cwd=prefix.prefix_dir, )