Next | Query returned 35 messages, browsing 21 to 30 | Previous

History of commit frequency

CVS Commit History:


   2021-10-21 15:16:15 by Adam Ciarcinski | Files touched by this commit (4) | Package updated
Log message:
py-httpx: updated to 0.20.0

0.20.0:

Changed

* The `allow_redirects` flag is now `follow_redirects` and defaults to `False`.
* The `raise_for_status()` method will now raise an exception for any responses
  except those with 2xx status codes. Previously only 4xx and 5xx status codes
  would result in an exception.
* The low-level transport API changes to the much simpler `response = \ 
transport.handle_request(request)`.
* The `client.send()` method no longer accepts a `timeout=...` argument, but the
  `client.build_request()` does. This required by the signature change of the
  Transport API. The request timeout configuration is now stored on the request
  instance, as `request.extensions['timeout']`.

Added

* Added the `httpx` command-line client.
* Response instances now include `.is_informational`, `.is_success`, \ 
`.is_redirect`, `.is_client_error`, and `.is_server_error`
  properties for checking 1xx, 2xx, 3xx, 4xx, and 5xx response types. Note that \ 
the behaviour of `.is_redirect` is slightly different in that it now returns \ 
True for all 3xx responses, in order to allow for a consistent set of properties \ 
onto the different HTTP status code types. The `response.has_redirect_location` \ 
location may be used to determine responses with properly formed URL redirects.

Fixed

* `response.iter_bytes()` no longer raises a ValueError when called on a \ 
response with no content.
* The `'wsgi.error'` configuration now defaults to `sys.stderr`, and is \ 
corrected to be a `TextIO` interface, not a `BytesIO` interface. Additionally, \ 
the WSGITransport now accepts a `wsgi_error` confguration.
* Follow the WSGI spec by properly closing the iterable returned by the application.
   2021-10-07 17:09:00 by Nia Alarie | Files touched by this commit (1033)
Log message:
www: Remove SHA1 hashes for distfiles
   2021-07-08 10:39:00 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-httpx: updated to 0.18.2

0.18.2

Added

* Support for Python 3.10.
* Expose `httpx.USE_CLIENT_DEFAULT`, used as the default to `auth` and `timeout` \ 
parameters in request methods.
* 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)`.

Fixed

* Clean up some cases where warnings were being issued.
* Prefer Content-Length over Transfer-Encoding: chunked for \ 
content=<file-like> cases.
   2021-05-08 10:58:42 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-httpx: updated to 0.18.1

0.18.1 (29th April, 2021)

Changed

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

Fixed

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

0.18.0 (27th April, 2021)

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.
* The `response.ext` property and `Response(ext=...)` argument are now named \ 
`extensions`.
* 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.
* Drop `Response(on_close=...)` from API, since it was a bit of leaking \ 
implementation detail.
* 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.
* The runtime exception `httpx.ResponseClosed` is now named `httpx.StreamClosed`.
* 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()`.

Added

* The `Request` and `Response` classes can now be serialized using pickle.
* Handle `data={"key": [None|int|float|bool]}` cases.
* Support `httpx.URL(**kwargs)`, for example \ 
`httpx.URL(scheme="https", host="www.example.com", \ 
path="/')`, or `httpx.URL("https://www.example.com/", \ 
username="tom@gmail.com", password="123 456")`.
* Support `url.copy_with(params=...)`.
* Add `url.params` parameter, returning an immutable `QueryParams` instance.
* 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()`.
* The `httpx.URL` class now performs port normalization, so `:80` ports are \ 
stripped from `http` URLs and `:443` ports are stripped from `https` URLs.
* The `URL.host` property returns unicode strings for internationalized domain \ 
names. The `URL.raw_host` property returns byte strings with IDNA escaping \ 
applied.

Fixed

* Fix Content-Length for cases of `files=...` where unicode string is used as \ 
the file content.
* Fix some cases of merging relative URLs against `Client(base_url=...)`.
* The `request.content` attribute is now always available except for streaming \ 
content, which requires an explicit `.read()`.
   2021-03-16 09:09:24 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-httpx: updated to 0.17.1

0.17.1

Fixed

* Type annotation on `CertTypes` allows `keyfile` and `password` to be optional.
* Fix httpcore pinned version.
   2021-02-28 19:40:55 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-httpx: updated to 0.17.0

0.17.0

Added

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

Fixed

Add missing raw_path to ASGI scope.
Tweak create_ssl_context defaults to use trust_env=True.
Properly URL-escape WSGI PATH_INFO.
Properly set default ports in WSGI transport.
Properly encode slashes when using base_url.
Properly map exceptions in request.aclose().
   2020-10-13 13:14:43 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-httpx: updated to 0.16.1

0.16.1

Fixed
* Support literal IPv6 addresses in URLs.
* Force lowercase headers in ASGI scope dictionaries.

0.16.0

Changed
* Preserve HTTP header casing.
* Drop `response.next()` and `response.anext()` methods in favour of \ 
`response.next_request` attribute.
* Closed clients now raise a runtime error if attempting to send a request.

Added
* Add Python 3.9 to officially supported versions.
* Type annotate `__enter__`/`__exit__`/`__aenter__`/`__aexit__` in a way that \ 
supports subclasses of `Client` and `AsyncClient`.
   2020-10-02 09:42:53 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-httpx: updated to 0.15.5

0.15.5

Added
* Add `response.next_request`
   2020-10-01 08:51:32 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-httpx: updated to 0.15.4

0.15.4

Added
* Support direct comparisons between `Headers` and dicts or lists of two-tuples. \ 
Eg. `assert response.headers == {"Content-Length": 24}`

Fixed
* Fix automatic `.read()` when `Response` instances are created with \ 
`content=<str>`

0.15.3

Fixed
* Fixed connection leak in async client due to improper closing of response streams.

0.15.2

Fixed
* Fixed `response.elapsed` property.
* Fixed client authentication interaction with `.stream()`.

0.15.1

Fixed
* ASGITransport now properly applies URL decoding to the `path` component, \ 
as-per the ASGI spec.

0.15.0

Added
* Added support for curio. (Pull https://github.com/encode/httpcore/pull/168)
* Added support for event hooks.
* Added support for authentication flows which require either sync or async I/O.
* Added support for monitoring download progress with \ 
`response.num_bytes_downloaded`.
* Added `Request(content=...)` for byte content, instead of overloading \ 
`Request(data=...)`
* Added support for all URL components as parameter names when using \ 
`url.copy_with(...)`.
* Neater split between automatically populated headers on `Request` instances, \ 
vs default `client.headers`.
* Unclosed `AsyncClient` instances will now raise warnings if garbage collected.
* Support `Response(content=..., text=..., html=..., json=...)` for creating \ 
usable response instances in code.
* Support instantiating requests from the low-level transport API.
* Raise errors on invalid URL types.

Changed
* Cleaned up expected behaviour for URL escaping. `url.path` is now URL escaped.
* Cleaned up expected behaviour for bytes vs str in URL components. \ 
`url.userinfo` and `url.query` are not URL escaped, and so return bytes.
* Drop `url.authority` property in favour of `url.netloc`, since \ 
"authority" was semantically incorrect.
* Drop `url.full_path` property in favour of `url.raw_path`, for better \ 
consistency with other parts of the API.
* No longer use the `chardet` library for auto-detecting charsets, instead \ 
defaulting to a simpler approach when no charset is specified.

Fixed
* Swapped ordering of redirects and authentication flow.
* `.netrc` lookups should use host, not host+port.

Removed
* The `URLLib3Transport` class no longer exists. We've published it instead as \ 
an example of [a custom transport \ 
class](https://gist.github.com/florimondmanca/d56764d78d748eb9f73165da388e546e).
* Drop `request.timer` attribute, which was being used internally to set \ 
`response.elapsed`.
* Drop `response.decoder` attribute, which was being used internally.
* `Request.prepare()` is now a private method.
* The `Headers.getlist()` method had previously been deprecated in favour of \ 
`Headers.get_list()`. It is now fully removed.
* The `QueryParams.getlist()` method had previously been deprecated in favour of \ 
`QueryParams.get_list()`. It is now fully removed.
* The `URL.is_ssl` property had previously been deprecated in favour of \ 
`URL.scheme == "https"`. It is now fully removed.
* The `httpx.PoolLimits` class had previously been deprecated in favour of \ 
`httpx.Limits`. It is now fully removed.
* The `max_keepalive` setting had previously been deprecated in favour of the \ 
more explicit `max_keepalive_connections`. It is now fully removed.
* The verbose `httpx.Timeout(5.0, connect_timeout=60.0)` style had previously \ 
been deprecated in favour of `httpx.Timeout(5.0, connect=60.0)`. It is now fully \ 
removed.
* Support for instantiating a timeout config missing some defaults, such as \ 
`httpx.Timeout(connect=60.0)`, had previously been deprecated in favour of \ 
enforcing a more explicit style, such as `httpx.Timeout(5.0, connect=60.0)`. \ 
This is now strictly enforced.

0.14.3

Added
* `http.Response()` may now be instantiated without a `request=...` parameter. \ 
Useful for some unit testing cases.
* Add `103 Early Hints` and `425 Too Early` status codes.

Fixed
* `DigestAuth` now handles responses that include multiple 'WWW-Authenticate' \ 
headers.
* Call into transport `__enter__`/`__exit__` or `__aenter__`/`__aexit__` when \ 
client is used in a context manager style.

0.14.2

Added
* Support `client.get(..., auth=None)` to bypass the default authentication on a \ 
clients.
* Support `client.auth = ...` property setter.
* Support `httpx.get(..., proxies=...)` on top-level request functions.
* Display instances with nicer import styles. (Eg. <httpx.ReadTimeout ...>)
* Support `cookies=[(key, value)]` list-of-two-tuples style usage.

Fixed
* Ensure that automatically included headers on a request may be modified.
* Allow explicit `Content-Length` header on streaming requests.
* Handle URL quoted usernames and passwords properly.
* Use more consistent default for `HEAD` requests, setting `allow_redirects=True`.
* If a transport error occurs while streaming the response, raise an `httpx` \ 
exception, not the underlying `httpcore` exception.
* Include the underlying `httpcore` traceback, when transport exceptions occur.

0.14.1

Added
* The `httpx.URL(...)` class now raises `httpx.InvalidURL` on invalid URLs, \ 
rather than exposing the underlying `rfc3986` exception. If a redirect response \ 
includes an invalid 'Location' header, then a `RemoteProtocolError` exception is \ 
raised, which will be associated with the request that caused it.

Fixed
* Handling multiple `Set-Cookie` headers became broken in the 0.14.0 release, \ 
and is now resolved.

0.14.0

The 0.14 release includes a range of improvements to the public API, intended on \ 
preparing for our upcoming 1.0 release.

* Our HTTP/2 support is now fully optional. **You now need to use `pip install \ 
httpx[http2]` if you want to include the HTTP/2 dependancies.**
* Our HSTS support has now been removed. Rewriting URLs from `http` to `https` \ 
if the host is on the HSTS list can be beneficial in avoiding roundtrips to \ 
incorrectly formed URLs, but on balance we've decided to remove this feature, on \ 
the principle of least surprise. Most programmatic clients do not include HSTS \ 
support, and for now we're opting to remove our support for it.
* Our exception hierarchy has been overhauled. Most users will want to stick \ 
with their existing `httpx.HTTPError` usage, but we've got a clearer overall \ 
structure now. See https://www.python-httpx.org/exceptions/ for more details.

When upgrading you should be aware of the following public API changes. Note \ 
that deprecated usages will currently continue to function, but will issue \ 
warnings.

* You should now use `httpx.codes` consistently instead of `httpx.StatusCodes`.
* Usage of `httpx.Timeout()` should now always include an explicit default. Eg. \ 
`httpx.Timeout(None, pool=5.0)`.
* When using `httpx.Timeout()`, we now have more concisely named keyword \ 
arguments. Eg. `read=5.0`, instead of `read_timeout=5.0`.
* Use `httpx.Limits()` instead of `httpx.PoolLimits()`, and `limits=...` instead \ 
of `pool_limits=...`.
* The `httpx.Limits(max_keepalive=...)` argument is now deprecated in favour of \ 
a more explicit `httpx.Limits(max_keepalive_connections=...)`.
* Keys used with `Client(proxies={...})` should now be in the style of \ 
`{"http://": ...}`, rather than `{"http": ...}`.
* The multidict methods `Headers.getlist()` and `QueryParams.getlist()` are \ 
deprecated in favour of more consistent `.get_list()` variants.
* The `URL.is_ssl` property is deprecated in favour of `URL.scheme == \ 
"https"`.
* The `URL.join(relative_url=...)` method is now `URL.join(url=...)`. This \ 
change does not support warnings for the deprecated usage style.

One notable aspect of the 0.14.0 release is that it tightens up the public API \ 
for `httpx`, by ensuring that several internal attributes and methods have now \ 
become strictly private.

The following previously had nominally public names on the client, but were all \ 
undocumented and intended solely for internal usage. They are all now replaced \ 
with underscored names, and should not be relied on or accessed.

These changes should not affect users who have been working from the `httpx` \ 
documentation.

* `.merge_url()`, `.merge_headers()`, `.merge_cookies()`, `.merge_queryparams()`
* `.build_auth()`, `.build_redirect_request()`
* `.redirect_method()`, `.redirect_url()`, `.redirect_headers()`, \ 
`.redirect_stream()`
* `.send_handling_redirects()`, `.send_handling_auth()`, `.send_single_request()`
* `.init_transport()`, `.init_proxy_transport()`
* `.proxies`, `.transport`, `.netrc`, `.get_proxy_map()`

Some areas of API which were already on the deprecation path, and were raising \ 
warnings or errors in 0.13.x have now been escalated to being fully removed.

* Drop `ASGIDispatch`, `WSGIDispatch`, which have been replaced by \ 
`ASGITransport`, `WSGITransport`.
* Drop `dispatch=...`` on client, which has been replaced by `transport=...``
* Drop `soft_limit`, `hard_limit`, which have been replaced by `max_keepalive` \ 
and `max_connections`.
* Drop `Response.stream` and` `Response.raw`, which have been replaced by \ 
``.aiter_bytes` and `.aiter_raw`.
* Drop `proxies=<transport instance>` in favor of `proxies=httpx.Proxy(...)`.

Added
* Added dedicated exception class `httpx.HTTPStatusError` for \ 
`.raise_for_status()` exceptions.
* Added `httpx.create_ssl_context()` helper function.
* Support for proxy exlcusions like \ 
`proxies={"https://www.example.com": None}`.
* Support `QueryParams(None)` and `client.params = None`.

Changed
* Use `httpx.codes` consistently in favour of `httpx.StatusCodes` which is \ 
placed into deprecation.
* Usage of `httpx.Timeout()` should now always include an explicit default. Eg. \ 
`httpx.Timeout(None, pool=5.0)`.
* Switch to more concise `httpx.Timeout()` keyword arguments. Eg. `read=5.0`, \ 
instead of `read_timeout=5.0`.
* Use `httpx.Limits()` instead of `httpx.PoolLimits()`, and `limits=...` instead \ 
of `pool_limits=...`.
* Keys used with `Client(proxies={...})` should now be in the style of \ 
`{"http://": ...}`, rather than `{"http": ...}`.
* The multidict methods `Headers.getlist` and `QueryParams.getlist` are \ 
deprecated in favour of more consistent `.get_list()` variants.
* `URL.port` becomes `Optional[int]`. Now only returns a port if one is \ 
explicitly included in the URL string.
* The `URL(..., allow_relative=[bool])` parameter no longer exists. All URL \ 
instances may be relative.
* Drop unnecessary `url.full_path = ...` property setter.
* The `URL.join(relative_url=...)` method is now `URL.join(url=...)`.
* The `URL.is_ssl` property is deprecated in favour of `URL.scheme == \ 
"https"`.

Fixed
* Add missing `Response.next()` method.
* Ensure all exception classes are exposed as public API.
* Support multiple items with an identical field name in multipart encodings.
* Skip HSTS preloading on single-label domains.
* Fixes for `Response.iter_lines()`.
* Ignore permission errors when accessing `.netrc` files.
* Allow bare hostnames in `HTTP_PROXY` etc... environment variables.
* Settings `app=...` or `transport=...` bypasses any environment based proxy \ 
defaults.
* Fix handling of `.base_url` when a path component is included in the base URL.
   2020-06-03 16:21:26 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-httpx: updated to 0.13.3

0.13.3:

Fixed

* Include missing keepalive expiry configuration.
* Improved error message when URL redirect has a custom scheme.

0.13.2:

Fixed

* Include explicit "Content-Length: 0" on POST, PUT, PATCH if no \ 
request body is used.
* Add `http2` option to `httpx.Client`.
* Tighten up API typing in places.

0.13.1:

Fixed

* Fix pool options deprecation warning.
* Include `httpx.URLLib3ProxyTransport` in top-level API.

0.13.0:

This release switches to `httpcore` for all the internal networking, which means:

* We're using the same codebase for both our sync and async clients.
* HTTP/2 support is now available with the sync client.
* We no longer have a `urllib3` dependency for our sync client, although there \ 
is still an *optional* `URLLib3Transport` class.

It also means we've had to remove our UDS support, since maintaining that would \ 
have meant having to push back our work towards a 1.0 release, which isn't a \ 
trade-off we wanted to make.

We also now have [a public "Transport \ 
API"](https://www.python-httpx.org/advanced/#custom-transports), which you \ 
can use to implement custom transport implementations against. This formalises \ 
and replaces our previously private "Dispatch API".

Changed

* Use `httpcore` for underlying HTTP transport. Drop `urllib3` requirement.
* Rename pool limit options from `soft_limit`/`hard_limit` to \ 
`max_keepalive`/`max_connections`.
* The previous private "Dispatch API" has now been promoted to a \ 
public "Transport API". When customizing the transport use \ 
`transport=...`. The `ASGIDispatch` and `WSGIDispatch` class naming is \ 
deprecated in favour of `ASGITransport` and `WSGITransport`.

Added

* Added `URLLib3Transport` class for optional `urllib3` transport support.
* Streaming multipart uploads.
* Logging via HTTPCORE_LOG_LEVEL and HTTPX_LOG_LEVEL environment variables
and TRACE level logging.

Fixed

* Performance improvement in brotli decoder.
* Proper warning level of deprecation notice in `Response.stream` and `Response.raw`.
* Fix support for generator based WSGI apps.
* Reuse of connections on HTTP/2 in close concurrency situations.
* Honor HTTP/2 max concurrent streams settings
* Fix bytes support in multipart uploads.
* Improve typing support for `files=...`.

Removed

* Dropped support for `Client(uds=...)`

Next | Query returned 35 messages, browsing 21 to 30 | Previous