示例#1
0
文件: pypi.py 项目: nvie/pip-tools
    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)
示例#2
0
    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)
示例#3
0
    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)