3737def check_dependencies (
3838 selector_method : Union [SelectorMethod , None ] = None ,
3939 config_file : Optional [str ] = None ,
40- dependency_file : Optional [str ] = None ,
40+ dependency_file : Optional [set [ str ] ] = None ,
4141 dependencies : Optional [set [str ]] = None ,
4242 use_cache : Optional [bool ] = True ,
4343 show_progress_bar : bool = False ,
@@ -68,7 +68,7 @@ def check_dependencies(
6868 load_config_from_file = load_config_from_file ,
6969 config_file = config_file ,
7070 selector_method = selector_method ,
71- dependency_file = dependency_file ,
71+ dependency_files = dependency_file ,
7272 use_cache = use_cache ,
7373 package_ecosystem = package_ecosystem ,
7474 recursive = recursive ,
@@ -104,7 +104,7 @@ def check_dependencies(
104104 maybe_cache_handler = maybe_cache_handler ,
105105 allowlist = config .allowlist ,
106106 show_progress_bar = show_progress_bar ,
107- dependency_file = config .dependency_file ,
107+ dependency_files = config .dependency_file ,
108108 )
109109
110110
@@ -153,38 +153,39 @@ def _analyze_packages_from_source(
153153 allowlist : set [str ],
154154 selector_method : SelectorMethod ,
155155 show_progress_bar : bool ,
156- dependency_file : Optional [str ],
156+ dependency_files : Optional [set [ str ] ],
157157 source : Optional [str ],
158158 maybe_cache_handler : Optional [CacheHandler ],
159159) -> TyposquatCheckResults :
160160 """Analyze dependencies from a dependencies file.
161161
162162 It will return a list of the possible typos grouped by source, each source being a dependency file.
163163 """
164- dependency_managers = _get_dependency_managers_and_parsers_mapping (dependency_file )
165- typos_by_file = TyposquatCheckResults ()
166- for dependency_manager , parsers in dependency_managers .items ():
167- top_package_reference = dependency_manager .trusted_packages_source (source , maybe_cache_handler )
168-
169- packages_from_source = top_package_reference .get_packages ()
170- trusted_packages = TrustedPackages (
171- names = packages_from_source ,
172- algorithm = EditDistance (),
173- selector = selector_method ,
174- threshold_class = SimilarityThreshold ,
175- )
176- results : list [TyposquatCheckResultFromSource ] = []
177-
178- for parser in parsers :
179- analyzed_dependencies = _analyze_dependencies (
180- top_package_reference , trusted_packages , parser .parse (), allowlist , show_progress_bar , parser .file_path
164+ dependency_files = dependency_files or {"" }
165+ for dep_file in dependency_files :
166+ dependency_managers = _get_dependency_managers_and_parsers_mapping (dep_file )
167+ typos_by_file = TyposquatCheckResults ()
168+ for dependency_manager , parsers in dependency_managers .items ():
169+ top_package_reference = dependency_manager .trusted_packages_source (source , maybe_cache_handler )
170+
171+ packages_from_source = top_package_reference .get_packages ()
172+ trusted_packages = TrustedPackages (
173+ names = packages_from_source ,
174+ algorithm = EditDistance (),
175+ selector = selector_method ,
176+ threshold_class = SimilarityThreshold ,
181177 )
182-
183- if analyzed_dependencies :
184- results . append (
185- TyposquatCheckResultFromSource ( source = str ( parser .file_path ), errors = analyzed_dependencies )
178+ results : list [ TyposquatCheckResultFromSource ] = []
179+ for parser in parsers :
180+ analyzed_dependencies = _analyze_dependencies (
181+ top_package_reference , trusted_packages , parser .parse ( ), allowlist , show_progress_bar
186182 )
187- typos_by_file .results += results
183+
184+ if analyzed_dependencies :
185+ results .append (
186+ TyposquatCheckResultFromSource (source = str (parser .file_path ), errors = analyzed_dependencies )
187+ )
188+ typos_by_file .results += results
188189
189190 return typos_by_file
190191
@@ -258,6 +259,7 @@ def _get_dependency_managers_and_parsers_mapping(
258259 dependency_managers : dict [type [BaseDependencyManager ], list [AbstractParser ]] = {}
259260
260261 # No dependencies introduced via the CLI, so the dependecy file was either given or will be auto-detected
262+
261263 dependency_selector = DependencySelector (dependency_file )
262264 dependency_parsers = dependency_selector .get_dependency_parsers ()
263265
@@ -274,7 +276,7 @@ def _get_config(
274276 load_config_from_file : bool ,
275277 config_file : Optional [str ],
276278 selector_method : Union [SelectorMethod , None ],
277- dependency_file : Optional [str ],
279+ dependency_files : Optional [set [ str ] ],
278280 use_cache : Optional [bool ],
279281 package_ecosystem : Optional [PackageEcosystems ],
280282 recursive : Optional [bool ],
@@ -286,7 +288,7 @@ def _get_config(
286288 config_file_handler = None
287289 return ConfigHandler (config_file_handler ).resolve_config (
288290 selector_method = selector_method ,
289- dependency_file = dependency_file ,
291+ dependency_files = dependency_files ,
290292 use_cache = use_cache ,
291293 package_ecosystem = package_ecosystem ,
292294 recursive = recursive ,
0 commit comments