@@ -633,6 +633,7 @@ def get_resolved_dependencies(
633633 repos : Sequence [PypiSimpleRepository ] = tuple (),
634634 as_tree : bool = False ,
635635 max_rounds : int = 200000 ,
636+ debug : bool = False ,
636637):
637638 """
638639 Return resolved dependencies of a ``requirements`` list of Requirement for
@@ -642,10 +643,22 @@ def get_resolved_dependencies(
642643 Used the provided ``repos`` list of PypiSimpleRepository.
643644 If empty, use instead the PyPI.org JSON API exclusively instead
644645 """
645- resolver = Resolver (
646- provider = PythonInputProvider (environment = environment , repos = repos ),
647- reporter = BaseReporter (),
648- )
649- results = resolver .resolve (requirements = requirements , max_rounds = max_rounds )
650- results = format_resolution (results , as_tree = as_tree , environment = environment , repos = repos )
651- return results
646+ try :
647+ resolved_requirements = {
648+ packaging .utils .canonicalize_name (r .name ): r .specifier
649+ for r in requirements
650+ if getattr (r , "is_requirement_resolved" , False )
651+ }
652+ resolver = Resolver (
653+ provider = PythonInputProvider (
654+ environment = environment , repos = repos , resolved_requirements = resolved_requirements
655+ ),
656+ reporter = BaseReporter (),
657+ )
658+ results = resolver .resolve (requirements = requirements , max_rounds = max_rounds )
659+ results = format_resolution (results , as_tree = as_tree , environment = environment , repos = repos )
660+ return results
661+ except Exception as e :
662+ if debug :
663+ click .secho (f"{ e !r} " , err = True )
664+ return None
0 commit comments