Comments (1)
Had more discussions about this, here's the results of that discussion:
- Having a
Response.as_file()
method which exposes a file-like object that acts exactly as a usualopen()
file is desirable for csv readers, data-frames, etc - Something which has caused problems for urllib3 in the past is users seeing the interface of 'HTTPResponse' and noticing it inherits
IOBase
but doesn't exactly behave like a file. Let's not make that mistake again. - The
as_file()
interface shouldn't close once all data is read just like a real file but should close the contained Response object after all data is read. This prevents Responses from being left un-closed but also gives an interface that places nice with interfaces expecting files.
Also discussed the usage of .text()/.data()/.json() as methods that load all data onto the Response.
There were questions about whether you should be able to call .text()
and then maybe .text()
again.
If we are one-shot only then you'd only be able to call a single "body" function on a response. However @pquentin brought up that this would make things annoying for debugging as you'd have to reissue requests to get another body.
Another thought was that if a response body is completely loaded into memory we could hold onto that body internally on the request to allow calling .text(), .json(), and .data() again if needed.
from hip.
Related Issues (20)
- When should we run unasync? HOT 3
- Overall plans for the project HOT 9
- Test the Proactor event loop on Windows + Python 3.8 HOT 1
- Repo cleanup HOT 6
- More cleanups HOT 2
- Discussion: What do we call the async versions of hip.get, hip.post, etc.? HOT 24
- What should we do with urllib3's securetransport and pyopenssl support? HOT 1
- Early data support HOT 4
- Intermittent failures HOT 3
- Stop worrying about backwards-compatibility HOT 1
- support for request targets that can't be specified as URLs
- First steps towards a high-level HTTP client API
- Running unasync on test files HOT 8
- [API design] Streaming upload API: push-style or pull-style? HOT 3
- Tracking issue: intermittent test failures
- How to handle Response bodies?
- Improve documentation UX for sync and async APIs HOT 2
- Add support for Async and Sync Iterators as Request bodies
- ahip, hip, async tests and coverage HOT 3
- PoolManager(block=True) + trio.nursery causes EmptyPoolError HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hip.