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'), '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.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.

Files for requests-toolbelt, version 0.1.2
Filename, size File type Python version Upload date Hashes
Filename, size requests_toolbelt-0.1.2-py2.py3-none-any.whl (9.6 kB) File type Wheel Python version 2.7 Upload date Hashes View hashes
Filename, size requests-toolbelt-0.1.2.tar.gz (6.9 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page