Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 254655e

Browse files
committed
Add OrderedDict dependency. Make sure hooks are run in a deterministic order
1 parent dc1494d commit 254655e

3 files changed

Lines changed: 28 additions & 8 deletions

File tree

pre_commit/ordereddict.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
from __future__ import absolute_import
2+
3+
# This module serves only as a shim for OrderedDict
4+
5+
try:
6+
from collections import OrderedDict
7+
except ImportError:
8+
from orderddict import OrderedDict
9+
10+
__all__ = (OrderedDict.__name__,)

pre_commit/repository.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from pre_commit.clientlib.validate_manifest import validate_manifest
77
from pre_commit.hooks_workspace import in_hooks_workspace
88
from pre_commit.languages.all import languages
9+
from pre_commit.ordereddict import OrderedDict
910
from pre_commit.util import cached_property
1011

1112

@@ -29,7 +30,7 @@ def languages(self):
2930

3031
@cached_property
3132
def hooks(self):
32-
return dict(
33+
return OrderedDict(
3334
(hook['id'], dict(hook, **self.manifest[hook['id']]))
3435
for hook in self.repo_config['hooks']
3536
)

setup.py

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,21 @@
1+
import sys
12
from setuptools import find_packages
23
from setuptools import setup
34

5+
6+
install_requires = [
7+
'argparse',
8+
'jsonschema',
9+
'plumbum',
10+
'pyyaml',
11+
'simplejson',
12+
]
13+
14+
15+
if sys.version_info < (2, 7):
16+
install_requires.append('ordereddict')
17+
18+
419
setup(
520
name='pre_commit',
621
version='0.0.0',
@@ -10,13 +25,7 @@
1025
'resources/pre-commit.sh'
1126
]
1227
},
13-
install_requires=[
14-
'argparse',
15-
'jsonschema',
16-
'plumbum',
17-
'pyyaml',
18-
'simplejson',
19-
],
28+
install_requires=install_requires,
2029
entry_points={
2130
'console_scripts': [
2231
'pre-commit = pre_commit.run:run',

0 commit comments

Comments
 (0)