Format: application/x-python-code
⬇ Download File (2.9 KB)
   1  o
   2  
   3  �h�	�@sNdZddlZddlZddlZddlZddlZddlZddlZGdd�d�ZdS)�A trio loop runner.�Nc@s8eZdZdZdd�Zdd�Zdd�Zdd	�Zd
   4  d�ZdS)
   5  �
   6  TrioRunnerrcCsd|_d|_dS)�Initialize the runner.N)�_cell_cancel_scope�_trio_token��self�r	�Kc:\Users\shubh\Videos\agent\nova\Lib\site-packages\ipykernel/trio_runner.py�__init__s
   7  zTrioRunner.__init__cCsT|j�|�|j�dd�dd�|jjjdd<d|_tj|jddd	�}|��d
   8  S)rZ	autoawait�triocSstjddd�S)Nz5Autoawait isn't allowed in Trio background loop mode.�)�
   9  stacklevel)�warnings�warn)�_r	r	r
  10  �<lambda>s�z'TrioRunner.initialize.<locals>.<lambda>�lineFTZTornadoBackground)�target�daemon�nameN)	�shellZset_trio_runnerZrun_line_magicZmagics_managerZmagicsZ_interrupted�	threading�Thread�start)rZkernelZio_loopZ	bg_threadr	r	r
  11  �
  12  initializeszTrioRunner.initializecCs |jr
  13  |j��dSd}t|��)zInteruppt the runner.z)Kernel interrupted but no cell is runningN)r�cancel�	Exception)rZsignum�frame�msgr	r	r
  14  �	interruptszTrioRunner.interruptcsBt�tj�j�}dd����fdd�}t�|�t�tj|�dS)z
  15  Run the loop.cSs*d�t�t|�||j��}t�d|�dS)N�
  16  z2An exception occurred in a global nursery task.
  17  %s)�join�	traceback�format_exception�type�
  18  __traceback__�logging�error)�excr	r	r
  19  �log_nursery_exc+sz'TrioRunner.run.<locals>.log_nursery_excc	�sj�tj���_t��4IdH�}�|_|t_t��IdHWd�IdHdS1IdHs.wYdS)zRun the main loop.N)	rZlowlevelZcurrent_trio_tokenrZopen_nurseryZ_add_exc�builtinsZGLOBAL_NURSERYZ
  20  sleep_forever)Znursery�r*rr	r
  21  �	trio_main/s�.�z!TrioRunner.run.<locals>.trio_mainN)�signal�SIGINTr r�run)rZold_sigr-r	r,r
  22  r0's
  23  
  24  
  25  zTrioRunner.runcs �fdd�}tjj||�jd�S)zHandle a function call.c�sF�t���_�j�
  26  |IdHWd�S1swYd�_dS)zA thread runner context.N)rZCancelScoper)�cororr	r
  27  �loc?s�
  28   �z TrioRunner.__call__.<locals>.loc)Z
  29  trio_token)rZfrom_threadr0r)rZasync_fnr2r	rr
  30  �__call__<szTrioRunner.__call__N)	�__name__�
  31  __module__�__qualname__�__doc__rrr r0r3r	r	r	r
  32  rsr)	r7r+r'r.rr#rrrr	r	r	r
  33  �<module>s