Add support for response context manager interface #1491
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Prompted by #1355 (comment)
This PR is now a plain refactor that adds support for HTTPCore returning context-managed responses, should we choose to move forward with encode/httpcore#206.
This ends up basically being a re-issuing of #1341.
I know we discussed "let's just switch to context managers throughout the stack" (#1341 (comment)), but eventually all the changes in #1355 didn't seem to be worth the hassle to me. If all we want is to make the Transport API more resource-leak-safe, then it shouldn't change anything to HTTPX's API since we already handle resource closure properly here.
We could look at reorganizing things to use the context-managed interface more thoroughly internally (to simplify a bunch of
try/except/finally
code aroundclose()
andaclose()
), but all I'm saying is that it doesn't matter as far as compatibility with encode/httpcore#206 is concerned.