| Size: 5091 Comment:  | Size: 5113 Comment:  | 
| Deletions are marked like this. | Additions are marked like this. | 
| Line 3: | Line 3: | 
| == PyPI's XML-RPC methods == | == The XMLRPC interface for PyPI is considered legacy and should not be used. Use the [[PyPISimple|Simple]] and [[PyPIJSON|JSON]] APIs.PyPI's XML-RPC methods == | 
| Line 39: | Line 38: | 
| Line 42: | Line 39: | 
| Line 46: | Line 42: | 
| Line 48: | Line 43: | 
| Line 52: | Line 46: | 
| Line 54: | Line 47: | 
| Line 58: | Line 50: | 
| Line 60: | Line 51: | 
| Line 64: | Line 54: | 
| Line 66: | Line 55: | 
| Line 70: | Line 58: | 
| Line 72: | Line 59: | 
| Line 85: | Line 71: | 
| Line 88: | Line 72: | 
| Line 118: | Line 101: | 
| Line 121: | Line 103: | 
| Line 123: | Line 104: | 
| Line 141: | Line 121: | 
| Line 143: | Line 122: | 
| Line 147: | Line 125: | 
| Line 149: | Line 126: | 
| Line 153: | Line 129: | 
| Line 155: | Line 130: | 
| Line 159: | Line 133: | 
| Line 161: | Line 134: | 
| Line 166: | Line 138: | 
| [[CategoryDocumentation|CategoryDocumentation]] [[CategoryDocumentation|CategoryDocumentation]] | CategoryDocumentation CategoryDocumentation | 
PyPI APIs: Simple, JSON, XMLRPC.
The XMLRPC interface for PyPI is considered legacy and should not be used. Use the [[PyPISimple|Simple]] and [[PyPIJSON|JSON]] APIs.PyPI's XML-RPC methods
Example usage:
>>> try:
>>>     import xmlrpclib
>>> except ImportError:
>>>     import xmlrpc.client as xmlrpclib
>>> import pprint
>>> client = xmlrpclib.ServerProxy('https://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.
package_roles(package_name)
- Retrieve a list of users and their attributes roles for a given package_name. Role is either 'Maintainer' or 'Owner'.
user_packages(user)
- Retrieve a list of [role_name, package_name] for a given username. Role is either 'Maintainer' or 'Owner'.
release_downloads(package_name, version)
- Retrieve a list of files and download count for a given package and release version.
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)
- requires
- requires_dist
- provides
- provides_dist
- requires_external
- requires_python
- obsoletes
- obsoletes_dist
- project_url
- docs_url (URL of the packages.python.org docs if they've been supplied)
 
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']}. Valid keys for the spec dict are listed here. Invalid keys are ignored: - name
- version
- author
- author_email
- maintainer
- maintainer_email
- home_page
- license
- summary
- description
- keywords
- platform
- download_url
 
browse(classifiers)
- Retrieve a list of (name, version) pairs of all releases classified with all of the given classifiers. 'classifiers' must be a list of Trove classifier strings.
changelog(since, with_ids=False)
- Retrieve a list of four-tuples (name, version, timestamp, action), or five-tuple including the serial id if ids are requested, since the given timestamp. All timestamps are UTC values. The argument is a UTC integer seconds since the epoch.
changelog_last_serial()
- Retrieve the last event's serial id.
changelog_since_serial(since_serial)
- Retrieve a list of five-tuples (name, version, timestamp, action, serial) since the event identified by the given serial. All timestamps are UTC values. The argument is a UTC integer seconds since the epoch.
