
    ^h4                     J    S r SSKJr  SSKJr  \R                  " S5      rS rg)a\  
Inputhook for running the original asyncio event loop while we're waiting for
input.

By default, in IPython, we run the prompt with a different asyncio event loop,
because otherwise we risk that people are freezing the prompt by scheduling bad
coroutines. E.g., a coroutine that does a while/true and never yield back
control to the loop. We can't cancel that.

However, sometimes we want the asyncio loop to keep running while waiting for
a prompt.

The following example will print the numbers from 1 to 10 above the prompt,
while we are waiting for input. (This works also because we use
prompt_toolkit`s `patch_stdout`)::

    In [1]: import asyncio

    In [2]: %gui asyncio

    In [3]: async def f():
       ...:     for i in range(10):
       ...:         await asyncio.sleep(1)
       ...:         print(i)


    In [4]: asyncio.ensure_future(f())

    )__version__)get_asyncio_loopz3.c                    ^ [         (       a  g[        5       mU4S jnU R                  5       nTR                  X!5         TR	                  5         TR                  U5        g! TR                  U5        f = f)z/
Inputhook for asyncio event loop integration.
Nc                  &   > T R                  5         g )N)stop)loops   `/home/james-whalen/.local/lib/python3.13/site-packages/IPython/terminal/pt_inputhooks/asyncio.pyr   inputhook.<locals>.stop6   s    		    )PTK3r   fileno
add_readerrun_foreverremove_reader)contextr   r   r   s      @r	   	inputhookr   %   sd     t D ^^FOOF!#6"6"s    A" "A5N)	__doc__prompt_toolkitr   ptk_versionIPython.core.async_helpersr   
startswithr   r    r   r	   <module>r      s'   : 6 7d##r   