.. currentmodule:: treq
- 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)
- PEP 517/518
build-system
metadata is now provided inpyproject.toml
. (#329)
treq.testing.StubTreq
now persiststwisted.web.server.Session
instances between requests. (#327)
- The dependency on Sphinx required to build the documentation has been moved from the
dev
extra to the newdocs
extra. (#296)
- Support for Python 2.7 and 3.5 has been dropped. treq no longer depends on
six
ormock
. (#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
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 aTypeError
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)
- 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
Site
from polluting the global reactor. (#225) - treq.testing no longer generates deprecation warnings about
twisted.test.proto_helpers.MemoryReactor
. (#253)
- 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)
- Drop support for Python 3.4. (#240)