mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-01-13 20:40:08 -06:00
move parse_version to pre_commit.clientlib
This commit is contained in:
@@ -14,7 +14,6 @@ from identify.identify import ALL_TAGS
|
||||
import pre_commit.constants as C
|
||||
from pre_commit.errors import FatalError
|
||||
from pre_commit.languages.all import all_languages
|
||||
from pre_commit.util import parse_version
|
||||
from pre_commit.util import yaml_load
|
||||
|
||||
logger = logging.getLogger('pre_commit')
|
||||
@@ -30,6 +29,11 @@ def check_type_tag(tag: str) -> None:
|
||||
)
|
||||
|
||||
|
||||
def parse_version(s: str) -> tuple[int, ...]:
|
||||
"""poor man's version comparison"""
|
||||
return tuple(int(p) for p in s.split('.'))
|
||||
|
||||
|
||||
def check_min_version(version: str) -> None:
|
||||
if parse_version(version) > parse_version(C.VERSION):
|
||||
raise cfgv.ValidationError(
|
||||
|
||||
@@ -10,12 +10,12 @@ import pre_commit.constants as C
|
||||
from pre_commit.clientlib import load_manifest
|
||||
from pre_commit.clientlib import LOCAL
|
||||
from pre_commit.clientlib import META
|
||||
from pre_commit.clientlib import parse_version
|
||||
from pre_commit.hook import Hook
|
||||
from pre_commit.languages.all import languages
|
||||
from pre_commit.languages.helpers import environment_dir
|
||||
from pre_commit.prefix import Prefix
|
||||
from pre_commit.store import Store
|
||||
from pre_commit.util import parse_version
|
||||
from pre_commit.util import rmtree
|
||||
|
||||
|
||||
|
||||
@@ -254,10 +254,5 @@ def rmtree(path: str) -> None:
|
||||
shutil.rmtree(path, ignore_errors=False, onerror=handle_remove_readonly)
|
||||
|
||||
|
||||
def parse_version(s: str) -> tuple[int, ...]:
|
||||
"""poor man's version comparison"""
|
||||
return tuple(int(p) for p in s.split('.'))
|
||||
|
||||
|
||||
def win_exe(s: str) -> str:
|
||||
return s if sys.platform != 'win32' else f'{s}.exe'
|
||||
|
||||
@@ -16,6 +16,7 @@ from pre_commit.clientlib import MANIFEST_SCHEMA
|
||||
from pre_commit.clientlib import META_HOOK_DICT
|
||||
from pre_commit.clientlib import OptionalSensibleRegexAtHook
|
||||
from pre_commit.clientlib import OptionalSensibleRegexAtTop
|
||||
from pre_commit.clientlib import parse_version
|
||||
from testing.fixtures import sample_local_config
|
||||
|
||||
|
||||
@@ -384,6 +385,12 @@ def test_default_language_version_invalid(mapping):
|
||||
cfgv.validate(mapping, DEFAULT_LANGUAGE_VERSION)
|
||||
|
||||
|
||||
def test_parse_version():
|
||||
assert parse_version('0.0') == parse_version('0.0')
|
||||
assert parse_version('0.1') > parse_version('0.0')
|
||||
assert parse_version('2.1') >= parse_version('2')
|
||||
|
||||
|
||||
def test_minimum_pre_commit_version_failing():
|
||||
with pytest.raises(cfgv.ValidationError) as excinfo:
|
||||
cfg = {'repos': [], 'minimum_pre_commit_version': '999'}
|
||||
|
||||
@@ -12,7 +12,6 @@ from pre_commit.util import cmd_output
|
||||
from pre_commit.util import cmd_output_b
|
||||
from pre_commit.util import cmd_output_p
|
||||
from pre_commit.util import make_executable
|
||||
from pre_commit.util import parse_version
|
||||
from pre_commit.util import rmtree
|
||||
from pre_commit.util import tmpdir
|
||||
|
||||
@@ -105,12 +104,6 @@ def test_cmd_output_no_shebang(tmpdir, fn):
|
||||
assert out.endswith(b'\n')
|
||||
|
||||
|
||||
def test_parse_version():
|
||||
assert parse_version('0.0') == parse_version('0.0')
|
||||
assert parse_version('0.1') > parse_version('0.0')
|
||||
assert parse_version('2.1') >= parse_version('2')
|
||||
|
||||
|
||||
def test_rmtree_read_only_directories(tmpdir):
|
||||
"""Simulates the go module tree. See #1042"""
|
||||
tmpdir.join('x/y/z').ensure_dir().join('a').ensure()
|
||||
|
||||
Reference in New Issue
Block a user