You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+34-9Lines changed: 34 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -4,22 +4,47 @@ All notable changes to this project will be documented in this file.
4
4
5
5
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
6
6
7
-
## Master
7
+
## 0.18.0 (27th April, 2021)
8
8
9
-
The 0.18.x release series formalises our low-level Transport API, introducing the
10
-
base classes `httpx.BaseTransport` and `httpx.AsyncBaseTransport`.
9
+
The 0.18.x release series formalises our low-level Transport API, introducing the base classes `httpx.BaseTransport` and `httpx.AsyncBaseTransport`.
11
10
12
-
See the "Writing custom transports" documentation and the `httpx.BaseTransport.handle_request()`
13
-
docstring for more complete details on implementing custom transports.
11
+
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.
14
12
15
-
Pull request #1522 includes a checklist of differences from the previous `httpcore` transport API,
16
-
for developers implementing custom transports.
13
+
Pull request #1522 includes a checklist of differences from the previous `httpcore` transport API, for developers implementing custom transports.
14
+
15
+
The following API changes have been issuing deprecation warnings since 0.17.0 onwards, and are now fully deprecated...
16
+
17
+
* You should now use httpx.codes consistently instead of httpx.StatusCodes.
18
+
* Use limits=... instead of pool_limits=....
19
+
* Use proxies={"http://": ...} instead of proxies={"http": ...} for scheme-specific mounting.
17
20
18
21
### Changed
19
22
20
23
* Transport instances now inherit from `httpx.BaseTransport` or `httpx.AsyncBaseTransport`,
21
-
and should implement either the `handle_request` method or `handle_async_request` method.
22
-
* The `response.ext` property and `Response(ext=...)` argument are now named `extensions`.
24
+
and should implement either the `handle_request` method or `handle_async_request` method. (Pull #1522, #1550)
25
+
* The `response.ext` property and `Response(ext=...)` argument are now named `extensions`. (Pull #1522)
26
+
* 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)
27
+
* Drop `Response(on_close=...)` from API, since it was a bit of leaking implementation detail. (Pull #1572)
28
+
* 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)
29
+
* The runtime exception `httpx.ResponseClosed` is now named `httpx.StreamClosed`. (#1584)
30
+
* 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)
31
+
32
+
### Added
33
+
34
+
* The `Request` and `Response` classes can now be serialized using pickle. (#1579)
* Support `httpx.URL(**kwargs)`, for example `httpx.URL(scheme="https", host="www.example.com", path="/')`, or `httpx.URL("https://www.example.com/", username="[email protected]", password="123 456")`. (Pull #1601)
37
+
* Support `url.copy_with(params=...)`. (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)
40
+
* 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)
41
+
* 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)
42
+
43
+
### Fixed
44
+
45
+
* Fix Content-Length for cases of `files=...` where unicode string is used as the file content. (Pull #1537)
46
+
* Fix some cases of merging relative URLs against `Client(base_url=...)`. (Pull #1532)
47
+
* The `request.content` attribute is now always available except for streaming content, which requires an explicit `.read()`. (Pull #1583)
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -16,7 +16,7 @@
16
16
HTTPX is a fully featured HTTP client for Python 3, which provides sync and async APIs, and support for both HTTP/1.1 and HTTP/2.
17
17
18
18
**Note**: _HTTPX should be considered in beta. We believe we've got the public API to
19
-
a stable point now, but would strongly recommend pinning your dependencies to the `0.17.*`
19
+
a stable point now, but would strongly recommend pinning your dependencies to the `0.18.*`
20
20
release, so that you're able to properly review [API changes between package updates](https://github.com/encode/httpx/blob/master/CHANGELOG.md). A 1.0 release is expected to be issued sometime in 2021._
Copy file name to clipboardExpand all lines: docs/index.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -27,7 +27,7 @@ HTTPX is a fully featured HTTP client for Python 3, which provides sync and asyn
27
27
!!! note
28
28
HTTPX should currently be considered in beta.
29
29
30
-
We believe we've got the public API to a stable point now, but would strongly recommend pinning your dependencies to the `0.17.*` release, so that you're able to properly review [API changes between package updates](https://github.com/encode/httpx/blob/master/CHANGELOG.md).
30
+
We believe we've got the public API to a stable point now, but would strongly recommend pinning your dependencies to the `0.18.*` release, so that you're able to properly review [API changes between package updates](https://github.com/encode/httpx/blob/master/CHANGELOG.md).
31
31
32
32
A 1.0 release is expected to be issued sometime in 2021.
0 commit comments