#[pyfunction]
Expand description
pyo3::pyfunction
with async support.
Generate a additional function prefixed by async_
, decorated by pyo3::pyfunction
and
#[pyo3(name = ...)]
.
Python async backend can be specified using macro argument (default to asyncio
).
If allow_threads
is passed in arguments, GIL will be released for future polling (see
AllowThreads
)
ยงExample
#[pyo3_async::pyfunction(allow_threads)]
pub async fn print(s: String) {
println!("{s}");
}
generates
pub async fn print(s: String) {
println!("{s}");
}
#[::pyo3::pyfunction]
#[pyo3(name = "print")]
pub fn async_print(s: String) -> ::pyo3_async::asyncio::Coroutine {
::pyo3_async::asyncio::Coroutine::from_future(::pyo3_async::AllowThreads(
async move { print(s).await; Ok(()) }
))
}