moving curl into utils

#139
This commit is contained in:
Kenneth Reitz
2011-08-23 23:52:43 -04:00
parent a276ebd240
commit 256c86f8f7
2 changed files with 36 additions and 36 deletions
-35
View File
@@ -383,41 +383,6 @@ class Request(object):
return self.sent
@property
def curl(self):
"""Creates a curl command from the request"""
#TODO - Auth with User names and accounts
#TODO - Files
#TODO - OAuth
#TODO - Cookies?
#: -L/--location - if there is a redirect, redo request on the new place
curl_cmd = 'curl -L '
#: -H/--header - Extra header to use when getting a web page
header = ''
if self.headers:
header = header.join(['-H "' + key + ':' + value + '" ' for key, value in self.headers.iteritems()])
if self.method.upper() == 'HEAD':
#: -I/--head - fetch headers only
method_opt = '-I '
else:
#: -X/--request - specify request method
method_opt = '-X %s ' % self.method.upper()
data = ''
if self.method in ('PUT', 'POST', 'PATCH'):
#: -d/--data - send specified data in post request.
if isinstance(self.data, (list, tuple)):
data = data.join(['-d ' + key + '=' + value + ' ' for key, value in self.data])
elif self._enc_data is not None:
data = '-d ' + self._enc_data + ' '
#: Params handled in _build_url
return curl_cmd + method_opt + data + header + '"' + self._build_url() + '"'
class Response(object):
"""The core :class:`Response <Response>` object. All
+36 -1
View File
@@ -165,4 +165,39 @@ def decode_gzip(content):
:param content: bytestring to gzip-decode.
"""
return zlib.decompress(content, 16+zlib.MAX_WBITS)
return zlib.decompress(content, 16+zlib.MAX_WBITS)
def curl_from_request(request):
"""Creates a curl command from the request."""
#TODO - Auth with User names and accounts
#TODO - Files
#TODO - OAuth
#TODO - Cookies?
#: -L/--location - if there is a redirect, redo request on the new place
curl_cmd = 'curl -L '
#: -H/--header - Extra header to use when getting a web page
header = ''
if request.headers:
header = header.join(['-H "' + key + ':' + value + '" ' for key, value in request.headers.iteritems()])
if request.method.upper() == 'HEAD':
#: -I/--head - fetch headers only
method_opt = '-I '
else:
#: -X/--request - specify request method
method_opt = '-X %s ' % request.method.upper()
data = ''
if request.method in ('PUT', 'POST', 'PATCH'):
#: -d/--data - send specified data in post request.
if isinstance(request.data, (list, tuple)):
data = data.join(['-d ' + key + '=' + value + ' ' for key, value in request.data])
elif request._enc_data is not None:
data = '-d ' + request._enc_data + ' '
#: Params handled in _build_url
return curl_cmd + method_opt + data + header + '"' + request._build_url() + '"'