Skip to content

Commit 017fa5c

Browse files
authored
Merge pull request pre-commit#2665 from pre-commit/move-parse-version
move parse_version to pre_commit.clientlib
2 parents 0cec5bd + 5425c75 commit 017fa5c

File tree

5 files changed

+13
-14
lines changed

5 files changed

+13
-14
lines changed

pre_commit/clientlib.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import pre_commit.constants as C
1515
from pre_commit.errors import FatalError
1616
from pre_commit.languages.all import all_languages
17-
from pre_commit.util import parse_version
1817
from pre_commit.util import yaml_load
1918

2019
logger = logging.getLogger('pre_commit')
@@ -30,6 +29,11 @@ def check_type_tag(tag: str) -> None:
3029
)
3130

3231

32+
def parse_version(s: str) -> tuple[int, ...]:
33+
"""poor man's version comparison"""
34+
return tuple(int(p) for p in s.split('.'))
35+
36+
3337
def check_min_version(version: str) -> None:
3438
if parse_version(version) > parse_version(C.VERSION):
3539
raise cfgv.ValidationError(

pre_commit/repository.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@
1010
from pre_commit.clientlib import load_manifest
1111
from pre_commit.clientlib import LOCAL
1212
from pre_commit.clientlib import META
13+
from pre_commit.clientlib import parse_version
1314
from pre_commit.hook import Hook
1415
from pre_commit.languages.all import languages
1516
from pre_commit.languages.helpers import environment_dir
1617
from pre_commit.prefix import Prefix
1718
from pre_commit.store import Store
18-
from pre_commit.util import parse_version
1919
from pre_commit.util import rmtree
2020

2121

pre_commit/util.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -241,10 +241,5 @@ def handle_remove_readonly(
241241
shutil.rmtree(path, ignore_errors=False, onerror=handle_remove_readonly)
242242

243243

244-
def parse_version(s: str) -> tuple[int, ...]:
245-
"""poor man's version comparison"""
246-
return tuple(int(p) for p in s.split('.'))
247-
248-
249244
def win_exe(s: str) -> str:
250245
return s if sys.platform != 'win32' else f'{s}.exe'

tests/clientlib_test.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from pre_commit.clientlib import META_HOOK_DICT
1717
from pre_commit.clientlib import OptionalSensibleRegexAtHook
1818
from pre_commit.clientlib import OptionalSensibleRegexAtTop
19+
from pre_commit.clientlib import parse_version
1920
from testing.fixtures import sample_local_config
2021

2122

@@ -384,6 +385,12 @@ def test_default_language_version_invalid(mapping):
384385
cfgv.validate(mapping, DEFAULT_LANGUAGE_VERSION)
385386

386387

388+
def test_parse_version():
389+
assert parse_version('0.0') == parse_version('0.0')
390+
assert parse_version('0.1') > parse_version('0.0')
391+
assert parse_version('2.1') >= parse_version('2')
392+
393+
387394
def test_minimum_pre_commit_version_failing():
388395
with pytest.raises(cfgv.ValidationError) as excinfo:
389396
cfg = {'repos': [], 'minimum_pre_commit_version': '999'}

tests/util_test.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
from pre_commit.util import cmd_output_b
1313
from pre_commit.util import cmd_output_p
1414
from pre_commit.util import make_executable
15-
from pre_commit.util import parse_version
1615
from pre_commit.util import rmtree
1716

1817

@@ -98,12 +97,6 @@ def test_cmd_output_no_shebang(tmpdir, fn):
9897
assert out.endswith(b'\n')
9998

10099

101-
def test_parse_version():
102-
assert parse_version('0.0') == parse_version('0.0')
103-
assert parse_version('0.1') > parse_version('0.0')
104-
assert parse_version('2.1') >= parse_version('2')
105-
106-
107100
def test_rmtree_read_only_directories(tmpdir):
108101
"""Simulates the go module tree. See #1042"""
109102
tmpdir.join('x/y/z').ensure_dir().join('a').ensure()

0 commit comments

Comments
 (0)