3232
3333logger = logging .getLogger ("twyn" )
3434logger .addHandler (logging .NullHandler ())
35+ logging .captureWarnings (True )
3536
3637
3738def check_dependencies (
3839 selector_method : Union [SelectorMethod , None ] = None ,
3940 config_file : Optional [str ] = None ,
40- dependency_file : Optional [str ] = None ,
41+ dependency_files : Optional [set [ str ] ] = None ,
4142 dependencies : Optional [set [str ]] = None ,
4243 use_cache : Optional [bool ] = True ,
4344 show_progress_bar : bool = False ,
@@ -68,7 +69,7 @@ def check_dependencies(
6869 load_config_from_file = load_config_from_file ,
6970 config_file = config_file ,
7071 selector_method = selector_method ,
71- dependency_file = dependency_file ,
72+ dependency_files = dependency_files ,
7273 use_cache = use_cache ,
7374 package_ecosystem = package_ecosystem ,
7475 recursive = recursive ,
@@ -93,7 +94,7 @@ def check_dependencies(
9394 if config .package_ecosystem :
9495 logger .warning ("`package_ecosystem` is not supported when reading dependencies from files. It will be ignored." )
9596
96- if config .dependency_file and config .recursive :
97+ if config .dependency_files and config .recursive :
9798 logger .warning (
9899 "`--recursive` has been set together with `--dependency-file`. `--dependency-file` will take precedence."
99100 )
@@ -104,7 +105,7 @@ def check_dependencies(
104105 maybe_cache_handler = maybe_cache_handler ,
105106 allowlist = config .allowlist ,
106107 show_progress_bar = show_progress_bar ,
107- dependency_file = config .dependency_file ,
108+ dependency_files = config .dependency_files ,
108109 )
109110
110111
@@ -153,16 +154,17 @@ def _analyze_packages_from_source(
153154 allowlist : set [str ],
154155 selector_method : SelectorMethod ,
155156 show_progress_bar : bool ,
156- dependency_file : Optional [str ],
157+ dependency_files : Optional [set [ str ] ],
157158 source : Optional [str ],
158159 maybe_cache_handler : Optional [CacheHandler ],
159160) -> TyposquatCheckResults :
160161 """Analyze dependencies from a dependencies file.
161162
162163 It will return a list of the possible typos grouped by source, each source being a dependency file.
163164 """
164- dependency_managers = _get_dependency_managers_and_parsers_mapping (dependency_file )
165165 typos_by_file = TyposquatCheckResults ()
166+
167+ dependency_managers = _get_dependency_managers_and_parsers_mapping (dependency_files )
166168 for dependency_manager , parsers in dependency_managers .items ():
167169 top_package_reference = dependency_manager .trusted_packages_source (source , maybe_cache_handler )
168170
@@ -174,7 +176,6 @@ def _analyze_packages_from_source(
174176 threshold_class = SimilarityThreshold ,
175177 )
176178 results : list [TyposquatCheckResultFromSource ] = []
177-
178179 for parser in parsers :
179180 analyzed_dependencies = _analyze_dependencies (
180181 top_package_reference , trusted_packages , parser .parse (), allowlist , show_progress_bar , parser .file_path
@@ -252,13 +253,13 @@ def _get_selector_method(selector_method: str) -> SelectorMethod:
252253
253254
254255def _get_dependency_managers_and_parsers_mapping (
255- dependency_file : Optional [str ],
256+ dependency_files : Optional [set [ str ] ],
256257) -> dict [type [BaseDependencyManager ], list [AbstractParser ]]:
257258 """Return a dictionary, grouping all files to parse by their DependencyManager."""
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
261- dependency_selector = DependencySelector (dependency_file )
262+ dependency_selector = DependencySelector (dependency_files )
262263 dependency_parsers = dependency_selector .get_dependency_parsers ()
263264
264265 for parser in dependency_parsers :
@@ -274,7 +275,7 @@ def _get_config(
274275 load_config_from_file : bool ,
275276 config_file : Optional [str ],
276277 selector_method : Union [SelectorMethod , None ],
277- dependency_file : Optional [str ],
278+ dependency_files : Optional [set [ str ] ],
278279 use_cache : Optional [bool ],
279280 package_ecosystem : Optional [PackageEcosystems ],
280281 recursive : Optional [bool ],
@@ -286,7 +287,7 @@ def _get_config(
286287 config_file_handler = None
287288 return ConfigHandler (config_file_handler ).resolve_config (
288289 selector_method = selector_method ,
289- dependency_file = dependency_file ,
290+ dependency_files = dependency_files ,
290291 use_cache = use_cache ,
291292 package_ecosystem = package_ecosystem ,
292293 recursive = recursive ,
0 commit comments