# `pycurl` — A Python interface to the cURL library

The pycurl package is a Python interface to libcurl (http://curl.haxx.se/libcurl/). pycurl has been successfully built and tested with Python versions from 2.2 to the current 2.5.x releases.

libcurl is a client-side URL transfer library supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and LDAP. libcurl also supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploads, proxies, cookies, basic authentication, file transfer resume of FTP sessions, HTTP proxy tunneling and more.

All the functionality provided by libcurl can used through the pycurl interface. The following subsections describe how to use the pycurl interface, and assume familiarity with how libcurl works. For information on how libcurl works, please consult the curl library web pages (http://curl.haxx.se/libcurl/c/).

# Module Functionality

`pycurl.global_init(`option`)` ->None

  option is one of the constants pycurl.GLOBAL_SSL, pycurl.GLOBAL_WIN32, pycurl.GLOBAL_ALL, pycurl.GLOBAL_NOTHING, pycurl.GLOBAL_DEFAULT. Corresponds to `curl_global_init()` in libcurl.

`pycurl.global_cleanup()` -> None

  Corresponds to `curl_global_cleanup()` in libcurl.

`pycurl.version`

  This is a string with version information on libcurl, corresponding to `curl_version()` in libcurl.

  Example usage:

      >>> import pycurl
      >>> pycurl.version
      'libcurl/7.12.3 OpenSSL/0.9.7e zlib/1.2.2.1 libidn/0.5.12'

`pycurl.version_info()` -> Tuple

  Corresponds to `curl_version_info()` in libcurl. Returns a tuple of information which is similar to the `curl_version_info_data` struct returned by `curl_version_info()` in libcurl.

  Example usage:

      >>> import pycurl
      >>> pycurl.version_info()
      (2, '7.12.3', 461827, 'i586-pc-linux-gnu', 1565, 'OpenSSL/0.9.7e', 9465951,
      '1.2.2.1', ('ftp', 'gopher', 'telnet', 'dict', 'ldap', 'http', 'file',
      'https', 'ftps'), None, 0, '0.5.12')

`pycurl.Curl()` -> Curl object

  This function creates a new Curl object which corresponds to a `CURL` handle in libcurl. Curl objects automatically set CURLOPT_VERBOSE to 0, CURLOPT_NOPROGRESS to 1, provide a default CURLOPT_USERAGENT and setup CURLOPT_ERRORBUFFER to point to a private error buffer.

`pycurl.CurlMulti()` -> CurlMulti object

  This function creates a new CurlMulti object which corresponds to a `CURLM` handle in libcurl.

`pycurl.CurlShare()` -> CurlShare object

  This function creates a new CurlShare object which corresponds to a `CURLSH` handle in libcurl. CurlShare objects is what you pass as an argument to the SHARE option on Curl objects.

# Subsections

- Curl objects
- CurlMulti objects
- CurlShare objects
- Callbacks

$Id: pycurl.html,v 1.30 2006/10/30 12:48:50 kjetilja Exp $