mirror of https://github.com/python/cpython
75 lines
2.9 KiB
ReStructuredText
75 lines
2.9 KiB
ReStructuredText
: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.
|