Keep additional_dependencies in the order in which they are specified

This commit is contained in:
Thierry Deo
2017-02-09 12:41:07 +01:00
parent 7f18b03201
commit 397efa8080
2 changed files with 28 additions and 3 deletions

View File

@@ -64,7 +64,7 @@ class Repository(object):
@cached_property
def additional_dependencies(self):
dep_dict = defaultdict(lambda: defaultdict(set))
dep_dict = defaultdict(lambda: defaultdict(_UniqueList))
for _, hook in self.hooks:
dep_dict[hook['language']][hook['language_version']].update(
hook.get('additional_dependencies', []),
@@ -222,3 +222,14 @@ class LocalRepository(Repository):
@cached_property
def manifest(self):
raise NotImplementedError
class _UniqueList(list):
def __init__(self):
self._set = set()
def update(self, obj):
for item in obj:
if item not in self._set:
self._set.add(item)
self.append(item)