freshcrate
Home > Developer Tools > requests-toolbelt

requests-toolbelt

A utility belt for advanced users of python-requests

Description

The 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. ``pip install requests-toolbelt`` to get started! multipart/form-data Encoder --------------------------- The main attraction is a streaming multipart form-data object, ``MultipartEncoder``. Its API looks like this: .. code-block:: python 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: .. code-block:: python 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: .. code-block:: python # 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: .. code-block:: python from requests_toolbelt import SSLAdapter import requests import ssl s = requests.Session() s.mount('https://', SSLAdapter(ssl.PROTOCOL_TLSv1)) cookies/ForgetfulCookieJar -------------------------- The ``ForgetfulCookieJar`` prevents a particular requests session from storing cookies: .. code-block:: python from requests_toolbelt.cookies.forgetful import ForgetfulCookieJar session = requests.Session() session.cookies = ForgetfulCookieJar() Contributing ------------ Please read the `suggested workflow <https://toolbelt.readthedocs.io/en/latest/contributing.html>`_ for contributing to this project. Please report any bugs on the `issue tracker`_ .. _Cory Benfield's blog: https://lukasa.co.uk/2013/01/Choosing_SSL_Version_In_Requests/ .. _python-requests: https://github.com/kennethreitz/requests .. _issue tracker: https://github.com/requests/toolbelt/issues History ======= 1.0.0 -- 2023-05-01 ------------------- Breaking Changes ~~~~~~~~~~~~~~~~ - Removed Google App Engine support to allow using urllib3 2.0 Fixed Bugs ~~~~~~~~~~ - Ensured the test suite no longer reaches the Internet Miscellaneous ~~~~~~~~~~~~~ - Added explicit support for Python 3.11 0.10.1 -- 2022-10-25 -------------------- Fixed Bugs ~~~~~~~~~~ - Fix urllib3 warning to only emit on X509Adapter usage 0.10.0 -- 2022-10-06 -------------------- New Features ~~~~~~~~~~~~ - Add support for preparing requests in BaseUrlSession Fixed Bugs ~~~~~~~~~~ - Fixing missing newline in dump utility 0.9.1 -- 2019-01-29 ------------------- Fixed Bugs ~~~~~~~~~~ - Fix import of pyOpenSSL shim from urllib3 for PKCS12 adapter 0.9.0 -- 2019-01-29 ------------------- New Features ~~~~~~~~~~~~ - Add X509 Adapter that can handle PKCS12 - Add stateless solution for streaming files by MultipartEncoder from one host to another (in chunks) Fixed Bugs ~~~~~~~~~~ - Update link to example - Move import of ``ABCs`` from collections into version-specific part of _compat module - Fix backwards incompatibility in ``get_encodings_from_content`` - Correct callback documentation for ``MultipartEncoderMonitor`` - Fix bug when ``MultipartEncoder`` is asked to encode zero parts - Correct the type of non string request body dumps - Removed content from being stored in MultipartDecoder - Fix bug by enabling support for contenttype with capital letters. - Coerce proxy URL to bytes before dumping request - Avoid bailing out with exception upon empty response reason - Corrected Pool documentation - Corrected parentheses match in example usage - Fix "oject" to "object" in ``MultipartEncoder`` - Fix URL for the project after the move - Add fix for OSX TCPKeepAliveAdapter Miscellaneous ~~~~~~~~~~~~~ - Remove py33 from testing and add Python 3.6 and nightly testing to the travis matrix. 0.8.0 -- 2017-05-20 ------------------- More information about this release can be found on the `0.8.0 mil

Release History

VersionChangesUrgencyDate
1.0.0Imported from PyPI (1.0.0)Low4/21/2026
0.10.1Tag 0.10.1Low10/25/2022
0.10.0Tag 0.10.0Low10/6/2022
0.9.1Tag 0.9.1Low1/30/2019
0.9.0Tag 0.9.0Low1/29/2019
0.8.0Tag 0.8.0Low5/20/2017
0.7.1Tag 0.7.1Low2/10/2017
0.7.0Tag 0.7.0Low7/22/2016
0.6.2Tag 0.6.2Low5/10/2016
0.6.1Tag 0.6.1Low5/6/2016
0.6.0Tag 0.6.0Low1/28/2016
0.5.1Tag 0.5.1Low12/16/2015
0.5.0Tag 0.5.0Low11/24/2015
0.4.0Tag 0.4.0Low4/4/2015
0.3.0Tag 0.3.0Low5/18/2014
0.2.0Tag 0.2.0Low2/24/2014
0.1.2Tag 0.1.2Low1/19/2014
0.1.1Tag 0.1.1Low1/19/2014
0.1.0Tag 0.1.0Low1/18/2014

Dependencies & License Audit

Loading dependencies...

Similar Packages

azure-coreMicrosoft Azure Core Library for Pythonazure-template_0.1.0b6187637
azure-mgmt-coreMicrosoft Azure Management Core Library for Pythonazure-template_0.1.0b6187637
azure-monitor-opentelemetry-exporterMicrosoft Azure Monitor Opentelemetry Exporter Client Library for Pythonazure-template_0.1.0b6187637
azure-servicebusMicrosoft Azure Service Bus Client Library for Pythonazure-template_0.1.0b6187637
azure-monitor-opentelemetryMicrosoft Azure Monitor Opentelemetry Distro Client Library for Pythonazure-template_0.1.0b6187637