aboutsummaryrefslogtreecommitdiff
path: root/requests/api.py
diff options
context:
space:
mode:
Diffstat (limited to 'requests/api.py')
-rw-r--r--requests/api.py121
1 files changed, 92 insertions, 29 deletions
diff --git a/requests/api.py b/requests/api.py
index 0e27410..8e328d2 100644
--- a/requests/api.py
+++ b/requests/api.py
@@ -11,37 +11,43 @@ This module impliments the Requests API.
"""
-import requests
import config
from .models import Request, Response, AuthManager, AuthObject, auth_manager
-__all__ = ('request', 'get', 'head', 'post', 'put', 'delete')
+__all__ = ('request', 'get', 'head', 'post', 'patch', 'put', 'delete')
+def request(method, url,
+ params=None, data=None, headers=None, cookies=None, files=None, auth=None,
+ timeout=None, allow_redirects=False, proxies=None):
-
-def request(method, url, **kwargs):
"""Constructs and sends a :class:`Request <models.Request>`. Returns :class:`Response <models.Response>` object.
:param method: method for the new :class:`Request` object.
:param url: URL for the new :class:`Request` object.
- :param params: (optional) Dictionary of GET/HEAD/DELETE Parameters to send with the :class:`Request`.
- :param data: (optional) Bytes/Dictionary of PUT/POST Data to send with the :class:`Request`.
+ :param params: (optional) Dictionary or bytes to be sent in the query string for the :class:`Request`.
+ :param data: (optional) Dictionary or bytes to send in the body of the :class:`Request`.
:param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`.
:param cookies: (optional) CookieJar object to send with the :class:`Request`.
:param files: (optional) Dictionary of 'filename': file-like-objects for multipart encoding upload.
:param auth: (optional) AuthObject to enable Basic HTTP Auth.
:param timeout: (optional) Float describing the timeout of the request.
:param allow_redirects: (optional) Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.
+ :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
"""
- data = kwargs.pop('data', dict()) or kwargs.pop('params', dict())
-
- r = Request(method=method, url=url, data=data, headers=kwargs.pop('headers', dict()),
- cookiejar=kwargs.get('cookies', None),
- files=kwargs.get('files', None),
- auth=kwargs.get('auth', auth_manager.get_auth(url)),
- timeout=kwargs.get('timeout', config.settings.timeout),
- allow_redirects=kwargs.get('allow_redirects', None)
+
+ r = Request(
+ method = method,
+ url = url,
+ data = data,
+ params = params,
+ headers = headers,
+ cookiejar = cookies,
+ files = files,
+ auth = auth or auth_manager.get_auth(url),
+ timeout = timeout or config.settings.timeout,
+ allow_redirects = allow_redirects,
+ proxies = proxies
)
r.send()
@@ -49,73 +55,130 @@ def request(method, url, **kwargs):
return r.response
-def get(url, params={}, headers={}, cookies=None, auth=None, **kwargs):
+def get(url,
+ params=None, headers=None, cookies=None, auth=None, timeout=None,
+ proxies=None):
+
"""Sends a GET request. Returns :class:`Response` object.
:param url: URL for the new :class:`Request` object.
- :param params: (optional) Dictionary of GET Parameters to send with the :class:`Request`.
+ :param params: (optional) Dictionary of parameters, or bytes, to be sent in the query string for the :class:`Request`.
:param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`.
:param cookies: (optional) CookieJar object to send with the :class:`Request`.
:param auth: (optional) AuthObject to enable Basic HTTP Auth.
:param timeout: (optional) Float describing the timeout of the request.
+ :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
"""
- return request('GET', url, params=params, headers=headers, cookies=cookies, auth=auth, **kwargs)
+ return request('GET', url,
+ params=params, headers=headers, cookies=cookies, auth=auth,
+ timeout=timeout, proxies=proxies)
-def head(url, params={}, headers={}, cookies=None, auth=None, **kwargs):
+def head(url,
+ params=None, headers=None, cookies=None, auth=None, timeout=None,
+ proxies=None):
+
"""Sends a HEAD request. Returns :class:`Response` object.
:param url: URL for the new :class:`Request` object.
- :param params: (optional) Dictionary of GET Parameters to send with the :class:`Request`.
+ :param params: (optional) Dictionary of parameters, or bytes, to be sent in the query string for the :class:`Request`.
:param headers: (optional) Dictionary of HTTP Headers to sent with the :class:`Request`.
:param cookies: (optional) CookieJar object to send with the :class:`Request`.
:param auth: (optional) AuthObject to enable Basic HTTP Auth.
:param timeout: (optional) Float describing the timeout of the request.
+ :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
"""
- return request('HEAD', url, params=params, headers=headers, cookies=cookies, auth=auth, **kwargs)
+ return request('HEAD', url,
+ params=params, headers=headers, cookies=cookies, auth=auth,
+ timeout=timeout, proxies=proxies)
+
+def post(url,
+ data='', headers=None, files=None, cookies=None, auth=None, timeout=None,
+ allow_redirects=False, params=None, proxies=None):
-def post(url, data={}, headers={}, files=None, cookies=None, auth=None, **kwargs):
"""Sends a POST request. Returns :class:`Response` object.
:param url: URL for the new :class:`Request` object.
- :param data: (optional) Dictionary of POST data to send with the :class:`Request`.
+ :param data: (optional) Dictionary or bytes to send in the body of the :class:`Request`.
:param headers: (optional) Dictionary of HTTP Headers to sent with the :class:`Request`.
:param files: (optional) Dictionary of 'filename': file-like-objects for multipart encoding upload.
:param cookies: (optional) CookieJar object to send with the :class:`Request`.
:param auth: (optional) AuthObject to enable Basic HTTP Auth.
:param timeout: (optional) Float describing the timeout of the request.
+ :param allow_redirects: (optional) Boolean. Set to True if redirect following is allowed.
+ :param params: (optional) Dictionary of parameters, or bytes, to be sent in the query string for the :class:`Request`.
+ :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
"""
- return request('POST', url, data=data, headers=headers, files=files, cookies=cookies, auth=auth, **kwargs)
+ return request('POST', url,
+ params=params, data=data, headers=headers, files=files,
+ cookies=cookies, auth=auth, timeout=timeout,
+ allow_redirects=allow_redirects, proxies=proxies)
-def put(url, data='', headers={}, files={}, cookies=None, auth=None, **kwargs):
+def put(url, data='', headers=None, files=None, cookies=None, auth=None,
+ timeout=None, allow_redirects=False, params=None, proxies=None):
"""Sends a PUT request. Returns :class:`Response` object.
:param url: URL for the new :class:`Request` object.
- :param params: (optional) Bytes of PUT Data to send with the :class:`Request`.
+ :param data: (optional) Dictionary or bytes to send in the body of the :class:`Request`.
:param headers: (optional) Dictionary of HTTP Headers to sent with the :class:`Request`.
:param files: (optional) Dictionary of 'filename': file-like-objects for multipart encoding upload.
:param cookies: (optional) CookieJar object to send with the :class:`Request`.
:param auth: (optional) AuthObject to enable Basic HTTP Auth.
:param timeout: (optional) Float describing the timeout of the request.
+ :param allow_redirects: (optional) Boolean. Set to True if redirect following is allowed.
+ :param params: (optional) Dictionary of parameters, or bytes, to be sent in the query string for the :class:`Request`.
+ :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
"""
- return request('PUT', url, data=data, headers=headers, files=files, cookies=cookies, auth=auth, **kwargs)
+ return request('PUT', url,
+ params=params, data=data, headers=headers, files=files,
+ cookies=cookies, auth=auth, timeout=timeout,
+ allow_redirects=allow_redirects, proxies=proxies)
+
+
+def patch(url, data='', headers=None, files=None, cookies=None, auth=None,
+ timeout=None, allow_redirects=False, params=None, proxies=None):
+ """Sends a PATCH request. Returns :class:`Response` object.
+
+ :param url: URL for the new :class:`Request` object.
+ :param data: (optional) Dictionary or bytes to send in the body of the :class:`Request`.
+ :param headers: (optional) Dictionary of HTTP Headers to sent with the :class:`Request`.
+ :param files: (optional) Dictionary of 'filename': file-like-objects for multipart encoding upload.
+ :param cookies: (optional) CookieJar object to send with the :class:`Request`.
+ :param auth: (optional) AuthObject to enable Basic HTTP Auth.
+ :param timeout: (optional) Float describing the timeout of the request.
+ :param allow_redirects: (optional) Boolean. Set to True if redirect following is allowed.
+ :param params: (optional) Dictionary of parameters, or bytes, to be sent in the query string for the :class:`Request`.
+ :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
+ """
+
+ return request('PATCH', url,
+ params=params, data=data, headers=headers, files=files,
+ cookies=cookies, auth=auth, timeout=timeout,
+ allow_redirects=allow_redirects, proxies=proxies)
+
+def delete(url,
+ params=None, headers=None, cookies=None, auth=None, timeout=None,
+ allow_redirects=False, proxies=None):
-def delete(url, params={}, headers={}, cookies=None, auth=None, **kwargs):
"""Sends a DELETE request. Returns :class:`Response` object.
:param url: URL for the new :class:`Request` object.
- :param params: (optional) Dictionary of DELETE Parameters to send with the :class:`Request`.
+ :param params: (optional) Dictionary of parameters, or bytes, to be sent in the query string for the :class:`Request`.
:param headers: (optional) Dictionary of HTTP Headers to sent with the :class:`Request`.
:param cookies: (optional) CookieJar object to send with the :class:`Request`.
:param auth: (optional) AuthObject to enable Basic HTTP Auth.
:param timeout: (optional) Float describing the timeout of the request.
+ :param allow_redirects: (optional) Boolean. Set to True if redirect following is allowed.
+ :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
"""
- return request('DELETE', url, params=params, headers=headers, cookies=cookies, auth=auth, **kwargs)
+ return request('DELETE', url,
+ params=params, headers=headers, cookies=cookies, auth=auth,
+ timeout=timeout, allow_redirects=allow_redirects, proxies=proxies)