MCPcopy Create free account
hub / github.com/NVIDIA/NeMo-Relay / forward_async_iter

Function forward_async_iter

crates/python/src/py_callable.rs:141–165  ·  view source on GitHub ↗
(
    async_iter: Arc<Py<PyAny>>,
    tx: tokio::sync::mpsc::Sender<FlowResult<Json>>,
)

Source from the content-addressed store, hash-verified

139}
140
141async fn forward_async_iter(
142 async_iter: Arc<Py<PyAny>>,
143 tx: tokio::sync::mpsc::Sender<FlowResult<Json>>,
144) {
145 loop {
146 let next_value = match next_async_iter_coro(&async_iter) {
147 Ok(None) => break,
148 Ok(Some(coro)) => await_async_iter_value(coro).await,
149 Err(error) => Err(error),
150 };
151
152 match next_value {
153 Ok(Some(value)) => {
154 if tx.send(Ok(value)).await.is_err() {
155 break;
156 }
157 }
158 Ok(None) => break,
159 Err(error) => {
160 let _ = tx.send(Err(error)).await;
161 break;
162 }
163 }
164 }
165}
166
167fn stream_from_async_iter(
168 async_iter: Py<PyAny>,

Calls 3

next_async_iter_coroFunction · 0.85
await_async_iter_valueFunction · 0.85
sendMethod · 0.45