diff --git a/caniusepython3/dependencies.py b/caniusepython3/dependencies.py index e09432d..06fd613 100644 --- a/caniusepython3/dependencies.py +++ b/caniusepython3/dependencies.py @@ -75,6 +75,7 @@ def blocking_dependencies(projects, py3_projects): """ log = logging.getLogger('ciu') check = [] + checked = set() for project in projects: dist = distlib.locators.locate(project) if dist is None: @@ -90,6 +91,7 @@ def blocking_dependencies(projects, py3_projects): while len(check) > 0: new_check = [] for parent, deps in zip(check, executor.map(dependencies, check)): + checked.add(parent) if deps is None: # Can't find any results for a project, so ignore it so as # to not accidentally consider indefinitely that a project @@ -100,6 +102,9 @@ def blocking_dependencies(projects, py3_projects): if dep in py3_projects: continue reasons[dep] = parent - new_check.append(dep) + if dep not in checked: + new_check.append(dep) + else: + log.info('{0} already checked'.format(dep)) check = new_check return reasons_to_paths(reasons)