def resolve_reqs(self, download_dir, ireq, wheel_cache): results = None try: from pip._internal.operations.prepare import RequirementPreparer from pip._internal.resolve import Resolver as PipResolver except ImportError: # Pip 9 and below reqset = RequirementSet( self.build_dir, self.source_dir, download_dir=download_dir, wheel_download_dir=self._wheel_download_dir, session=self.session, wheel_cache=wheel_cache, ) results = reqset._prepare_file(self.finder, ireq) else: # pip >= 10 preparer_kwargs = { "build_dir": self.build_dir, "src_dir": self.source_dir, "download_dir": download_dir, "wheel_download_dir": self._wheel_download_dir, "progress_bar": "off", "build_isolation": self.build_isolation, } resolver_kwargs = { "finder": self.finder, "session": self.session, "upgrade_strategy": "to-satisfy-only", "force_reinstall": False, "ignore_dependencies": False, "ignore_requires_python": False, "ignore_installed": True, "isolated": False, "wheel_cache": wheel_cache, "use_user_site": False, } resolver = None preparer = None with RequirementTracker() as req_tracker: # Pip 18 uses a requirement tracker to prevent fork bombs if req_tracker: preparer_kwargs["req_tracker"] = req_tracker preparer = RequirementPreparer(**preparer_kwargs) resolver_kwargs["preparer"] = preparer reqset = RequirementSet() ireq.is_direct = True reqset.add_requirement(ireq) resolver = PipResolver(**resolver_kwargs) resolver.require_hashes = False results = resolver._resolve_one(reqset, ireq) reqset.cleanup_files() return set(results)
def resolve_reqs(self, download_dir, ireq, wheel_cache): results = None try: from pip._internal.operations.prepare import RequirementPreparer from pip._internal.resolve import Resolver as PipResolver except ImportError: # Pip 9 and below reqset = RequirementSet( self.build_dir, self.source_dir, download_dir=download_dir, wheel_download_dir=self._wheel_download_dir, session=self.session, wheel_cache=wheel_cache, ) results = reqset._prepare_file(self.finder, ireq) else: # pip >= 10 preparer_kwargs = { "build_dir": self.build_dir, "src_dir": self.source_dir, "download_dir": download_dir, "wheel_download_dir": self._wheel_download_dir, "progress_bar": "off", "build_isolation": self.build_isolation, } resolver_kwargs = { "finder": self.finder, "session": self.session, "upgrade_strategy": "to-satisfy-only", "force_reinstall": False, "ignore_dependencies": False, "ignore_requires_python": False, "ignore_installed": True, "isolated": False, "wheel_cache": wheel_cache, "use_user_site": False, } resolver = None preparer = None with RequirementTracker() as req_tracker: # Pip 18 uses a requirement tracker to prevent fork bombs if req_tracker: preparer_kwargs["req_tracker"] = req_tracker preparer = RequirementPreparer(**preparer_kwargs) resolver_kwargs["preparer"] = preparer reqset = RequirementSet() ireq.is_direct = True reqset.add_requirement(ireq) resolver = PipResolver(**resolver_kwargs) resolver.require_hashes = False results = resolver._resolve_one(reqset, ireq) reqset.cleanup_files() return set(results)
def resolve_reqs(self, download_dir, ireq, wheel_cache): results = None try: from pip._internal.operations.prepare import RequirementPreparer from pip._internal.resolve import Resolver as PipResolver except ImportError: # Pip 9 and below reqset = RequirementSet( self.build_dir, self.source_dir, download_dir=download_dir, wheel_download_dir=self._wheel_download_dir, session=self.session, wheel_cache=wheel_cache) results = reqset._prepare_file(self.finder, ireq) else: # pip >= 10 preparer_kwargs = { 'build_dir': self.build_dir, 'src_dir': self.source_dir, 'download_dir': download_dir, 'wheel_download_dir': self._wheel_download_dir, 'progress_bar': 'off', 'build_isolation': False } resolver_kwargs = { 'finder': self.finder, 'session': self.session, 'upgrade_strategy': "to-satisfy-only", 'force_reinstall': False, 'ignore_dependencies': False, 'ignore_requires_python': False, 'ignore_installed': True, 'isolated': False, 'wheel_cache': wheel_cache, 'use_user_site': False } resolver = None preparer = None with RequirementTracker() as req_tracker: # Pip 18 uses a requirement tracker to prevent fork bombs if req_tracker: preparer_kwargs['req_tracker'] = req_tracker preparer = RequirementPreparer(**preparer_kwargs) resolver_kwargs['preparer'] = preparer reqset = RequirementSet() ireq.is_direct = True reqset.add_requirement(ireq) resolver = PipResolver(**resolver_kwargs) resolver.require_hashes = False results = resolver._resolve_one(reqset, ireq) reqset.cleanup_files() return set(results)