Commit Graph

990 Commits

Author SHA1 Message Date
Tom Christie
0c2cb240df
Version 0.18.0 (#1576)
* Version 0.18.0
2021-04-27 15:20:22 +01:00
Tom Christie
0a8b44e67d
Perform port normalization for http, https, ws, wss, and ftp schemes (#1603) 2021-04-27 14:06:23 +01:00
Tom Christie
c927f3e965
Code comments for URL model (#1602) 2021-04-27 11:23:52 +01:00
Tom Christie
e67b0dd15b
Expand URL interface (#1601)
* Expand URL interface

* Add URL query param manipulation methods
2021-04-27 09:01:14 +01:00
Tom Christie
2abb2f214a
Immutable QueryParams (#1600)
* Tweak QueryParams implementation

* Immutable QueryParams
2021-04-26 14:57:02 +01:00
Tom Christie
8fe32c52de
Tweak QueryParams implementation (#1598) 2021-04-26 14:06:12 +01:00
Tom Christie
6e55ca1af9
Escalate 0.17 deprecation warnings to becoming fully deprecated. (#1597) 2021-04-26 11:03:11 +01:00
Tom Christie
39d8ee619e
Differentiate between 'url.host' and 'url.raw_host' (#1590)
* Differentiate between 'url.host' and 'url.raw_host'
2021-04-23 11:00:53 +01:00
Tom Christie
d98e9e7ae7
Support HTTPCore 0.13 (#1588)
* Support HTTPCore 0.13

* Update httpcore minimum version

* Call into 'handle_async_request', not 'arequest'

* Drop unintentional commit

* Update tests
2021-04-21 14:43:18 +01:00
Hannes Ljungberg
2d571046e1
Make Request and Response picklable (#1579)
* Make Request and Response picklable

* fixup! Make Request and Response picklable

* Apply suggestions from code review

* Apply suggestions from code review

* Update tests/models/test_requests.py

Co-authored-by: Tom Christie <tom@tomchristie.com>
2021-04-21 11:11:00 +01:00
Tom Christie
9b8f5af759
httpx.ResponseClosed -> httpx.StreamClosed (#1584)
* ResponseClosed -> StreamClosed

* Update docs for StreamClosed
2021-04-21 10:51:35 +01:00
Tom Christie
6a99f6f2b3
Deprecate per-request cookies (#1574)
* Deprecate per-request cookies

* Update docs/compatibility.md

Co-authored-by: Stephen Brown II <Stephen.Brown2@gmail.com>

* Update httpx/_client.py

Co-authored-by: Stephen Brown II <Stephen.Brown2@gmail.com>

* Update compatibility.md

Co-authored-by: Stephen Brown II <Stephen.Brown2@gmail.com>
2021-04-19 11:18:32 +01:00
Tom Christie
966550b342
For non-streaming cases, populate request.content automatically. (#1583)
* For non-streaming cases, populate request.content

* Linting
2021-04-19 11:13:45 +01:00
Tom Christie
8fd5b71016
Drop StreamContextManager in favour of contextlib.contextmanager/asynccontextmanager (#1577)
* Drop StreamContextManager in favour of using contextlib.contextmanager/asyncontextmanager

* Use type: ignore to avoid mypy errors on 3.6
2021-04-19 11:07:07 +01:00
Hannes Ljungberg
ed19995747
Drop Response.call_next leftover attribute (#1578) 2021-04-16 21:05:34 +02:00
Tom Christie
397aad98fd
Escalate the distinction between data=... and content=... to be stricter (#1573) 2021-04-16 10:06:12 +01:00
Tom Christie
073a3284ab
Drop 'Response(on_close=...)' from API (#1572) 2021-04-16 10:03:37 +01:00
ascopes
4870cb5adf
Update verify parameter description (#1575)
Included that the verify parameter can be an SSL context, as it currently is missing information
that is present in the advanced usage section of the documentation, and the type hints are not
showing up in the interface specification.

Amend verify docs for client
2021-04-16 10:03:08 +01:00
Tom Christie
110ce85652
Stream interface (#1550)
* Add SyncByteStream, AsyncByteStream to interface

* request.stream and response.stream as httpx.SyncByteStream/httpx.AsyncByteStream

* Update httpx/_transports/base.py

Co-authored-by: Florimond Manca <florimond.manca@gmail.com>

* Update httpx/_transports/default.py

Co-authored-by: Florimond Manca <florimond.manca@gmail.com>

* Move response classes in transports to module level

Co-authored-by: Florimond Manca <florimond.manca@gmail.com>
2021-04-13 13:14:04 +01:00
Hemanth kumar
535df6c998
Added docs for using client-side ssl certificates (#1570)
* Added docs for using client-side ssl certificates

* Update docs/advanced.md

Co-authored-by: Joe <nigelchiang@outlook.com>

* Update docs/advanced.md

Co-authored-by: Joe <nigelchiang@outlook.com>

* Update docs/advanced.md

* Update docs/advanced.md

* Update docs/advanced.md

Co-authored-by: Hemanth <hemanth@actionfi.com>
Co-authored-by: Tom Christie <tom@tomchristie.com>
Co-authored-by: Joe <nigelchiang@outlook.com>
2021-04-13 20:08:22 +08:00
Tom Christie
eb7433bf8e
Fix up license whitespacing (#1563) 2021-04-09 13:08:34 +01:00
Colin Bounouar
4dec569749
Add httpx-auth and pytest-httpx to third party documentation (#1560) 2021-04-07 23:02:44 +02:00
Jaakko Lappalainen
c1ccdbcb81
added docs for startup/shutdown of ASGI apps (#1554) 2021-04-05 10:55:57 +02:00
Jonas Lundberg
52dd95fb5c
Fix extenstions typo in AsyncHTTPTransport (#1549) 2021-04-01 15:32:20 +01:00
Tom Christie
da2a334f2d
Tweak issue config.yml (#1542)
* Update config.yml

* Update the issue template for neater formatting
2021-03-26 15:07:18 +00:00
Tom Christie
e65a33d3cf
Neater close logic (#1541) 2021-03-26 15:06:05 +00:00
Tom Christie
c26425aa58
Handle data={"key": [None|int|float|bool]} cases. (#1539)
* Fix Content-Length for unicode file contents with multipart

* Handle bool and None cases for URLEncoded data

* Handle int, float, bool, and None for multipart or urlencoded data

* Update httpx/_utils.py

Co-authored-by: Florimond Manca <florimond.manca@gmail.com>

Co-authored-by: Florimond Manca <florimond.manca@gmail.com>
2021-03-26 12:54:04 +00:00
Tom Christie
c75ddc26c7
Fix Content-Length for unicode file contents with multipart (#1537) 2021-03-25 15:35:02 +00:00
Louis Maddox
68cf1ff88a
Fix typo to match library default (#1535)
Matches default given at https://github.com/encode/httpx/blob/master/httpx/_config.py#L359
2021-03-25 11:03:47 +00:00
Tom Christie
437b55c520
Refine project workflow (#1534)
* Refine project workflow

* Fix link to third party packages
2021-03-24 16:48:57 +00:00
Tom Christie
1a6e254f72
Transport API (#1522)
* Added httpx.BaseTransport and httpx.AsyncBaseTransport

* Test coverage and default transports to calling .close on __exit__

* BaseTransport documentation

* Use 'handle_request' for the transport API.

* Docs tweaks

* Docs tweaks

* Minor docstring tweak

* Transport API docs

* Drop 'Optional' on Transport API

* Docs tweaks

* Tweak CHANGELOG

* Drop erronous example.py

* Push httpcore exception wrapping out of client into transport (#1524)

* Push httpcore exception wrapping out of client into transport

* Include close/aclose extensions in docstring

* Comment about the request property on RequestError exceptions

* Extensions reason_phrase and http_version as bytes (#1526)

* Extensions reason_phrase and http_version as bytes

* Update BaseTransport docstring

* Neaten up our try...except structure for ensuring responses (#1525)

* Fix CHANGELOG typo

Co-authored-by: Florimond Manca <florimond.manca@gmail.com>

* Fix CHANGELOG typo

Co-authored-by: Florimond Manca <florimond.manca@gmail.com>

* stream: Iterator[bytes] -> stream: Iterable[bytes]

* Use proper bytestream interfaces when calling into httpcore

* Grungy typing workaround due to httpcore using Iterator instead of Iterable in bytestream types

* Update docs/advanced.md

Co-authored-by: Florimond Manca <florimond.manca@gmail.com>

* Consistent typing imports across tranports

* Update docs/advanced.md

Co-authored-by: Florimond Manca <florimond.manca@gmail.com>

Co-authored-by: Florimond Manca <florimond.manca@gmail.com>
2021-03-24 12:36:34 +00:00
Tom Christie
6cb1672459
Fix some cases of merging with base_url (#1532)
* Fix some cases of merging with base_url

* Fix for joining relative URLs

* Improve code comment in _merge_url implementation
2021-03-24 10:51:33 +00:00
laggardkernel
ea5ffce14f
Fix redirect description about HEAD (#1520)
* Fix redirect description about HEAD

* Apply suggestions from code review

Co-authored-by: Florimond Manca <florimond.manca@gmail.com>
2021-03-21 15:59:31 +01:00
Tom Christie
e05a5372eb
Version 0.17.1 (#1505)
Co-authored-by: Florimond Manca <florimond.manca@gmail.com>
2021-03-15 09:18:29 +00:00
Tom Christie
2e6930fd77
Version 0.17.1 (#1505) 2021-03-12 18:29:20 +00:00
Marat Sharafutdinov
24a55d73c3
Fix CertTypes (#1503) 2021-03-10 09:49:37 +00:00
Simon L
c09e61d50c
Incompatible with httpcore 0.12.0 (#1495) 2021-03-03 12:25:21 +01:00
Florimond Manca
06559f8266
Fix docs syntax highlighting (#1489) 2021-02-28 18:31:20 +01:00
Tom Christie
59f65e2b98
Version 0.17.0 (#1403)
* Version 0.17.0

* Update changelog

* Tweak verbs

* Fix backtick

Co-authored-by: Jamie Hewland <jamie.hewland@hpe.com>

Co-authored-by: Florimond Manca <florimond.manca@gmail.com>
Co-authored-by: Jamie Hewland <jamie.hewland@hpe.com>
2021-02-28 17:05:01 +01:00
Adam Hooper
0f280af8b1
map_exceptions in request.aclose() (#1465)
* map_exceptions in request.aclose()
2021-02-17 11:32:43 +00:00
Tom Christie
bd4caa873c
Tweak create_ssl_context defaults. (#1447)
* Version 0.17.0

* create_ssl_config uses trust_env=True default

* Drop CHANGELOG notes, to be included in a version PR instead
2021-02-17 11:27:10 +00:00
Tom Christie
084f35648b
Allow handler to optionally be async when MockTransport is used with AsyncClient (#1449) 2021-02-17 11:10:21 +00:00
Quentin Pradet
645ae4ed9c
Explain SSL_CERT_DIR specific format (#1470)
It's easy to believe that any .pem files there will get picked up automatically, but that's not the case.
2021-02-17 10:11:08 +00:00
Quentin Pradet
5af6ab0038
Explain REQUESTS_CA_BUNDLE migration (#1471) 2021-02-17 10:06:28 +00:00
Aber
02a692aba5
Handle default ports in WSGITransport (#1469)
* Maybe port is `None`

https://www.python.org/dev/peps/pep-3333/#environ-variables

> SERVER_NAME, SERVER_PORT
> When HTTP_HOST is not set, these variables can be combined to determine a default. See the URL Reconstruction section below for more detail. SERVER_NAME and SERVER_PORT are required strings and must never be empty.

* Add unit test

* Compute default port

Co-authored-by: Florimond Manca <florimond.manca@gmail.com>
2021-02-16 13:33:17 +01:00
Adam Johnson
d964343fa1
Add Changelog link to PyPI page (#1462)
Makes it easy to find out about changes, and it gets a little "present" icon, for example https://pypi.org/project/django-linear-migrations/
2021-02-09 15:10:42 +01:00
David Bordeynik
2847869475
fix-1457: URL's full_path -> raw_path from pull #1285 in docs as well (#1458) 2021-02-07 09:33:45 +01:00
Simon Willison
c52e7d212f
Added missing Request __init__ parameters (#1456)
Co-authored-by: Joe <nigelchiang@outlook.com>
2021-02-07 11:48:23 +08:00
Daniel Saxton
9542a17831
Fix doc capitalization (#1460) 2021-02-07 00:23:30 +01:00
Tom Christie
89fb0cbc69
Add HTTPTransport and AsyncHTTPTransport (#1399)
* Add keepalive_expiry to Limits config

* keepalive_expiry should be optional. In line with httpcore.

* HTTPTransport and AsyncHTTPTransport

* Update docs for httpx.HTTPTransport()

* Update type hints

* Fix docs typo

* Additional mount example

* Tweak context manager methods

* Add 'httpx.HTTPTransport(proxy=...)'

* Use explicit keyword arguments throughout httpx.HTTPTransport

Co-authored-by: Florimond Manca <florimond.manca@gmail.com>
2021-01-08 10:23:56 +00:00