22from collections .abc import Iterable
33from typing import Optional , Union
44
5+ from click import style
6+
57from twyn .base .constants import (
68 MANUAL_INPUT_SOURCE ,
79 SELECTOR_METHOD_MAPPING ,
@@ -174,9 +176,10 @@ def _analyze_packages_from_source(
174176 threshold_class = SimilarityThreshold ,
175177 )
176178 results : list [TyposquatCheckResultFromSource ] = []
179+
177180 for parser in parsers :
178181 analyzed_dependencies = _analyze_dependencies (
179- top_package_reference , trusted_packages , parser .parse (), allowlist , show_progress_bar
182+ top_package_reference , trusted_packages , parser .parse (), allowlist , show_progress_bar , parser . file_path
180183 )
181184
182185 if analyzed_dependencies :
@@ -194,6 +197,7 @@ def _analyze_dependencies(
194197 packages : set [str ],
195198 allowlist : set [str ],
196199 show_progress_bar : bool ,
200+ dependency_file : Optional [str ] = None ,
197201) -> list [TyposquatCheckResultEntry ]:
198202 """Analyze the set of given dependencies against the trusted packages' golden set.
199203
@@ -203,8 +207,7 @@ def _analyze_dependencies(
203207 normalized_dependencies = top_package_reference .normalize_packages (packages )
204208
205209 errors = []
206-
207- for dependency in _get_dependencies_list (normalized_dependencies , show_progress_bar ):
210+ for dependency in _get_dependencies_list (normalized_dependencies , show_progress_bar , dependency_file ):
208211 if dependency in normalized_allowlist_packages :
209212 logger .info ("Dependency %s is in the allowlist" , dependency )
210213 continue
@@ -216,11 +219,17 @@ def _analyze_dependencies(
216219 return errors
217220
218221
219- def _get_dependencies_list (normalized_dependencies : set [str ], show_progress_bar : bool ) -> Iterable [str ]:
222+ def _get_dependencies_list (
223+ normalized_dependencies : set [str ], show_progress_bar : bool , dependency_file : Optional [str ] = None
224+ ) -> Iterable [str ]:
220225 """Determine if the progress bar will be showed or not. It returns an iterable of all the dependencies to analyze."""
221226 try :
222227 from rich .progress import track # noqa: PLC0415
223228
229+ if dependency_file :
230+ from click import echo
231+
232+ echo (style (f"Reading file { dependency_file } " , fg = "green" ), color = True )
224233 return (
225234 track (normalized_dependencies , description = "Processing..." )
226235 if show_progress_bar
0 commit comments