Exemplo n.º 1
0
 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)
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
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)
Exemplo n.º 5
0
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
Exemplo n.º 7
0
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.
Exemplo n.º 8
0
 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)