def _install_from_piorepo(self, name, requirements): pkg_dir = None pkgdata = None versions = None last_exc = None for versions in PackageRepoIterator(name, self.repositories): pkgdata = self.max_satisfying_repo_version(versions, requirements) if not pkgdata: continue try: pkg_dir = self._install_from_url(name, pkgdata["url"], requirements, pkgdata.get("sha1")) break except Exception as e: # pylint: disable=broad-except last_exc = e click.secho("Warning! Package Mirror: %s" % e, fg="yellow") click.secho("Looking for another mirror...", fg="yellow") if versions is None: util.internet_on(raise_exception=True) raise exception.UnknownPackage(name + (". Error -> %s" % last_exc if last_exc else "")) if not pkgdata: raise exception.UndefinedPackageVersion(requirements or "latest", util.get_systype()) return pkg_dir
def _install_from_piorepo(self, name, requirements): assert name.startswith("id="), name version = self.get_latest_repo_version(name, requirements) if not version: raise exception.UndefinedPackageVersion(requirements or "latest", util.get_systype()) dl_data = util.get_api_result("/lib/download/" + str(name[3:]), dict(version=version), cache_valid="30d") assert dl_data return self._install_from_url( name, dl_data['url'].replace("http://", "https://") if app.get_setting("enable_ssl") else dl_data['url'], requirements)
def _install_from_piorepo(self, name, requirements): assert name.startswith("id=") version = self.get_latest_repo_version(name, requirements) if not version: raise exception.UndefinedPackageVersion(requirements or "latest", util.get_systype()) dl_data = util.get_api_result("/lib/download/" + str(name[3:]), dict(version=version)) assert dl_data pkg_dir = None try: pkg_dir = self._install_from_url( name, dl_data['url'].replace("http://", "https://"), requirements) except exception.APIRequestError: pkg_dir = self._install_from_url(name, dl_data['url'], requirements) return pkg_dir