mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-02-17 00:04:42 +04:00
Replace pkg_resources.get_distribution with importlib-metadata
This commit is contained in:
parent
9c37473256
commit
ebe5132576
5 changed files with 20 additions and 7 deletions
|
|
@ -1,7 +1,7 @@
|
||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
import pkg_resources
|
import importlib_metadata # TODO: importlib.metadata py38?
|
||||||
|
|
||||||
CONFIG_FILE = '.pre-commit-config.yaml'
|
CONFIG_FILE = '.pre-commit-config.yaml'
|
||||||
MANIFEST_FILE = '.pre-commit-hooks.yaml'
|
MANIFEST_FILE = '.pre-commit-hooks.yaml'
|
||||||
|
|
@ -18,8 +18,7 @@ INSTALLED_STATE_VERSION = '1'
|
||||||
# Bump when modifying `empty_template`
|
# Bump when modifying `empty_template`
|
||||||
LOCAL_REPO_VERSION = '1'
|
LOCAL_REPO_VERSION = '1'
|
||||||
|
|
||||||
VERSION = pkg_resources.get_distribution('pre-commit').version
|
VERSION = importlib_metadata.version('pre_commit')
|
||||||
VERSION_PARSED = pkg_resources.parse_version(VERSION)
|
|
||||||
|
|
||||||
# `manual` is not invoked by any installed git hook. See #719
|
# `manual` is not invoked by any installed git hook. See #719
|
||||||
STAGES = ('commit', 'commit-msg', 'manual', 'push')
|
STAGES = ('commit', 'commit-msg', 'manual', 'push')
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,6 @@ import pipes
|
||||||
import shutil
|
import shutil
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
import pkg_resources
|
|
||||||
from cached_property import cached_property
|
from cached_property import cached_property
|
||||||
from cfgv import apply_defaults
|
from cfgv import apply_defaults
|
||||||
from cfgv import validate
|
from cfgv import validate
|
||||||
|
|
@ -23,6 +22,7 @@ from pre_commit.clientlib import MANIFEST_HOOK_DICT
|
||||||
from pre_commit.languages.all import languages
|
from pre_commit.languages.all import languages
|
||||||
from pre_commit.languages.helpers import environment_dir
|
from pre_commit.languages.helpers import environment_dir
|
||||||
from pre_commit.prefix import Prefix
|
from pre_commit.prefix import Prefix
|
||||||
|
from pre_commit.util import parse_version
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger('pre_commit')
|
logger = logging.getLogger('pre_commit')
|
||||||
|
|
@ -110,13 +110,13 @@ def _hook(*hook_dicts):
|
||||||
for dct in rest:
|
for dct in rest:
|
||||||
ret.update(dct)
|
ret.update(dct)
|
||||||
|
|
||||||
version = pkg_resources.parse_version(ret['minimum_pre_commit_version'])
|
version = ret['minimum_pre_commit_version']
|
||||||
if version > C.VERSION_PARSED:
|
if parse_version(version) > parse_version(C.VERSION):
|
||||||
logger.error(
|
logger.error(
|
||||||
'The hook `{}` requires pre-commit version {} but version {} '
|
'The hook `{}` requires pre-commit version {} but version {} '
|
||||||
'is installed. '
|
'is installed. '
|
||||||
'Perhaps run `pip install --upgrade pre-commit`.'.format(
|
'Perhaps run `pip install --upgrade pre-commit`.'.format(
|
||||||
ret['id'], version, C.VERSION_PARSED,
|
ret['id'], version, C.VERSION,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|
|
||||||
|
|
@ -211,3 +211,8 @@ def copy_tree_to_path(src_dir, dest_dir):
|
||||||
shutil.copytree(srcname, destname)
|
shutil.copytree(srcname, destname)
|
||||||
else:
|
else:
|
||||||
shutil.copy(srcname, destname)
|
shutil.copy(srcname, destname)
|
||||||
|
|
||||||
|
|
||||||
|
def parse_version(s):
|
||||||
|
"""poor man's version comparison"""
|
||||||
|
return tuple(int(p) for p in s.split('.'))
|
||||||
|
|
|
||||||
2
setup.py
2
setup.py
|
|
@ -40,6 +40,8 @@ setup(
|
||||||
'cached-property',
|
'cached-property',
|
||||||
'cfgv>=1.0.0',
|
'cfgv>=1.0.0',
|
||||||
'identify>=1.0.0',
|
'identify>=1.0.0',
|
||||||
|
# if this makes it into python3.8 move to extras_require
|
||||||
|
'importlib-metadata',
|
||||||
'nodeenv>=0.11.1',
|
'nodeenv>=0.11.1',
|
||||||
'pyyaml',
|
'pyyaml',
|
||||||
'six',
|
'six',
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ from pre_commit.util import CalledProcessError
|
||||||
from pre_commit.util import clean_path_on_failure
|
from pre_commit.util import clean_path_on_failure
|
||||||
from pre_commit.util import cmd_output
|
from pre_commit.util import cmd_output
|
||||||
from pre_commit.util import memoize_by_cwd
|
from pre_commit.util import memoize_by_cwd
|
||||||
|
from pre_commit.util import parse_version
|
||||||
from pre_commit.util import tmpdir
|
from pre_commit.util import tmpdir
|
||||||
from testing.util import cwd
|
from testing.util import cwd
|
||||||
|
|
||||||
|
|
@ -117,3 +118,9 @@ def test_cmd_output_exe_not_found():
|
||||||
ret, out, _ = cmd_output('i-dont-exist', retcode=None)
|
ret, out, _ = cmd_output('i-dont-exist', retcode=None)
|
||||||
assert ret == 1
|
assert ret == 1
|
||||||
assert out == 'Executable `i-dont-exist` not found'
|
assert out == 'Executable `i-dont-exist` not found'
|
||||||
|
|
||||||
|
|
||||||
|
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')
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue