A utility belt for advanced users of python-requests
Project description
requests toolbelt
This is just a collection of utilities that some users of python-requests might need but do not belong in requests proper.
multipart/form-data Encoder
The main attraction is a streaming multipart form-data object. Its API looks like:
from requests_toolbelt import MultipartEncoder import requests m = MultipartEncoder( fields={'field0': 'value', 'field1': 'value', 'field2': ('filename', open('file.py', 'rb'), 'text/plain')} ) r = requests.post('http://httpbin.org/post', data=m, headers={'Content-Type': m.content_type})
You can also use it to just plain use multipart/form-data encoding for requests that do not require files:
from requests_toolbelt import MultipartEncoder import requests m = MultipartEncoder(fields={'field0': 'value', 'field1': 'value'}) r = requests.post('http://httpbin.org/post', data=m, headers={'Content-Type': m.content_type})
You can also just use it to create the string to examine the data:
# Assuming `m` is one of the above m.to_string() # Always returns unicode
User-Agent constructor
You can easily construct your own requests-style User-Agent string:
from requests_toolbelt import user_agent headers = { 'User-Agent': user_agent('my_package', '0.0.1') } r = requests.get('https://api.github.com/users', headers=headers)
SSLAdapter
The SSLAdapter is an implementation of the adapter proposed over on @Lukasa’s blog, here. This adapter allows the user to choose one of the SSL protocols made available in Python’s ssl module for outgoing HTTPS connections:
from requests_toolbelt import SSLAdapter import requests import ssl s = requests.Session() s.mount('https://', SSLAdapter(ssl.PROTOCOL_TLSv1))
History
0.2.0 – 2014-02-24
Add ability to tell MultipartEncoder which encoding to use. By default it uses ‘utf-8’.
Fix #10 - allow users to install with pip
Fix #9 - Fix MultipartEncoder#to_string so that it properly handles file objects as fields
0.1.2 – 2014-01-19
At some point during development we broke how we handle normal file objects. Thanks to @konomae this is now fixed.
0.1.1 – 2014-01-19
Handle io.BytesIO-like objects better
0.1.0 – 2014-01-18
Add initial implementation of the streaming MultipartEncoder
Add initial implementation of the user_agent function
Add the SSLAdapter
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for requests_toolbelt-0.2.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c4c356aba34a56cb1d318386a3ca57dabd66eabef762866f8b950caad491f89 |
|
MD5 | b620914eb76949e04db34ba088404efa |
|
BLAKE2b-256 | 5a99b144aace6f8db0d0dea2e0cde6e83b2605d345f5b6155d3a7cc5f4092d77 |