Closed
Description
Here are my current working notes on our remaining 1.0 items...
HTTPX 1.0
- Exception hierarchy. - See Exceptions - Documentation, Hierarchy & Naming. #949 (comment), Exception hierarchy #1095
- Drop chardet. - See Prefer defaulting to utf-8, rather than using chardet autodetect #1078 (comment)
- Optional HTTP/2 installs. - See Optional HTTP/2 httpcore#121
- Drop HSTS. - See Consider dropping HSTS preloading #1102
- Drop URLLib3Transport into external package.
- Context managed transports. - See Add support for streaming responses to
ASGITransport
#998 (comment) tho I need to explain this one more thoroughly.
Minor:
- Drop
httpx.StatusCodes
in favour ofhttpx.codes
. See Single consistent name for status codes #1088 -
PoolLimits
->Limits
,pool_limits
->limits
. - Strict Timeout(...) defaults. Simplify keyword arguments. See httpx.Timeout must include a default #1085
- Review all methods/attributes on the models classes. Eg. See Consistent multidict methods #1089. Also
.call_next
might need to be private..timer
might need looking at. -
httpx.create_ssl_context(...)
- See Standalonecreate_ssl_context()
function? #983
Not strictly required, but worth looking at:
- Review
rfc3986
vs.irl
vs.urlcore
. - See Can't handle URLs with @ character in userinfo section #328 (comment) - Mount API. - See Mount API #977. Not strictly required for 1.0, but we want to make sure we've handling managed transports properly, and not missing any low-level
httpcore
API required to support them. - Expose ContentStream API. Perhaps?
- Upgrade API. - See WebSockets support. #304 (comment)
- Server side requests and responses. - See Server-side requests/responses #1091
API Reference
Here's a high-level API reference...
Helper functions
request
, stream
, get
, options
, head
, post
, put
, patch
, delete
Clients
Client
, AsyncClient
Models
Response
, Request
, URL
, QueryParams
, Headers
, Cookies
Configuration
Limits
, Proxy
, Timeout
Authentication
Auth
, BasicAuth
, DigestAuth
Transports
ASGITransport
, WSGITransport
Status Codes
codes
Exceptions
RequestError
All exceptions that can occur during a.request()
TransportError
These all have counterparts inhttpcore
TimeoutException
ConnectTimeout
ReadTimeout
WriteTimeout
PoolTimeout
NetworkError
ConnectError
ReadError
WriteError
CloseError
ProxyError
ProtocolError
DecodingError
ContentDecodingError
TextDecodingError
TooManyRedirects
RequestBodyUnavailable
InvalidURL
HTTPStatusError
- Occurs during.raise_for_status
NotRedirectResponse
- Occurs if calling.next()
without properly checking.is_redirect_response
CookieConflict
- Can occur withresponse.cookies.get(...)
StreamError
StreamConsumed
- Occurs if attempting to iterate over the stream twiceResponseNotRead
- Occurs if accessing.content
without having.read()
the streamRequestNotRead
- Occurs if accessing.content
without having.read()
the streamResponseClosed
- Occurs if attempting to read the stream after response is already closed
Dependencies
Here's how our lovely & minimal core non-optional dependancies would look...
Depending on our assessment of #328 (comment)
httpcore
h11
sniffio
rfc3986
idna
certifi
Metadata
Metadata
Assignees
Labels
No labels