treq v21.1.0 Release Notes

Release Date: 2021-01-14 // 11 months ago
  • ๐Ÿ”‹ Features

    • ๐Ÿ‘Œ Support for Python 3.9: treq is now tested with CPython 3.9. (#305 <https://github.com/twisted/treq/issues/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 <https://github.com/twisted/treq/issues/268>__)
    • treq produces a more helpful exception when passed a tuple of the wrong size in the files parameter. (#299 <https://github.com/twisted/treq/issues/299>__)

    ๐Ÿ›  Bugfixes

    • The params argument once more accepts non-ASCII bytes, fixing a regression first introduced in treq 20.4.1. (#303 <https://github.com/twisted/treq/issues/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 <https://github.com/twisted/treq/issues/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 <https://github.com/twisted/treq/issues/312>__)
    • ๐Ÿ“‡ treq's package metadata has been updated to require six >= 1.13, noting a dependency introduced in treq 20.9.0. (#295 <https://github.com/twisted/treq/issues/295>__)

    ๐Ÿ‘Œ Improved Documentation

    • The documentation of the params argument has been updated to more accurately describe its type-coercion behavior. (#281 <https://github.com/twisted/treq/issues/281>__)
    • The :mod:treq.auth module has been documented. (#313 <https://github.com/twisted/treq/issues/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 <https://github.com/twisted/treq/issues/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 <https://github.com/twisted/treq/issues/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 <https://github.com/twisted/treq/issues/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 a TypeError in the next treq release. (#297 <https://github.com/twisted/treq/issues/297>__)
    • โœ… The minimum supported Twisted version has increased to 18.7.0. Older versions are no longer tested in CI. (#307 <https://github.com/twisted/treq/issues/307>__)