A utility belt for advanced users of python-requests
Project description
requests toolbelt
This is just a collection of utilities for python-requests, but don’t really belong in requests proper. The minimum tested requests version is 2.1.0. In reality, the toolbelt should work with 2.0.1 as well, but some idiosyncracies prevent effective or sane testing on that version.
multipart/form-data Encoder
The main attraction is a streaming multipart form-data object, MultipartEncoder. Its API looks like this:
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 multipart/form-data encoding for requests that don’t 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})
Or, you can just create the string and examine the data:
# Assuming `m` is one of the above m.to_string() # Always returns unicode
User-Agent constructor
You can easily construct a 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 was originally published on Cory Benfield’s blog. 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.3.1 – 2014-06-23
Fix the fact that 0.3.0 bundle did not include the StreamingIterator
0.3.0 – 2014-05-21
Bug Fixes
Complete rewrite of MultipartEncoder fixes bug where bytes were lost in uploads
New Features
MultipartDecoder to accept multipart/form-data response bodies and parse them into an easy to use object.
SourceAddressAdapter to allow users to choose a local address to bind connections to.
GuessAuth which accepts a username and password and uses the WWW-Authenticate header to determine how to authenticate against a server.
MultipartEncoderMonitor wraps an instance of the MultipartEncoder and keeps track of how many bytes were read and will call the provided callback.
StreamingIterator will wrap an iterator and stream the upload instead of chunk it, provided you also provide the length of the content you wish to upload.
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
File details
Details for the file requests-toolbelt-0.3.1.tar.gz
.
File metadata
- Download URL: requests-toolbelt-0.3.1.tar.gz
- Upload date:
- Size: 14.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f170eadbe01be2356d65862857a9b2eb8bb17b895cde158a7dd1c358a3a48d1a |
|
MD5 | e563377e46cd0be8c7b3ac144a65844c |
|
BLAKE2b-256 | 933ed593f6be713ddcabce4a64c6b607c2abd9032f16cfb7ff1c333416fbae2e |
Provenance
File details
Details for the file requests_toolbelt-0.3.1-py2.py3-none-any.whl
.
File metadata
- Download URL: requests_toolbelt-0.3.1-py2.py3-none-any.whl
- Upload date:
- Size: 22.2 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4ba839a2da1d1e884430d742049fe1add34356be8f3e0813e9c7eb959d8ea27 |
|
MD5 | 91fc855ef0ed8a61f7b2d20fc1fddbe7 |
|
BLAKE2b-256 | 2f87009da697025dc624a06c46be59479610f02375a24c3494501bed26e606bd |