python-betterproto
python-betterproto copied to clipboard
ContextManager for stream-unary endpoints
It would be nice if we could interact with a stream-unary endpoint by using a context-manager.
currently the only way to send messages to a stream-unary endpoint is by using an async-generator:
async def request_iterator():
yield create_some_request()
yield create_some_request()
channel = Channel(host="localhost", port=1234)
stub = MyStub(channel)
response = await stub.my_endpoint(request_iterator())
what i imagine is something like this:
channel = Channel(host="localhost", port=1234)
stub = MyStub(channel)
async with stub.my_endpoint as stream:
stream.write(create_some_request())
stream.write(create_some_request())
Open questions:
- how should the interface for receiving the response look?
- could this be used for stream-stream endpoints as well?