Skip to content

Commit 6cde287

Browse files
committed
Install multi-hook repositories only once
1 parent fcdd638 commit 6cde287

File tree

3 files changed

+9
-9
lines changed

3 files changed

+9
-9
lines changed

pre_commit/prefix.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
from __future__ import unicode_literals
22

3+
import collections
34
import os.path
45

56

6-
class Prefix(object):
7-
def __init__(self, prefix_dir):
8-
self.prefix_dir = prefix_dir
7+
class Prefix(collections.namedtuple('Prefix', ('prefix_dir',))):
8+
__slots__ = ()
99

1010
def path(self, *parts):
1111
return os.path.normpath(os.path.join(self.prefix_dir, *parts))

pre_commit/repository.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -179,12 +179,12 @@ def _prefix_from_deps(self, language_name, deps):
179179
return Prefix(self.store.clone(repo, rev, deps))
180180

181181
def _venvs(self):
182-
ret = []
182+
ret = set()
183183
for _, hook in self.hooks:
184184
language = hook['language']
185185
version = hook['language_version']
186-
deps = hook['additional_dependencies']
187-
ret.append((
186+
deps = tuple(hook['additional_dependencies'])
187+
ret.add((
188188
self._prefix_from_deps(language, deps),
189189
language, version, deps,
190190
))

tests/repository_test.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -466,16 +466,16 @@ def test_venvs(tempdir_factory, store):
466466
config = make_config_from_repo(path)
467467
repo = Repository.create(config, store)
468468
venv, = repo._venvs()
469-
assert venv == (mock.ANY, 'python', python.get_default_version(), [])
469+
assert venv == (mock.ANY, 'python', python.get_default_version(), ())
470470

471471

472472
def test_additional_dependencies(tempdir_factory, store):
473473
path = make_repo(tempdir_factory, 'python_hooks_repo')
474474
config = make_config_from_repo(path)
475475
config['hooks'][0]['additional_dependencies'] = ['pep8']
476476
repo = Repository.create(config, store)
477-
venv, = repo._venvs()
478-
assert venv == (mock.ANY, 'python', python.get_default_version(), ['pep8'])
477+
env, = repo._venvs()
478+
assert env == (mock.ANY, 'python', python.get_default_version(), ('pep8',))
479479

480480

481481
def test_additional_dependencies_roll_forward(tempdir_factory, store):

0 commit comments

Comments
 (0)