27.15.1.8. packaging.pypi — Interface to projects indexes

Packaging queries PyPI to get information about projects or download them. The low-level facilities used internally are also part of the public API designed to be used by other tools.

The packaging.pypi package provides those facilities, which can be used to access information about Python projects registered at indexes, the main one being PyPI, located ad http://pypi.python.org/.

There is two ways to retrieve data from these indexes: a screen-scraping interface called the “simple API”, and XML-RPC. The first one uses HTML pages located under http://pypi.python.org/simple/, the second one makes XML-RPC requests to http://pypi.python.org/pypi/. All functions and classes also work with other indexes such as mirrors, which typically implement only the simple interface.

Packaging provides a class that wraps both APIs to provide full query and download functionality: packaging.pypi.client.ClientWrapper. If you want more control, you can use the underlying classes packaging.pypi.simple.Crawler and packaging.pypi.xmlrpc.Client to connect to one specific interface.

27.15.1.9. packaging.pypi.client — High-level query API

This module provides a high-level API to query indexes and search for releases and distributions. The aim of this module is to choose the best way to query the API automatically, either using XML-RPC or the simple index, with a preference toward the latter.

class packaging.pypi.client.ClientWrapper

Instances of this class will use the simple interface or XML-RPC requests to query indexes and return packaging.pypi.dist.ReleaseInfo and packaging.pypi.dist.ReleasesList objects.

find_projects()
get_release()
get_releases()

27.15.1.10. packaging.pypi.base — Base class for index crawlers

class packaging.pypi.base.BaseClient(prefer_final, prefer_source)

Base class containing common methods for the index crawlers or clients. One method is currently defined:

download_distribution(requirements, temp_path=None, prefer_source=None, prefer_final=None)

Download a distribution from the last release according to the requirements. If temp_path is provided, download to this path, otherwise, create a temporary directory for the download. If a release is found, the full path to the downloaded file is returned.