:mod:`packaging.pypi` --- Interface to projects indexes ======================================================= .. module:: packaging.pypi :synopsis: Low-level and high-level APIs to query 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 :mod:`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: :class:`packaging.pypi.client.ClientWrapper`. If you want more control, you can use the underlying classes :class:`packaging.pypi.simple.Crawler` and :class:`packaging.pypi.xmlrpc.Client` to connect to one specific interface. :mod:`packaging.pypi.client` --- High-level query API ===================================================== .. module:: packaging.pypi.client :synopsis: Wrapper around :mod;`packaging.pypi.xmlrpc` and :mod:`packaging.pypi.simple` to query indexes. 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:: ClientWrapper Instances of this class will use the simple interface or XML-RPC requests to query indexes and return :class:`packaging.pypi.dist.ReleaseInfo` and :class:`packaging.pypi.dist.ReleasesList` objects. .. method:: find_projects .. method:: get_release .. method:: get_releases :mod:`packaging.pypi.base` --- Base class for index crawlers ============================================================ .. module:: packaging.pypi.base :synopsis: Base class used to implement crawlers. .. class:: BaseClient(prefer_final, prefer_source) Base class containing common methods for the index crawlers or clients. One method is currently defined: .. method:: 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.