Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

requests-toolbelt-0.2.0.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

requests_toolbelt-0.2.0-py2.py3-none-any.whl (10.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file requests-toolbelt-0.2.0.tar.gz.

File metadata

File hashes

Hashes for requests-toolbelt-0.2.0.tar.gz
Algorithm Hash digest
SHA256 e8a8afb6c4056fc1679ff44678dce7339f2d2e4c8035b2db4d02467af79273fe
MD5 c242d9ed950cffa7e78509c6d8ef1892
BLAKE2b-256 1559d7f9e2b1d0646700a82ea8bf1af0b4e7b2a2c07c23aba38144154da45fbf

See more details on using hashes here.

File details

Details for the file requests_toolbelt-0.2.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for requests_toolbelt-0.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 9c4c356aba34a56cb1d318386a3ca57dabd66eabef762866f8b950caad491f89
MD5 b620914eb76949e04db34ba088404efa
BLAKE2b-256 5a99b144aace6f8db0d0dea2e0cde6e83b2605d345f5b6155d3a7cc5f4092d77

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page