Httpx

Latest version: v0.27.0

Safety actively analyzes 628924 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 13

0.18.2

Not secure
Added

* Support for Python 3.10. (Pull 1687)
* Expose `httpx.USE_CLIENT_DEFAULT`, used as the default to `auth` and `timeout` parameters in request methods. (Pull 1634)
* Support [HTTP/2 "prior knowledge"](https://python-hyper.org/projects/hyper-h2/en/v2.3.1/negotiating-http2.html#prior-knowledge), using `httpx.Client(http1=False, http2=True)`. (Pull 1624)

Fixed

* Clean up some cases where warnings were being issued. (Pull 1687)
* Prefer Content-Length over Transfer-Encoding: chunked for content=<file-like> cases. (Pull 1619)

0.18.1

Not secure
Changed

* Update brotli support to use the `brotlicffi` package (Pull 1605)
* Ensure that `Request(..., stream=...)` does not auto-generate any headers on the request instance. (Pull 1607)

Fixed

* Pass through `timeout=...` in top-level httpx.stream() function. (Pull 1613)
* Map httpcore transport close exceptions to httpx exceptions. (Pull 1606)

0.18.0

Not secure
The 0.18.x release series formalises our low-level Transport API, introducing the base classes `httpx.BaseTransport` and `httpx.AsyncBaseTransport`.

See the "[Writing custom transports](https://www.python-httpx.org/advanced/#writing-custom-transports)" documentation and the [`httpx.BaseTransport.handle_request()`](https://github.com/encode/httpx/blob/397aad98fdc8b7580a5fc3e88f1578b4302c6382/httpx/_transports/base.py#L77-L147) docstring for more complete details on implementing custom transports.

Pull request 1522 includes a checklist of differences from the previous `httpcore` transport API, for developers implementing custom transports.

The following API changes have been issuing deprecation warnings since 0.17.0 onwards, and are now fully deprecated...

* You should now use httpx.codes consistently instead of httpx.StatusCodes.
* Use limits=... instead of pool_limits=....
* Use proxies={"http://": ...} instead of proxies={"http": ...} for scheme-specific mounting.

Changed

* Transport instances now inherit from `httpx.BaseTransport` or `httpx.AsyncBaseTransport`,
and should implement either the `handle_request` method or `handle_async_request` method. (Pull 1522, 1550)
* The `response.ext` property and `Response(ext=...)` argument are now named `extensions`. (Pull 1522)
* The recommendation to not use `data=<bytes|str|bytes (a)iterator>` in favour of `content=<bytes|str|bytes (a)iterator>` has now been escalated to a deprecation warning. (Pull 1573)
* Drop `Response(on_close=...)` from API, since it was a bit of leaking implementation detail. (Pull 1572)
* When using a client instance, cookies should always be set on the client, rather than on a per-request basis. We prefer enforcing a stricter API here because it provides clearer expectations around cookie persistence, particularly when redirects occur. (Pull 1574)
* The runtime exception `httpx.ResponseClosed` is now named `httpx.StreamClosed`. (1584)
* The `httpx.QueryParams` model now presents an immutable interface. There is a discussion on [the design and motivation here](https://github.com/encode/httpx/discussions/1599). Use `client.params = client.params.merge(...)` instead of `client.params.update(...)`. The basic query manipulation methods are `query.set(...)`, `query.add(...)`, and `query.remove()`. (#1600)

Added

* The `Request` and `Response` classes can now be serialized using pickle. (1579)
* Handle `data={"key": [None|int|float|bool]}` cases. (Pull 1539)
* Support `httpx.URL(**kwargs)`, for example `httpx.URL(scheme="https", host="www.example.com", path="/')`, or `httpx.URL("https://www.example.com/", username="tomgmail.com", password="123 456")`. (Pull #1601)
* Support `url.copy_with(params=...)`. (Pull 1601)
* Add `url.params` parameter, returning an immutable `QueryParams` instance. (Pull 1601)
* Support query manipulation methods on the URL class. These are `url.copy_set_param()`, `url.copy_add_param()`, `url.copy_remove_param()`, `url.copy_merge_params()`. (Pull 1601)
* The `httpx.URL` class now performs port normalization, so `:80` ports are stripped from `http` URLs and `:443` ports are stripped from `https` URLs. (Pull 1603)
* The `URL.host` property returns unicode strings for internationalized domain names. The `URL.raw_host` property returns byte strings with IDNA escaping applied. (Pull 1590)

Fixed

* Fix Content-Length for cases of `files=...` where unicode string is used as the file content. (Pull 1537)
* Fix some cases of merging relative URLs against `Client(base_url=...)`. (Pull 1532)
* The `request.content` attribute is now always available except for streaming content, which requires an explicit `.read()`. (Pull 1583)

0.17.1

Not secure
Fixed

* Type annotation on `CertTypes` allows `keyfile` and `password` to be optional. (Pull 1503)
* Fix httpcore pinned version. (Pull 1495)

0.17.0

Not secure
Added

* Add `httpx.MockTransport()`, allowing to mock out a transport using pre-determined responses. (Pull 1401, Pull 1449)
* Add `httpx.HTTPTransport()` and `httpx.AsyncHTTPTransport()` default transports. (Pull 1399)
* Add mount API support, using `httpx.Client(mounts=...)`. (Pull 1362)
* Add `chunk_size` parameter to `iter_raw()`, `iter_bytes()`, `iter_text()`. (Pull 1277)
* Add `keepalive_expiry` parameter to `httpx.Limits()` configuration. (Pull 1398)
* Add repr to `httpx.Cookies` to display available cookies. (Pull 1411)
* Add support for `params=<tuple>` (previously only `params=<list>` was supported). (Pull 1426)

Fixed

* Add missing `raw_path` to ASGI scope. (Pull 1357)
* Tweak `create_ssl_context` defaults to use `trust_env=True`. (Pull 1447)
* Properly URL-escape WSGI `PATH_INFO`. (Pull 1391)
* Properly set default ports in WSGI transport. (Pull 1469)
* Properly encode slashes when using `base_url`. (Pull 1407)
* Properly map exceptions in `request.aclose()`. (Pull 1465)

0.16.1

Not secure
Fixed

* Support literal IPv6 addresses in URLs. (Pull 1349)
* Force lowercase headers in ASGI scope dictionaries. (Pull 1351)

Page 4 of 13

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.