本文整理汇总了Python中xmlrpc.client.ServerProxy.list_packages方法的典型用法代码示例。如果您正苦于以下问题:Python ServerProxy.list_packages方法的具体用法?Python ServerProxy.list_packages怎么用?Python ServerProxy.list_packages使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xmlrpc.client.ServerProxy
的用法示例。
在下文中一共展示了ServerProxy.list_packages方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: list_packages
# 需要导入模块: from xmlrpc.client import ServerProxy [as 别名]
# 或者: from xmlrpc.client.ServerProxy import list_packages [as 别名]
def list_packages(classifiers=None):
client = ServerProxy(PYPI_XMLRPC_URL)
if not classifiers:
# packages = yield from client.list_packages()
packages = client.list_packages()
packages = dict.fromkeys(packages)
else:
# packages = yield from client.browse(classifiers)
packages = client.browse(classifiers)
# browse returns all versions, use the latest one only
# TODO: use LooseVersion
packages = dict(sorted(packages))
return packages
示例2: __init__
# 需要导入模块: from xmlrpc.client import ServerProxy [as 别名]
# 或者: from xmlrpc.client.ServerProxy import list_packages [as 别名]
class PYPISource:
PYPI_URL = 'http://pypi.python.org/pypi'
def __init__(self):
self.pypi = ServerProxy(self.PYPI_URL)
def packages(self):
return self.pypi.list_packages()
def releases(self, package):
return self.pypi.package_releases(package, True)
def urls(self, package, version):
return self.pypi.release_urls(package, version)
def release_data(self, package, version):
return self.pypi.release_data(package, version)
def release_data_and_urls(self, package, version):
return [self.release_data(package, version), self.urls(package, version)]
def latest(self):
return self.pypi.changelog_last_serial()
def changes(self, serial):
return self.pypi.changelog_since_serial(serial)
示例3: ServerProxy
# 需要导入模块: from xmlrpc.client import ServerProxy [as 别名]
# 或者: from xmlrpc.client.ServerProxy import list_packages [as 别名]
from xmlrpc.client import ServerProxy
from collections import defaultdict
from progressbar import ProgressBar, Bar, ETA, AdaptiveETA, Percentage
pypi = ServerProxy("http://pypi.python.org/pypi")
start = pypi.changelog_last_serial()
packages = pypi.list_packages()
releases = defaultdict(list)
pb = ProgressBar(widgets=[Percentage(), ' ', Bar(), ' ', ETA(), ' ', AdaptiveETA()])
for pkg in pb(packages):
rel = pypi.package_releases(pkg)
all = pypi.package_releases(pkg, True)
releases[pkg] = (set(rel), set(all)-set(rel))
for r in all:
urls = release_urls(pkg, r)
data = release_data(pkg, r)
dl = release_downloads(pkg, r)
end = pypi.changelog_last_serial()
if end > start:
print("{} changes while this code ran".format(end-start))
示例4: Client
# 需要导入模块: from xmlrpc.client import ServerProxy [as 别名]
# 或者: from xmlrpc.client.ServerProxy import list_packages [as 别名]
class Client(object):
def __init__(self):
self.uri = 'https://pypi.python.org/pypi'
self.proxy = ServerProxy(self.uri)
self.cache = set()
def all_distributions(self):
return self.proxy.list_packages()
def roles(self, package):
return [cl[1] for cl in self.proxy.package_roles(package)]
def user_packages(self, user):
return [cl[1] for cl in self.proxy.user_packages(user)]
def release_downloads(self, package, version=None):
if version is None:
version = max(self.proxy.package_releases(package))
if isinstance(version, list):
version = version[0]
return self.proxy.release_downloads(package, version)
def package_releases(self, package):
return self.proxy.package_releases(package)
def release_data(self, package, version=None):
version = max(self.proxy.package_releases(package))
if isinstance(version, list):
version = version[0]
data = self.proxy.release_data(package, version)
return data
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
def deep_search(self, spec, operator='and', cache = None, limit=20):
results =list()
temp_cache = set()
initial_results = self.simple_search(spec, operator='and', getter=None, omit=['django'])
for result in initial_results:
new = PyPiPackage(result)
results.append(new)
temp_cache.add(new)
if cache is not None:
self.cache = cache|temp_cache
else:
pass
filtered = sorted(results, key = lambda x: x.max_downloads, reversed=True)
return filtered[limit:]
def browse(self, classifiers):
return self.proxy.browse(classifiers)
def get_json_url(self, package):
return "http://pypi.python.org/pypi/{}/json".format(package)
示例5: all_projects
# 需要导入模块: from xmlrpc.client import ServerProxy [as 别名]
# 或者: from xmlrpc.client.ServerProxy import list_packages [as 别名]
def all_projects():
client = ServerProxy('https://pypi.python.org/pypi')
return client.list_packages()
示例6: get_packages
# 需要导入模块: from xmlrpc.client import ServerProxy [as 别名]
# 或者: from xmlrpc.client.ServerProxy import list_packages [as 别名]
def get_packages():
pypi = ServerProxy('https://pypi.python.org/pypi')
return pypi.list_packages()