- Save and recover
base_urlinBaseUrlSessionduring pickle and unpickle
- Removed Google App Engine support to allow using urllib3 2.0
- Ensured the test suite no longer reaches the Internet
- Added explicit support for Python 3.11
- Fix urllib3 warning to only emit on X509Adapter usage
- Add support for preparing requests in BaseUrlSession
- Fixing missing newline in dump utility
- Fix import of pyOpenSSL shim from urllib3 for PKCS12 adapter
- Add X509 Adapter that can handle PKCS12
- Add stateless solution for streaming files by MultipartEncoder from one host to another (in chunks)
- Update link to example
- Move import of
ABCsfrom collections into version-specific part of _compat module - Fix backwards incompatibility in
get_encodings_from_content - Correct callback documentation for
MultipartEncoderMonitor - Fix bug when
MultipartEncoderis 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
- Remove py33 from testing and add Python 3.6 and nightly testing to the travis matrix.
More information about this release can be found on the 0.8.0 milestone.
- Add
UserAgentBuilderto provide more control over generated User-Agent strings.
- Include
_validate_certificatein the lits of picked attributes on theAppEngineAdapter. - Fix backwards incompatibility in
get_encodings_from_content
More information about this release can be found on the 0.7.1 milestone.
- Fixed monkey-patching for the AppEngineAdapter.
- Make it easier to disable certificate verification when monkey-patching AppEngine.
- Handle
multipart/form-databodies without a trailingCRLF.
More information about this release can be found on the 0.7.0 milestone.
- Add
BaseUrlSessionto allow developers to have a session that has a "Base" URL. See the documentation for more details and examples. - Split the logic of
stream_response_to_fileinto two separate functions:get_download_file_pathto generate the file name from the Response.stream_response_to_filewhich will useget_download_file_pathif necessary
- Fixed the issue for people using very old versions of Requests where they
would see an ImportError from
requests_toolbelt._compatwhen trying to importconnection.
- When passing a timeout via Requests, it was not appropriately translated to the timeout that the urllib3 code was expecting.
- Remove assertion about request URLs in the AppEngineAdapter.
- Prevent pip from installing requests 3.0.0 when that is released until we are ready to handle it.
More information about this release can be found on the 0.6.0 milestone.
- Add
AppEngineAdapterto support developers using Google's AppEngine platform with Requests. - Add
GuessProxyAuthclass to support guessing between Basic and Digest Authentication for proxies.
- Ensure that proxies use the correct TLS version when using the
SSLAdapter. - Fix an
AttributeErrorwhen using theHTTPProxyDigestAuthclass.
- Drop testing support for Python 3.2. virtualenv and pip have stopped supporting it meaning that it is harder to test for this with our CI infrastructure. Moving forward we will make a best-effort attempt to support 3.2 but will not test for it.
More information about this release can be found on the 0.5.1 milestone.
- Now papers over the differences in requests'
super_lenfunction from versions prior to 2.9.0 and versions 2.9.0 and later.
More information about this release can be found on the milestone for 0.5.0.
- The
teesubmodule was added torequests_toolbelt.downloadutils. It allows you to iterate over the bytes of a response while also writing them to a file. Thetee.teefunction, expects you to pass an open file object, whiletee.tee_to_filewill use the provided file name to open the file for you. - Added a new parameter to
requests_toolbelt.utils.user_agentthat allows the user to specify additional items. - Added nested form-data helper,
requests_toolbelt.utils.formdata.urlencode. - Added the
ForgetfulCookieJartorequests_toolbelt.cookies. - Added utilities for dumping the information about a request-response cycle
in
requests_toolbelt.utils.dump. - Implemented the API described in the
requests_toolbelt.threadedmodule docstring, i.e., addedrequests_toolbelt.threaded.mapas an available function.
- Now papers over the API differences in versions of requests installed from system packages versus versions of requests installed from PyPI.
- Allow string types for
SourceAddressAdapter.
For more information about this release, please see milestone 0.4.0 on the project's page.
- A naive implemenation of a thread pool is now included in the toolbelt. See
the docs in
docs/threading.rstor on Read The Docs. - The
StreamingIteratornow accepts files (such assys.stdin) without a specific length and will properly stream them. - The
MultipartEncodernow accepts exactly the same format of fields as requests'filesparameter does. In other words, you can now also pass in extra headers to add to a part in the body. You can also now specify a customContent-Typefor a part. - An implementation of HTTP Digest Authentication for Proxies is now included.
- A transport adapter that allows a user to specify a specific Certificate Fingerprint is now included in the toolbelt.
- A transport adapter that simplifies how users specify socket options is now included.
- A transport adapter that simplifies how users can specify TCP Keep-Alive options is now included in the toolbelt.
- Deprecated functions from
requests.utilsare now included and maintained. - An authentication tool that allows users to specify how to authenticate to several different domains at once is now included.
- A function to save streamed responses to disk by analyzing the
Content-Dispositionheader is now included in the toolbelt.
- The
MultipartEncoderwill now allow users to upload files larger than 4GB on 32-bit systems. - The
MultipartEncoderwill now accept empty unicode strings for form values.
- Fix the fact that 0.3.0 bundle did not include the
StreamingIterator
- Complete rewrite of
MultipartEncoderfixes bug where bytes were lost in uploads
MultipartDecoderto acceptmultipart/form-dataresponse bodies and parse them into an easy to use object.SourceAddressAdapterto allow users to choose a local address to bind connections to.GuessAuthwhich accepts a username and password and uses theWWW-Authenticateheader to determine how to authenticate against a server.MultipartEncoderMonitorwraps an instance of theMultipartEncoderand keeps track of how many bytes were read and will call the provided callback.StreamingIteratorwill wrap an iterator and stream the upload instead of chunk it, provided you also provide the length of the content you wish to upload.
- Add ability to tell
MultipartEncoderwhich encoding to use. By default it uses 'utf-8'. - Fix #10 - allow users to install with pip
- Fix #9 - Fix
MultipartEncoder#to_stringso that it properly handles file objects as fields
- At some point during development we broke how we handle normal file objects. Thanks to @konomae this is now fixed.
- Handle
io.BytesIO-like objects better
- Add initial implementation of the streaming
MultipartEncoder - Add initial implementation of the
user_agentfunction - Add the
SSLAdapter