def setUp(self): if not self.run_test_server: self.index = PackageIndex() else: self.index = PackageIndex(self.test_server_url) self.index.username = '******' self.index.password = '******'
def search( query: dict, operation: str = None, url: str = urljoin(config.INDEX_URL, 'pypi'), ) -> Dict[str, Any]: '''Search PyPI for packages.''' index = PackageIndex(url=url) return index.search({k: v for k, v in query.items() if v is not None}, operation)
def test_search(self): self.index = PackageIndex() result = self.index.search({'name': 'tatterdemalion'}) self.assertEqual(len(result), 1) result = self.index.search({'name': 'ragamuff'}) if result: msg = 'got an unexpected result: %s' % result else: msg = None self.assertEqual(len(result), 0, msg)
def validate_requirements(request): """ Verifies that a group of packages (with specific versions) exists on PyPI.""" reqs = request.GET.get("requirements", None) reqs = json.loads(reqs) index = PackageIndex() results = {"errors": []} for req in reqs: name = req["name"] version = req["version"] search_params = {"name": name, "version": version} search_results = index.search(search_params) if len(search_results) == 0: results["errors"].append(name) return JsonResponse(results)
def search_package(request): """ Full-text search of a package name in PyPI.""" name = request.GET.get("name", None) if not name: return JsonResponse({"error": "Please provide a name to search"}) search_params = {"name": name} version = request.GET.get("version", None) if version: search_params["version"] = version index = PackageIndex() search_results = index.search(search_params) results = {"search": name, "results": []} for item in search_results: results["results"].append(item) return JsonResponse(results)
def download_package( package: Union[Distribution, Dict[str, Any]], dest: str = '.', digests: List[str] = [], ) -> Optional[str]: '''Execute package download.''' if isinstance(package, Distribution): release = PyPIRepositoryMixin.get_release(package) else: release = package # TODO create locator if release: filepath = os.path.join(dest, release['filename']) index = PackageIndex(url=urljoin(config.INDEX_URL, 'pypi')) index.download_file(release['url'], filepath, digest=None, reporthook=None) return filepath else: return None
import click from git import * from pony.orm import * from distlib.index import PackageIndex from natsort import natsorted from .__version__ import __version__ # ---------------------------------------------------------------------------- try: index = PackageIndex() info = index.search('agda-pkg') versions = natsorted([e["version"] for e in info if e["name"] == "agda-pkg"]) if len(versions) > 0: lastversion = versions[-1] msg = "Your Agda-Pkg version is {cversion}, however version {lversion} is available.\n" + \ "Consider upgrading via 'pip install --upgrade agda-pkg'." msg = msg.format(cversion = __version__ , lversion = lastversion) orden = [lastversion, __version__] if orden != natsorted(orden): click.echo(click.style(msg, fg='yellow', bold=True)) # Check if the index is updated.
def test_search(self): self.index = PackageIndex() result = self.index.search({'name': 'tatterdema'}) self.assertEqual(len(result), 1) result = self.index.search({'name': 'ragamuff'}) self.assertEqual(len(result), 0)