Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion pre_commit/clientlib.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
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')
Expand All @@ -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(
Expand Down
2 changes: 1 addition & 1 deletion pre_commit/repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@
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


Expand Down
5 changes: 0 additions & 5 deletions pre_commit/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -254,10 +254,5 @@ def handle_remove_readonly(
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'
7 changes: 7 additions & 0 deletions tests/clientlib_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
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


Expand Down Expand Up @@ -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'}
Expand Down
7 changes: 0 additions & 7 deletions tests/util_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
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

Expand Down Expand Up @@ -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()
Expand Down