/
UCS
/
pybind11
Обзор
Документация
Войти
/
UCS
/
pybind11
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
v2.5.0
tests/test_async.cpp
26 строк
863 B
Jeremy Maitin-Shepard
Add support for __await__, __aiter__, and __anext__ protocols (#1842)
18 июл 2019, 10:02
18 июл 2019, 10:02
a3f4a0e
Код
Авторство
О чём код?
/* tests/test_async.cpp -- __await__ support Copyright (c) 2019 Google Inc. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. */ #include "pybind11_tests.h" TEST_SUBMODULE(async_module, m) { struct DoesNotSupportAsync {}; py::class_<DoesNotSupportAsync>(m, "DoesNotSupportAsync") .def(py::init<>()); struct SupportsAsync {}; py::class_<SupportsAsync>(m, "SupportsAsync") .def(py::init<>()) .def("__await__", [](const SupportsAsync& self) -> py::object { static_cast<void>(self); py::object loop = py::module::import("asyncio.events").attr("get_event_loop")(); py::object f = loop.attr("create_future")(); f.attr("set_result")(5); return f.attr("__await__")(); }); }