コード例 #1
0
ファイル: test_search.py プロジェクト: fpytloun/pip
def test_invalid_pypi_transformation():
    """
    Test transformation of pypi when ordering None
    """
    pypi_hits = [
        {
            '_pypi_ordering': None,
            'name': 'bar',
            'summary': 'bar summary',
            'version': '1.0',
        },
        {
            '_pypi_ordering': 100,
            'name': 'foo',
            'summary': 'foo summary',
            'version': '1.0',
        },
    ]

    expected = [
        {
            'score': 100,
            'versions': ['1.0'],
            'name': 'foo',
            'summary': 'foo summary',
        },
        {
            'score': 0,
            'versions': ['1.0'],
            'name': 'bar',
            'summary': 'bar summary',
        },
    ]
    assert transform_hits(pypi_hits) == expected
コード例 #2
0
ファイル: test_search.py プロジェクト: winhamwr/pip
def test_pypi_xml_transformation():
    """
    Test transformation of data structures (pypi xmlrpc to custom list).

    """
    pypi_hits = [{
        '_pypi_ordering': 100,
        'name': 'foo',
        'summary': 'foo summary',
        'version': '1.0'
    }, {
        '_pypi_ordering': 200,
        'name': 'foo',
        'summary': 'foo summary v2',
        'version': '2.0'
    }, {
        '_pypi_ordering': 50,
        'name': 'bar',
        'summary': 'bar summary',
        'version': '1.0'
    }]
    expected = [{
        'score': 200,
        'versions': ['1.0', '2.0'],
        'name': 'foo',
        'summary': 'foo summary v2'
    }, {
        'score': 50,
        'versions': ['1.0'],
        'name': 'bar',
        'summary': 'bar summary'
    }]
    assert expected == transform_hits(pypi_hits)
コード例 #3
0
ファイル: test_search.py プロジェクト: xiaowzxqaq/pip-cn
def test_invalid_pypi_transformation():
    """
    Test transformation of pypi when ordering None
    """
    pypi_hits = [{
        '_pypi_ordering': None,
        'name': 'bar',
        'summary': 'bar summary',
        'version': '1.0'
    }, {
        '_pypi_ordering': 100,
        'name': 'foo',
        'summary': 'foo summary',
        'version': '1.0'
    }]

    expected = [{
        'score': 100,
        'versions': ['1.0'],
        'name': 'foo',
        'summary': 'foo summary'
    }, {
        'score': 0,
        'versions': ['1.0'],
        'name': 'bar',
        'summary': 'bar summary'
    }]
    assert transform_hits(pypi_hits) == expected
コード例 #4
0
ファイル: outdated.py プロジェクト: technolize/pip-outdated
 def run(self, options, args):
     self.installed_packages = [p.project_name for p in pkg_resources.working_set]
     self.pypi = xmlrpclib.ServerProxy(index_url, pip.download.xmlrpclib_transport)
     packages = set([])
     for dist in get_installed_distributions(local_only=True):
         pypi_hits = self.search(dist.key)
         hits = transform_hits(pypi_hits)
         data = [(i['name'], highest_version(i['versions'])) for i in hits]
         packages = packages.union(set(data))
     self.print_results(packages)
コード例 #5
0
ファイル: test_search.py プロジェクト: 1stvamp/pip
def test_pypi_xml_transformation():
    """
    Test transformation of data structures (pypi xmlrpc to custom list).

    """
    pypi_hits = [{'_pypi_ordering': 100, 'name': 'foo', 'summary': 'foo summary', 'version': '1.0'},
            {'_pypi_ordering': 200, 'name': 'foo', 'summary': 'foo summary v2', 'version': '2.0'},
            {'_pypi_ordering': 50, 'name': 'bar', 'summary': 'bar summary', 'version': '1.0'}]
    expected = [{'score': 200, 'versions': ['1.0', '2.0'], 'name': 'foo', 'summary': 'foo summary v2'},
            {'score': 50, 'versions': ['1.0'], 'name': 'bar', 'summary': 'bar summary'}]
    assert transform_hits(pypi_hits) == expected
コード例 #6
0
ファイル: pip_extensions.py プロジェクト: upendra-k14/pip_gui
 def run(self, options, args):
     if not args:
         raise CommandError('Missing required argument (search query).')
     query = args
     try:
         # The developer version of pip uses options as argument
         pypi_hits = self.search(query,options)
         self.hits = transform_hits(pypi_hits)
         if pypi_hits:
             return SUCCESS
         else:
             return NO_MATCHES_FOUND
     except TypeError:
         # But, the stable version of pip uses options.index as argument
         pypi_hits = self.search(query,options.index)
         self.hits = transform_hits(pypi_hits)
         if pypi_hits:
             return SUCCESS
         else:
             return NO_MATCHES_FOUND
コード例 #7
0
ファイル: pip_extensions.py プロジェクト: wpfhtl/pip_gui
 def run(self, options, args):
     if not args:
         raise CommandError('Missing required argument (search query).')
     query = args
     try:
         # The developer version of pip uses options as argument
         pypi_hits = self.search(query, options)
         self.hits = transform_hits(pypi_hits)
         if pypi_hits:
             return SUCCESS
         else:
             return NO_MATCHES_FOUND
     except TypeError:
         # But, the stable version of pip uses options.index as argument
         pypi_hits = self.search(query, options.index)
         self.hits = transform_hits(pypi_hits)
         if pypi_hits:
             return SUCCESS
         else:
             return NO_MATCHES_FOUND
コード例 #8
0
ファイル: piphelper.py プロジェクト: tb0hdan/voiceplay
 def search_packages(package_name):
     """
     query pip package repository
     """
     versions = []
     search = SearchCommand()
     pypi = search.search(package_name,
                          search.parse_args([package_name])[0])
     for hit in transform_hits(pypi):
         if hit['name'] == package_name:
             versions = hit['versions']
             break
     return versions
コード例 #9
0
ファイル: piphelper.py プロジェクト: tb0hdan/voiceplay
 def search_packages(package_name):
     """
     query pip package repository
     """
     versions = []
     search = SearchCommand()
     pypi = search.search(package_name,
                          search.parse_args([package_name])[0])
     for hit in transform_hits(pypi):
         if hit['name'] == package_name:
             versions = hit['versions']
             break
     return versions
コード例 #10
0
def browse(request):
    import pkg_resources
    from pip.commands.search import highest_version, transform_hits
    from pip.util import get_installed_distributions

    import xmlrpclib

    pypi = xmlrpclib.ServerProxy('http://pypi.python.org/pypi')
    installed_packages = [p.project_name for p in pkg_resources.working_set]

    results = []
    for p in get_installed_distributions():
        result = {}
        hits = pypi.search({
            'name': p.project_name,
            'summary': p.project_name
        }, 'or')
        hits = transform_hits(hits)
        for hit in hits:
            try:
                if hit['name'] in installed_packages:
                    dist = pkg_resources.get_distribution(hit['name'])
                    result['name'] = hit['name']
                    result['version'] = dist.version
                    result['summary'] = hit['summary'] or ''
                    try:
                        result['latest'] = highest_version(hit['versions'])
                    finally:
                        results.append(result)
            except UnicodeEncodeError:
                pass

    query = request.GET.copy()

    return render_to_response(
        'djip/index.html',
        {
            'results': results,
            #'dir': path,
            #'p': p,
            #'q': q,
            #'page': page,
            #'results_var': results_var,
            #'counter': counter,
            'query': query,
            'title': _(u'PIP browser'),
            #'settings_var': get_settings_var(),
            #'breadcrumbs': get_breadcrumbs(query, path),
            'breadcrumbs_title': ""
        },
        context_instance=RequestContext(request))
コード例 #11
0
ファイル: test_search.py プロジェクト: arcivanov/pip
def test_invalid_pypi_transformation():
    """
    Test transformation of pypi when ordering None
    """
    pypi_hits = [
        {"_pypi_ordering": None, "name": "bar", "summary": "bar summary", "version": "1.0"},
        {"_pypi_ordering": 100, "name": "foo", "summary": "foo summary", "version": "1.0"},
    ]

    expected = [
        {"score": 100, "versions": ["1.0"], "name": "foo", "summary": "foo summary"},
        {"score": 0, "versions": ["1.0"], "name": "bar", "summary": "bar summary"},
    ]
    assert transform_hits(pypi_hits) == expected
コード例 #12
0
ファイル: test_search.py プロジェクト: arcivanov/pip
def test_pypi_xml_transformation():
    """
    Test transformation of data structures (pypi xmlrpc to custom list).

    """
    pypi_hits = [
        {"_pypi_ordering": 100, "name": "foo", "summary": "foo summary", "version": "1.0"},
        {"_pypi_ordering": 200, "name": "foo", "summary": "foo summary v2", "version": "2.0"},
        {"_pypi_ordering": 50, "name": "bar", "summary": "bar summary", "version": "1.0"},
    ]
    expected = [
        {"score": 200, "versions": ["1.0", "2.0"], "name": "foo", "summary": "foo summary v2"},
        {"score": 50, "versions": ["1.0"], "name": "bar", "summary": "bar summary"},
    ]
    assert transform_hits(pypi_hits) == expected
コード例 #13
0
ファイル: pypi.py プロジェクト: KGerring/RevealMe
	def run(self, options, args):
		if not args:
			raise CommandError('Missing required argument (search query).')
		query = args
		pypi_hits = self.search(query, options)
		hits = transform_hits(pypi_hits)

		terminal_width = None
		if sys.stdout.isatty():
			terminal_width = get_terminal_size()[0]

		print_results(hits, terminal_width=terminal_width)
		if pypi_hits:
			return SUCCESS
		return NO_MATCHES_FOUND
コード例 #14
0
    def info(self, **options):
        from djip import get_version
        from pip.commands.search import transform_hits
        from pip.util import get_installed_distributions

        import xmlrpclib

        pypi = xmlrpclib.ServerProxy('http://pypi.python.org/pypi')

        print "DjIP version %s\n" % get_version()

        for p in get_installed_distributions():
            hits = pypi.search({'name': p.project_name, 'summary': p.project_name}, 'or')
            hits = transform_hits(hits)
            self.print_results(hits)
コード例 #15
0
ファイル: views.py プロジェクト: Axion/DjIP
def browse(request):
    import pkg_resources
    from pip.commands.search import highest_version, transform_hits
    from pip.util import get_installed_distributions

    import xmlrpclib

    pypi = xmlrpclib.ServerProxy('http://pypi.python.org/pypi')
    installed_packages = [p.project_name for p in pkg_resources.working_set]

    results = []
    for p in get_installed_distributions():
        result = {}
        hits = pypi.search({'name': p.project_name, 'summary': p.project_name}, 'or')
        hits = transform_hits(hits)
        for hit in hits:
            try:
                if hit['name'] in installed_packages:
                    dist = pkg_resources.get_distribution(hit['name'])
                    result['name'] = hit['name']
                    result['version'] = dist.version
                    result['summary'] = hit['summary'] or ''
                    try:
                        result['latest'] = highest_version(hit['versions'])
                    finally:
                        results.append(result)
            except UnicodeEncodeError:
                pass


    query = request.GET.copy()

    return render_to_response('djip/index.html', {
        'results': results,
        #'dir': path,
        #'p': p,
        #'q': q,
        #'page': page,
        #'results_var': results_var,
        #'counter': counter,
        'query': query,
        'title': _(u'PIP browser'),
        #'settings_var': get_settings_var(),
        #'breadcrumbs': get_breadcrumbs(query, path),
        'breadcrumbs_title': ""
    }, context_instance=RequestContext(request))
コード例 #16
0
    def run(self):
        pkg_name = self.distribution.get_name()
        pkg_version = self.distribution.get_version()
        search = SearchCommand()
        options, _ = search.parse_args([pkg_name])
        pypi_hits = search.search(pkg_name, options)
        hits = transform_hits(pypi_hits)

        remote_version = None
        for hit in hits:
            if hit['name'] == pkg_name:
                remote_version = highest_version(hit['versions'])
                self.announce("Found %s version %s on PyPi" % (pkg_name, remote_version), log.INFO)
        if remote_version is None:
            raise RuntimeError("Could not found %s on PyPi" % pkg_name)
        if StrictVersion(VERSION) <= StrictVersion(remote_version):
            raise VersionError("Local version %s not greater than PyPi version %s" % (pkg_version, remote_version))
        self.announce("Local version %s higher than PyPi version" % pkg_version)
コード例 #17
0
ファイル: pypi.py プロジェクト: KGerring/RevealMe
	def simple_search(self, spec, operator='or', getter = None, omit = ('django')):
		"""Can search by name, version, author, author_email, maintainer,
		maintainer_email, home_page, license, summary,
		description, keywords, platform,download_url"""
		from pip.commands.search import transform_hits, highest_version
		from
		results = set()
		packages = {}
		from operator import itemgetter
		filter = itemgetter('name', 'version')
		info_getter = itemgetter('name', 'summary')
		name_getter = itemgetter('name')

		hits = self.proxy.search({'name': spec},{'summary':spec}, operator)
		results = transform_hits(hits)
		for result in results:
			result['version'] = highest_version(result['versions'])
			del result['score']
		return results
コード例 #18
0
    def run(self, options, args):
        local_only = options.local
        index_url = options.index

        installations = {}
        dependency_links = []
        find_tags = False

        f = sys.stdout

        for dist in pkg_resources.working_set:
            if dist.has_metadata('dependency_links.txt'):
                dependency_links.extend(
                    dist.get_metadata_lines('dependency_links.txt'), )

        for dist in get_installed_distributions(local_only=local_only):
            req = pip.FrozenRequirement.from_dist(
                dist,
                dependency_links,
                find_tags=find_tags,
            )
            installations[req.name] = req

        pypi_hits = self.search(
            [i.name for i in installations.values()],
            index_url,
        )
        hits = transform_hits(pypi_hits)

        for hit in hits:
            name = hit['name']
            try:
                if name in installations:
                    req = installations[name].req
                    latest = highest_version(hit['versions'])
                    if req.specs[0][1] != latest:
                        f.write('%s (LATEST: %s)\n' % (str(req), latest))

            except UnicodeEncodeError:
                pass
コード例 #19
0
ファイル: outdated.py プロジェクト: dgladkov/pip
    def run(self, options, args):
        local_only = options.local
        index_url = options.index

        installations = {}
        dependency_links = []
        find_tags = False

        f = sys.stdout

        for dist in pkg_resources.working_set:
            if dist.has_metadata('dependency_links.txt'):
                dependency_links.extend(
                    dist.get_metadata_lines('dependency_links.txt'),
                )

        for dist in get_installed_distributions(local_only=local_only):
            req = pip.FrozenRequirement.from_dist(
                dist, dependency_links, find_tags=find_tags,
            )
            installations[req.name] = req

        pypi_hits = self.search(
            [i.name for i in installations.values()],
            index_url,
        )
        hits = transform_hits(pypi_hits)

        for hit in hits:
            name = hit['name']
            try:
                if name in installations:
                    req = installations[name].req
                    latest = highest_version(hit['versions'])
                    if req.specs[0][1] != latest:
                        f.write('%s (LATEST: %s)\n' % (str(req), latest))

            except UnicodeEncodeError:
                pass