.. currentmodule:: treq
- Support for Python 3.9: treq is now tested with CPython 3.9. (#305)
- The auth parameter now accepts arbitrary text and bytes for usernames and passwords. Text is encoded as UTF-8, per RFC 7617. Previously only ASCII was allowed. (#268)
- treq produces a more helpful exception when passed a tuple of the wrong size in the files parameter. (#299)
- The params argument once more accepts non-ASCII
bytes, fixing a regression first introduced in treq 20.4.1. (#303) - treq request APIs no longer mutates a :class:`http_headers.Headers <twisted.web.http_headers.Headers>` passed as the headers parameter when the auth parameter is also passed. (#314)
- The agent returned by :func:`treq.auth.add_auth()` and :func:`treq.auth.add_basic_auth()` is now marked to provide :class:`twisted.web.iweb.IAgent`. (#312)
- treq's package metadata has been updated to require
six >= 1.13, noting a dependency introduced in treq 20.9.0. (#295)
- The documentation of the params argument has been updated to more accurately describe its type-coercion behavior. (#281)
- The :mod:`treq.auth` module has been documented. (#313)
- Support for Python 2.7, which has reached end of support, is deprecated. This is the last release with support for Python 2.7. (#309)
- Support for Python 3.5, which has reached end of support, is deprecated. This is the last release with support for Python 3.5. (#306)
- Deprecate tolerance of non-string values when passing headers as a dict. They have historically been silently dropped, but will raise TypeError in the next treq release. Also deprecate passing headers other than :class:`dict`, :class:`~twisted.web.http_headers.Headers`, or
None. Historically falsy values like[]or()were accepted. (#294) - treq request functions and methods like :func:`treq.get()` and :meth:`HTTPClient.post()` now issue a
DeprecationWarningwhen passed unknown keyword arguments, rather than ignoring them. Mixing the json argument with files or data is also deprecated. These warnings will change to aTypeErrorin the next treq release. (#297) - The minimum supported Twisted version has increased to 18.7.0. Older versions are no longer tested in CI. (#307)
- The url parameter of :meth:`HTTPClient.request()` (and shortcuts like :meth:`~HTTPClient.get()`) now accept :class:`hyperlink.DecodedURL` and :class:`hyperlink.URL` in addition to :class:`str` and :class:`bytes`. (#212)
- Compatibility with the upcoming Twisted 20.9.0 release (#290).
- An example of sending and receiving JSON has been added. (#278)
- Correct a typo in the treq 20.4.0 package metadata that prevented upload to PyPI (pypa/twine#589)
- Support for Python 3.8 and PyPy3: treq is now tested with these interpreters. (#271)
- treq.client.HTTPClient.request() and its aliases no longer raise UnicodeEncodeError when passed a Unicode url and non-empty params. Now the URL and query parameters are concatenated as documented. (#264)
- In treq 20.3.0 the params argument didn't accept parameter names or values that contain the characters
&or#. Now these characters are properly escaped. (#282)
- The treq documentation has been revised to emphasize use of treq.client.HTTPClient over the module-level convenience functions in the treq module. (#276)
- Python 3.7 support. (#228)
- treq.testing.RequestTraversalAgent now passes its memory reactor to the twisted.web.server.Site it creates, preventing the
Sitefrom polluting the global reactor. (#225) - treq.testing no longer generates deprecation warnings about
twisted.test.proto_helpers.MemoryReactor. (#253)
- The
download_file.pyexample has been updated to do a streaming download with unbuffered=True. (#233) - The agent parameter to treq.request() has been documented. (#235)
- The type of the headers element of a response tuple passed to treq.testing.RequestSequence is now correctly documented as str. (#237)
- Drop support for Python 3.4. (#240)