1515from typing import Sequence
1616from zipfile import ZipFile
1717
18+ import click
1819import packaging .requirements
1920import packaging .utils
2021import packaging .version
@@ -512,6 +513,7 @@ def get_resolved_dependencies(
512513 repos : Sequence [utils_pypi .PypiSimpleRepository ] = tuple (),
513514 as_tree : bool = False ,
514515 max_rounds : int = 200000 ,
516+ debug : bool = False ,
515517):
516518 """
517519 Return resolved dependencies of a ``requirements`` list of Requirement for
@@ -521,17 +523,22 @@ def get_resolved_dependencies(
521523 Used the provided ``repos`` list of PypiSimpleRepository.
522524 If empty, use instead the PyPI.org JSON API exclusively instead
523525 """
524- resolved_requirements = {
525- packaging .utils .canonicalize_name (r .name ): r .specifier
526- for r in requirements
527- if getattr (r , "is_requirement_resolved" , False )
528- }
529- resolver = Resolver (
530- provider = PythonInputProvider (
531- environment = environment , repos = repos , resolved_requirements = resolved_requirements
532- ),
533- reporter = BaseReporter (),
534- )
535- results = resolver .resolve (requirements = requirements , max_rounds = max_rounds )
536- results = format_resolution (results , as_tree = as_tree , environment = environment , repos = repos )
537- return results
526+ try :
527+ resolved_requirements = {
528+ packaging .utils .canonicalize_name (r .name ): r .specifier
529+ for r in requirements
530+ if getattr (r , "is_requirement_resolved" , False )
531+ }
532+ resolver = Resolver (
533+ provider = PythonInputProvider (
534+ environment = environment , repos = repos , resolved_requirements = resolved_requirements
535+ ),
536+ reporter = BaseReporter (),
537+ )
538+ results = resolver .resolve (requirements = requirements , max_rounds = max_rounds )
539+ results = format_resolution (results , as_tree = as_tree , environment = environment , repos = repos )
540+ return results
541+ except Exception as e :
542+ if debug :
543+ click .secho (f"{ e !r} " , err = True )
544+ return None
0 commit comments