Blame tests/run/py35_asyncio_async_def.srctree

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