.. currentmodule:: treq
- treq is packaged with Hatchling, and consequently no longer directly depends on setuptools. (#388)
- Update documentation to use async/await syntax (#409)
- Support for Python 3.8, which has reached end of support, is deprecated. This is the last release with support for Python 3.8. (#407)
- treq has vendored its dependency on the
multipartlibrary to avoid import conflicts withpython-multipart; it should now be installable alongside that library. (#399)
- treq now ships type annotations. (#366)
- The new :mod:`treq.cookies` module provides helper functions for working with http.cookiejar.Cookie and :class:`~http.cookiejar.CookieJar` objects. (#384)
- Python 3.13 is now supported. (#391)
- :mod:`treq.content.text_content()` no longer generates deprecation warnings due to use of the
cgimodule. (#355)
- Mixing the json argument with files or data now raises TypeError. (#297)
- Passing non-string (str or bytes) values as part of a dict to the headers argument now results in a TypeError, as does passing any collection other than a dict or :class:`~twisted.web.http.http_headers.Headers` instance. (#302)
- Support for Python 3.7 and PyPy 3.8, which have reached end of support, has been dropped. (#378)
- When the collector passed to
treq.collect(response, collector)throws an exception, that error will now be returned to the caller ofcollect()via the resultDeferred, and the underlying HTTP transport will be closed. (#347) - Python 3.11 is now supported. (#364)
- Python 3.12 is now supported. (#375)
- PyPy 3.9 is now supported. (#365)
- PyPy 3.10 is now supported. (#374)
- The minimum supported Twisted version has increased to 22.10.0. Older versions are no longer tested in CI. (#374)
- Support for Python 3.6, which has reached end of support, has been dropped. (#363)
- Support for Python 3.7, which reaches end of support 2023-06-27, is deprecated. This is the last release with support for Python 3.7. (#361)
- Support for PyPy 3.7, which has reached end of support, has been removed. (#365)
- Support for PyPy 3.8, which has reached end of support, is deprecated. This is the last release with support for PyPy 3.8. (#374)
- Python 3.10 and PyPy 3.8 are now supported. (#338)
- Address a regression introduced in Treq 22.1.0 that prevented transmission of cookies with requests to ports other than 80, including HTTPS (443). (#343)
- Support for Python 3.6, which has reached end of support, is deprecated. This is the last release with support for Python 3.6. (#338)
- Cookies specified as a dict were sent to every domain, not just the domain of the request, potentially exposing them on redirect. See GHSA-fhpf-pp6p-55qc. (#339, CVE-2022-23607)
- PEP 517/518
build-systemmetadata is now provided inpyproject.toml. (#329)
treq.testing.StubTreqnow persiststwisted.web.server.Sessioninstances between requests. (#327)
- The dependency on Sphinx required to build the documentation has been moved from the
devextra to the newdocsextra. (#296)
- Support for Python 2.7 and 3.5 has been dropped. treq no longer depends on
sixormock. (#318)
- 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)