mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-01-17 22:40:11 -06:00
Recover from invalid python virtualenvs
This commit is contained in:
@@ -21,6 +21,9 @@ from pre_commit.languages import system
|
||||
# return 'default' if there is no better option.
|
||||
# """
|
||||
#
|
||||
# def healthy(repo_cmd_runner, language_version):
|
||||
# """Return whether or not the environment is considered functional."""
|
||||
#
|
||||
# def install_environment(repo_cmd_runner, version, additional_dependencies):
|
||||
# """Installs a repository in the given repository. Note that the current
|
||||
# working directory will already be inside the repository.
|
||||
|
||||
@@ -15,6 +15,7 @@ from pre_commit.xargs import xargs
|
||||
ENVIRONMENT_DIR = 'docker'
|
||||
PRE_COMMIT_LABEL = 'PRE_COMMIT'
|
||||
get_default_version = helpers.basic_get_default_version
|
||||
healthy = helpers.basic_healthy
|
||||
|
||||
|
||||
def md5(s): # pragma: windows no cover
|
||||
|
||||
@@ -15,6 +15,7 @@ from pre_commit.xargs import xargs
|
||||
|
||||
ENVIRONMENT_DIR = 'golangenv'
|
||||
get_default_version = helpers.basic_get_default_version
|
||||
healthy = helpers.basic_healthy
|
||||
|
||||
|
||||
def get_env_patch(venv):
|
||||
|
||||
@@ -37,3 +37,7 @@ def assert_no_additional_deps(lang, additional_deps):
|
||||
|
||||
def basic_get_default_version():
|
||||
return 'default'
|
||||
|
||||
|
||||
def basic_healthy(repo_cmd_runner, language_version):
|
||||
return True
|
||||
|
||||
@@ -13,6 +13,7 @@ from pre_commit.xargs import xargs
|
||||
|
||||
ENVIRONMENT_DIR = 'node_env'
|
||||
get_default_version = helpers.basic_get_default_version
|
||||
healthy = helpers.basic_healthy
|
||||
|
||||
|
||||
def get_env_patch(venv): # pragma: windows no cover
|
||||
|
||||
@@ -9,6 +9,7 @@ from pre_commit.xargs import xargs
|
||||
ENVIRONMENT_DIR = None
|
||||
GREP = 'ggrep' if sys.platform == 'darwin' else 'grep'
|
||||
get_default_version = helpers.basic_get_default_version
|
||||
healthy = helpers.basic_healthy
|
||||
|
||||
|
||||
def install_environment(repo_cmd_runner, version, additional_dependencies):
|
||||
|
||||
@@ -10,11 +10,11 @@ from pre_commit.envcontext import Var
|
||||
from pre_commit.languages import helpers
|
||||
from pre_commit.parse_shebang import find_executable
|
||||
from pre_commit.util import clean_path_on_failure
|
||||
from pre_commit.util import cmd_output
|
||||
from pre_commit.xargs import xargs
|
||||
|
||||
|
||||
ENVIRONMENT_DIR = 'py_env'
|
||||
get_default_version = helpers.basic_get_default_version
|
||||
|
||||
|
||||
def bin_dir(venv):
|
||||
@@ -83,6 +83,14 @@ def get_default_version():
|
||||
return get_default_version()
|
||||
|
||||
|
||||
def healthy(repo_cmd_runner, language_version):
|
||||
with in_env(repo_cmd_runner, language_version):
|
||||
retcode, _, _ = cmd_output(
|
||||
'python', '-c', 'import datetime, io, os, weakref', retcode=None,
|
||||
)
|
||||
return retcode == 0
|
||||
|
||||
|
||||
def norm_version(version):
|
||||
if os.name == 'nt': # pragma: no cover (windows)
|
||||
# Try looking up by name
|
||||
|
||||
@@ -17,6 +17,7 @@ from pre_commit.xargs import xargs
|
||||
|
||||
ENVIRONMENT_DIR = 'rbenv'
|
||||
get_default_version = helpers.basic_get_default_version
|
||||
healthy = helpers.basic_healthy
|
||||
|
||||
|
||||
def get_env_patch(venv, language_version): # pragma: windows no cover
|
||||
|
||||
@@ -6,6 +6,7 @@ from pre_commit.xargs import xargs
|
||||
|
||||
ENVIRONMENT_DIR = None
|
||||
get_default_version = helpers.basic_get_default_version
|
||||
healthy = helpers.basic_healthy
|
||||
|
||||
|
||||
def install_environment(repo_cmd_runner, version, additional_dependencies):
|
||||
|
||||
@@ -11,6 +11,7 @@ from pre_commit.xargs import xargs
|
||||
|
||||
ENVIRONMENT_DIR = 'swift_env'
|
||||
get_default_version = helpers.basic_get_default_version
|
||||
healthy = helpers.basic_healthy
|
||||
BUILD_DIR = '.build'
|
||||
BUILD_CONFIG = 'release'
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ from pre_commit.xargs import xargs
|
||||
|
||||
ENVIRONMENT_DIR = None
|
||||
get_default_version = helpers.basic_get_default_version
|
||||
healthy = helpers.basic_healthy
|
||||
|
||||
|
||||
def install_environment(repo_cmd_runner, version, additional_dependencies):
|
||||
|
||||
Reference in New Issue
Block a user