summaryrefslogtreecommitdiffstats
path: root/requests/packages/urllib3/request.py
diff options
context:
space:
mode:
authorThibaut Horel <thibaut.horel@gmail.com>2013-09-29 17:48:14 -0400
committerThibaut Horel <thibaut.horel@gmail.com>2013-09-29 17:48:14 -0400
commitef7a80865f253852f7c7b01f04bc02b695ead67b (patch)
treeea718f746b5f9db4624057d1f0aa1df9abee8bd4 /requests/packages/urllib3/request.py
parent19346fa9068878af516cdb670bea4f791337507b (diff)
downloadlastfm-ef7a80865f253852f7c7b01f04bc02b695ead67b.tar.gz
Giving up on Python 2.5 support
Diffstat (limited to 'requests/packages/urllib3/request.py')
-rw-r--r--requests/packages/urllib3/request.py57
1 files changed, 27 insertions, 30 deletions
diff --git a/requests/packages/urllib3/request.py b/requests/packages/urllib3/request.py
index a7e0b5d..66a9a0e 100644
--- a/requests/packages/urllib3/request.py
+++ b/requests/packages/urllib3/request.py
@@ -1,11 +1,13 @@
# urllib3/request.py
-# Copyright 2008-2011 Andrey Petrov and contributors (see CONTRIBUTORS.txt)
+# Copyright 2008-2013 Andrey Petrov and contributors (see CONTRIBUTORS.txt)
#
# This module is part of urllib3 and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php
-
-from urllib import urlencode
+try:
+ from urllib.parse import urlencode
+except ImportError:
+ from urllib import urlencode
from .filepost import encode_multipart_formdata
@@ -28,21 +30,29 @@ class RequestMethods(object):
in the URL (such as GET, HEAD, DELETE).
:meth:`.request_encode_body` is for sending requests whose fields are
- encoded in the *body* of the request using multipart or www-orm-urlencoded
+ encoded in the *body* of the request using multipart or www-form-urlencoded
(such as for POST, PUT, PATCH).
:meth:`.request` is for making any kind of request, it will look up the
appropriate encoding format and use one of the above two methods to make
the request.
+
+ Initializer parameters:
+
+ :param headers:
+ Headers to include with all requests, unless other headers are given
+ explicitly.
"""
_encode_url_methods = set(['DELETE', 'GET', 'HEAD', 'OPTIONS'])
-
_encode_body_methods = set(['PATCH', 'POST', 'PUT', 'TRACE'])
+ def __init__(self, headers=None):
+ self.headers = headers or {}
+
def urlopen(self, method, url, body=None, headers=None,
encode_multipart=True, multipart_boundary=None,
- **kw):
+ **kw): # Abstract
raise NotImplemented("Classes extending RequestMethods must implement "
"their own ``urlopen`` method.")
@@ -95,13 +105,16 @@ class RequestMethods(object):
such as with OAuth.
Supports an optional ``fields`` parameter of key/value strings AND
- key/filetuple. A filetuple is a (filename, data) tuple. For example: ::
+ key/filetuple. A filetuple is a (filename, data, MIME type) tuple where
+ the MIME type is optional. For example: ::
fields = {
'foo': 'bar',
'fakefile': ('foofile.txt', 'contents of foofile'),
'realfile': ('barfile.txt', open('realfile').read()),
- 'nonamefile': ('contents of nonamefile field'),
+ 'typedfile': ('bazfile.bin', open('bazfile').read(),
+ 'image/jpeg'),
+ 'nonamefile': 'contents of nonamefile field',
}
When uploading a file, providing a filename (the first parameter of the
@@ -119,27 +132,11 @@ class RequestMethods(object):
body, content_type = (urlencode(fields or {}),
'application/x-www-form-urlencoded')
- headers = headers or {}
- headers.update({'Content-Type': content_type})
-
- return self.urlopen(method, url, body=body, headers=headers,
- **urlopen_kw)
+ if headers is None:
+ headers = self.headers
- # Deprecated:
+ headers_ = {'Content-Type': content_type}
+ headers_.update(headers)
- def get_url(self, url, fields=None, **urlopen_kw):
- """
- .. deprecated:: 1.0
- Use :meth:`request` instead.
- """
- return self.request_encode_url('GET', url, fields=fields,
- **urlopen_kw)
-
- def post_url(self, url, fields=None, headers=None, **urlopen_kw):
- """
- .. deprecated:: 1.0
- Use :meth:`request` instead.
- """
- return self.request_encode_body('POST', url, fields=fields,
- headers=headers,
- **urlopen_kw)
+ return self.urlopen(method, url, body=body, headers=headers_,
+ **urlopen_kw)