2014-06-18 12 views
16

Per ogni pacchetto python è possibile specificare un list of classifiers. Tra gli altri vi è un classificatore Topic, che inserisce il pacchetto nelle categorie specificate che può essere browsed on PyPI.Ricerca di PyPI per argomento

Per esempio, numpy ha i seguenti argomenti:

Topic :: Software Development 
Topic :: Scientific/Engineering 

C'è un modo per cercare per tema di programmazione utilizzando pip search o altre librerie di terze parti?

+0

'search' pip dovrebbe includere una "per argomento" ricerca! – gaborous

risposta

14

È possibile cercare PyPI dal classificatore tramite il XMLRPC API, utilizzando il metodo browse():

try: 
    import xmlrpclib # Python 2 
except ImportError: 
    import xmlrpc.client as xmlrpclib # Python 3 

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

packages = pypi.browse([ 
    "Topic :: Software Development", 
    "Topic :: Scientific/Engineering", 
]) 

Nell'esempio di cui sopra, packages contiene un elenco di [package, version] liste per tutti i pacchetti che soddisfano sia il "Topic :: Software sviluppo" e "Topic :: Scientific/Engineering" classificatori:

>>> {pkg: ver for pkg, ver in packages if "numpy" in pkg} 
{ 
    'nose-numpyseterr': '0.1', 
    'msgpack-numpy': '0.3.2', 
    'numpy': '1.8.1', 
    'idx2numpy': '1.0b' 
} 

Da lì, è possibile recuperare ulteriori informazioni su un dato di rilascio:

>>> release = pypi.release_data('numpy', '1.8.1') 
>>> release['download_url'] 
'http://sourceforge.net/projects/numpy/files/NumPy/' 
>>> release['platform'] 
'Windows,Linux,Solaris,Mac OS-X,Unix' 
>>> release['downloads'] 
{ 
    'last_day': 5818, 
    'last_month': 187688, 
    'last_week': 44764 
} 

... ecc

Problemi correlati