|
1 | 1 | import os |
2 | | -from typing import List, Optional |
| 2 | +from typing import List, Optional, Dict |
3 | 3 |
|
4 | 4 | import click |
5 | 5 | from git import Repo, GitCommandError |
@@ -88,19 +88,23 @@ def try_restore_dependencies(context: click.Context, documents_to_add: List[Docu |
88 | 88 | project_path = context.params.get('path') |
89 | 89 | manifest_file_path = get_manifest_file_path(document, is_monitor_action, project_path) |
90 | 90 | logger.debug(f"Succeeded to generate dependencies tree on path: {manifest_file_path}") |
91 | | - documents_to_add.append(restore_dependencies_document) |
| 91 | + |
| 92 | + if restore_dependencies_document.path in documents_to_add: |
| 93 | + logger.debug(f"Duplicate document on restore for path: {restore_dependencies_document.path}") |
| 94 | + else: |
| 95 | + documents_to_add[restore_dependencies_document.path] = restore_dependencies_document |
92 | 96 |
|
93 | 97 |
|
94 | 98 | def add_dependencies_tree_document(context: click.Context, documents_to_scan: List[Document], |
95 | 99 | is_git_diff: bool = False) -> None: |
96 | | - documents_to_add: List[Document] = [] |
| 100 | + documents_to_add: Dict[str, Document] = {} |
97 | 101 | restore_dependencies_list = restore_handlers(context, is_git_diff) |
98 | 102 |
|
99 | 103 | for restore_dependencies in restore_dependencies_list: |
100 | 104 | for document in documents_to_scan: |
101 | 105 | try_restore_dependencies(context, documents_to_add, restore_dependencies, document) |
102 | 106 |
|
103 | | - documents_to_scan.extend(documents_to_add) |
| 107 | + documents_to_scan.extend(list(documents_to_add.values())) |
104 | 108 |
|
105 | 109 |
|
106 | 110 | def restore_handlers(context, is_git_diff): |
|
0 commit comments