Changelog

22.1.0 (2022-01-29)

Bugfixes

  • 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)

21.5.0 (2021-05-24)

Features

  • PEP 517/518 build-system metadata is now provided in pyproject.toml. (#329)

Bugfixes

  • treq.testing.StubTreq now persists twisted.web.server.Session instances between requests. (#327)

Improved Documentation

  • The dependency on Sphinx required to build the documentation has been moved from the dev extra to the new docs extra. (#296)

Deprecations and Removals

  • Support for Python 2.7 and 3.5 has been dropped. treq no longer depends on six or mock. (#318)

21.1.0 (2021-01-14)

Features

  • 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)

Bugfixes

Improved Documentation

  • The documentation of the params argument has been updated to more accurately describe its type-coercion behavior. (#281)

  • The treq.auth module has been documented. (#313)

Deprecations and Removals

  • 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 dict, Headers, or None. Historically falsy values like [] or () were accepted. (#294)

  • treq request functions and methods like treq.get() and HTTPClient.post() now issue a DeprecationWarning when passed unknown keyword arguments, rather than ignoring them. Mixing the json argument with files or data is also deprecated. These warnings will change to a TypeError in 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)

20.9.0 (2020-09-27)

Features

Improved Documentation

  • An example of sending and receiving JSON has been added. (#278)

20.4.1 (2020-04-16)

Bugfixes

  • Correct a typo in the treq 20.4.0 package metadata that prevented upload to PyPI (pypa/twine#589)

20.4.0 (2020-04-16)

Features

  • Support for Python 3.8 and PyPy3: treq is now tested with these interpreters. (#271)

Bugfixes

  • 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)

Improved Documentation

  • The treq documentation has been revised to emphasize use of treq.client.HTTPClient over the module-level convenience functions in the treq module. (#276)

20.3.0 (2020-03-15)

Features

  • Python 3.7 support. (#228)

Bugfixes

Improved Documentation

  • The download_file.py example 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)

Deprecations and Removals

  • Drop support for Python 3.4. (#240)

Misc