# mode: run # tag: asyncio, gh1685 PYTHON setup.py build_ext -i PYTHON main.py ######## setup.py ######## from Cython.Build import cythonize from distutils.core import setup setup( ext_modules = cythonize("*.pyx"), ) ######## main.py ######## import asyncio import cy_test from contextlib import closing async def main(): await cy_test.say() with closing(asyncio.get_event_loop()) as loop: print("Running Python coroutine ...") loop.run_until_complete(main()) print("Running Cython coroutine ...") loop.run_until_complete(cy_test.say()) ######## cy_test.pyx ######## import asyncio from py_test import py_async async def cy_async(): print("- this one is from Cython") async def say(): await cb() async def cb(): print("awaiting:") await cy_async() await py_async() print("sleeping:") await asyncio.sleep(0.5) print("done!") ######## py_test.py ######## async def py_async(): print("- and this one is from Python")