Spade
Mini Shell
| Directory:~$ /lib/python2.7/site-packages/requests_toolbelt/utils/ |
| [Home] [System Details] [Kill Me] |
�
ӵ Yc@sTdZddlmZddlmZd
Zd�Zd�Zd�Zd�Zd S(s8Implementation of nested form-data
encoding function(s).i(t
basestring(t urlencodeRcs�tttf�t|�}td�|D��s@td��n|}x,t�fd�|D��rtt|�}qIWt|||�S(sTHandle
nested form-data queries and serialize them appropriately.
There are times when a website expects a nested form data query to be
sent
but, the standard library's urlencode function does not
appropriately
handle the nested structures. In that case, you need this function
which
will flatten the structure first and then properly encode it for you.
When using this to send data in the body of a request, make sure you
specify the appropriate Content-Type header for the request.
.. code-block:: python
import requests
from requests_toolbelt.utils import formdata
query = {
'my_dict': {
'foo': 'bar',
'biz': 'baz",
},
'a': 'b',
}
resp = requests.get(url, params=formdata.urlencode(query))
# or
resp = requests.post(
url,
data=formdata.urlencode(query),
headers={
'Content-Type':
'application/x-www-form-urlencoded'
},
)
Similarly, you can specify a list of nested tuples, e.g.,
.. code-block:: python
import requests
from requests_toolbelt.utils import formdata
query = [
('my_list', [
('foo', 'bar'),
('biz', 'baz'),
]),
('a', 'b'),
]
resp = requests.get(url, params=formdata.urlencode(query))
# or
resp = requests.post(
url,
data=formdata.urlencode(query),
headers={
'Content-Type':
'application/x-www-form-urlencoded'
},
)
For additional parameter and return information, see the official
`urlencode`_ documentation.
.. _urlencode:
https://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlencode
css|]}t|�VqdS(N(t
_is_two_tuple(t.0ti((sD/usr/lib/python2.7/site-packages/requests_toolbelt/utils/formdata.pys <genexpr>NssQExpected
query to be able to be converted to a list comprised of length 2
tuples.c3s$|]\}}t|��VqdS(N(t
isinstance(Rt_tv(texpand_classes(sD/usr/lib/python2.7/site-packages/requests_toolbelt/utils/formdata.pys <genexpr>Ss( tdicttlistttuplet_to_kv_listtallt
ValueErrortanyt_expand_query_valuest
_urlencode(tquerytargstkwargstoriginal_query_listt
query_list((RsD/usr/lib/python2.7/site-packages/requests_toolbelt/utils/formdata.pyR
sAcCs#t|d�rt|j��S|S(Ntitems(thasattrR
R(tdict_or_list((sD/usr/lib/python2.7/site-packages/requests_toolbelt/utils/formdata.pyRYscCs%t|ttf�o$t|�dkS(Ni(RR
Rtlen(titem((sD/usr/lib/python2.7/site-packages/requests_toolbelt/utils/formdata.pyR_scsyg}xl|D]d\}}t|t�r>|j||f�q
|d�t|�}|j�fd�|D��q
W|S(Ns[%s]c3s%|]\}}�||fVqdS(N((RtkR(tkey_fmt(sD/usr/lib/python2.7/site-packages/requests_toolbelt/utils/formdata.pys <genexpr>ks(RRtappendRtextend(RRtkeytvaluet
value_list((RsD/usr/lib/python2.7/site-packages/requests_toolbelt/utils/formdata.pyRcs
!N(s urlencode( t__doc__t_compatRRRt__all__RRR(((sD/usr/lib/python2.7/site-packages/requests_toolbelt/utils/formdata.pyt<module>s O