Differences between revisions 23 and 27 (spanning 4 versions)
Revision 23 as of 2009-11-06 01:03:43
Size: 3561
Editor: 164
Comment: Improve readability
Revision 27 as of 2010-04-13 22:57:55
Size: 3566
Editor: 101
Comment: We’re on the client side, really
Deletions are marked like this. Additions are marked like this.
Line 7: Line 7:
>>> server = xmlrpclib.Server('http://pypi.python.org/pypi')
>>> server.package_releases('roundup')
>>> client = xmlrpclib.ServerProxy('http://pypi.python.org/pypi')
>>> client.package_releases('roundup')
Line 10: Line 10:
>>> pprint.pprint(server.release_urls('roundup', '1.4.10')) >>> pprint.pprint(client.release_urls('roundup', '1.4.10'))

PyPI's XML-RPC methods

Example usage:

>>> import xmlrpclib
>>> import pprint
>>> client = xmlrpclib.ServerProxy('http://pypi.python.org/pypi')
>>> client.package_releases('roundup')
['1.4.10']
>>> pprint.pprint(client.release_urls('roundup', '1.4.10'))
[{'comment_text': '',
  'downloads': 3163,
  'filename': 'roundup-1.1.2.tar.gz',
  'has_sig': True,
  'md5_digest': '7c395da56412e263d7600fa7f0afa2e5',
  'packagetype': 'sdist',
  'python_version': 'source',
  'size': 876455,
  'upload_time': <DateTime '20060427T06:22:35' at 912fecc>,
  'url': 'http://pypi.python.org/packages/source/r/roundup/roundup-1.1.2.tar.gz'},
 {'comment_text': '',
  'downloads': 2067,
  'filename': 'roundup-1.1.2.win32.exe',
  'has_sig': True,
  'md5_digest': '983d565b0b87f83f1b6460e54554a845',
  'packagetype': 'bdist_wininst',
  'python_version': 'any',
  'size': 614270,
  'upload_time': <DateTime '20060427T06:26:04' at 912fdec>,
  'url': 'http://pypi.python.org/packages/any/r/roundup/roundup-1.1.2.win32.exe'}]

list_packages()

  • Retrieve a list of the package names registered with the package index. Returns a list of name strings.

package_releases(package_name, show_hidden=False)

  • Retrieve a list of the releases registered for the given package_name. Returns a list with all version strings if show_hidden is True or only the non-hidden ones otherwise.

release_urls(package_name, version)

  • Retrieve a list of download URLs for the given package release. Returns a list of dicts with the following keys:
    • url
    • packagetype ('sdist', 'bdist', etc)
    • filename
    • size
    • md5_digest
    • downloads
    • has_sig
    • python_version (required version, or 'source', or 'any')
    • comment_text

release_data(package_name, version)

  • Retrieve metadata describing a specific package release. Returns a dict with keys for:
    • name
    • version
    • stable_version
    • author
    • author_email
    • maintainer
    • maintainer_email
    • home_page
    • license
    • summary
    • description
    • keywords
    • platform
    • download_url
    • classifiers (list of classifier strings)

search(spec[, operator])

  • Search the package database using the indicated search spec.
  • The spec may include any of the keywords described in the above list (except 'stable_version' and 'classifiers'), for example: {'description': 'spam'} will search description fields. Within the spec, a field's value can be a string or a list of strings (the values within the list are combined with an OR), for example: {'name': ['foo', 'bar']}. Arguments for different fields are combined using either "and" (the default) or "or". Example: search({'name': 'foo', 'description': 'bar'}, 'or'). The results are returned as a list of dicts {'name': package name, 'version': package release version, 'summary': package release summary}

changelog(since)

  • Retrieve a list of four-tuples (name, version, timestamp, action) since the given timestamp. All timestamps are UTC values. The argument is a UTC integer seconds since the epoch.

ratings(name, version, since)

  • Retrieve a list (name, version, user_name, date, rating, message) listing all ratings for a given release. If version is an empty string, lists all ratings on the package; if name is an empty string, lists all ratings in PyPI. user_name is an empty string if there is no comment.


CategoryDocumentation CategoryDocumentation

PyPIXmlRpc (last edited 2018-07-10 16:43:27 by EWDurbin)

Unable to edit the page? See the FrontPage for instructions.