
    -hh>                         S r SSKrSSKrSSKrSSKrSSKrSSKJr  SSKJr  SSKJ	r	  SSKJ
r
  SSKJr   " S	 S
\R                  5      r " S S5      rSSS.S jrS rg))Runnerrun    N   )
coroutines)events)
exceptions)tasks)	constantsc                        \ rS rSrSrSrSrSrg)_State   createdinitializedclosed N)__name__
__module____qualname____firstlineno__CREATEDINITIALIZEDCLOSED__static_attributes__r       8/opt/python-3.13.8/usr/lib/python3.13/asyncio/runners.pyr   r      s    GKFr   r   c                   V    \ rS rSrSSS.S jrS rS rS rS rSS	.S
 jr	S r
S rSrg)r      Ndebugloop_factoryc                ~    [         R                  U l        Xl        X l        S U l        S U l        SU l        SU l        g )Nr   F)	r   r   _state_debug_loop_factory_loop_context_interrupt_count_set_event_loop)selfr   r    s      r   __init__Runner.__init__0   s6    nn)
 !$r   c                 &    U R                  5         U $ N)
_lazy_initr)   s    r   	__enter__Runner.__enter__9   s    r   c                 $    U R                  5         g r-   )close)r)   exc_typeexc_valexc_tbs       r   __exit__Runner.__exit__=   s    

r   c                 `   U R                   [        R                  La  g  U R                  n[	        U5        UR                  UR                  5       5        UR                  UR                  [        R                  5      5        U R                  (       a  [        R                  " S 5        UR                  5         S U l        [        R                  U l         g ! U R                  (       a  [        R                  " S 5        WR                  5         S U l        [        R                  U l         f = fr-   )r"   r   r   r%   _cancel_all_tasksrun_until_completeshutdown_asyncgensshutdown_default_executorr
   THREAD_JOIN_TIMEOUTr(   r   set_event_loopr3   r   )r)   loops     r   r3   Runner.close@   s    ;;f000	(::Dd###D$;$;$=>##..y/L/LMO ##%%d+JJLDJ --DK	 ##%%d+JJLDJ --DKs   A$C AD-c                 :    U R                  5         U R                  $ r-   )r.   r%   r/   s    r   get_loopRunner.get_loopQ   s    zzr   contextc                   [         R                  " U5      (       d  [        SR                  U5      5      e[        R
                  " 5       b  [        S5      eU R                  5         Uc  U R                  nU R                  R                  XS9n[        R                  " 5       [        R                  " 5       L a{  [        R                  " [        R                   5      [        R"                  L aF  [$        R&                  " U R(                  US9n [        R                  " [        R                   U5        OS nSU l         U R                  R-                  U5      Ub\  [        R                  " [        R                   5      UL a4  [        R                  " [        R                   [        R"                  5        $ $ $ ! [         a    S n Nf = f! [.        R0                   a7    U R*                  S:  a%  [3        USS 5      nUb  U" 5       S:X  a
  [5        5       ee f = f! Ub\  [        R                  " [        R                   5      UL a4  [        R                  " [        R                   [        R"                  5        f f f = f)Nz"a coroutine was expected, got {!r}z7Runner.run() cannot be called from a running event looprE   )	main_taskr   uncancel)r   iscoroutine
ValueErrorformatr   _get_running_loopRuntimeErrorr.   r&   r%   create_task	threadingcurrent_threadmain_threadsignal	getsignalSIGINTdefault_int_handler	functoolspartial
_on_sigintr'   r;   r   CancelledErrorgetattrKeyboardInterrupt)r)   cororF   tasksigint_handlerrI   s         r   r   
Runner.runV   s   %%d++AHHNOO##%1IK K 	?mmGzz%%d%<$$&)*?*?*AA  /63M3MM&..t$ON&fmm^< "N !	I::006 *$$V]]3~EfmmV-G-GH F +%  & "&	& (( 	$$q("4T:'HJ!O+--	 *$$V]]3~EfmmV-G-GH F +s,   %F9 ?G 9GGAHH A!I:c                 <   U R                   [        R                  L a  [        S5      eU R                   [        R                  L a  g U R
                  cS  [        R                  " 5       U l        U R                  (       d'  [        R                  " U R                  5        SU l	        OU R                  5       U l        U R                  b%  U R                  R                  U R                  5        [        R                  " 5       U l        [        R                  U l         g )NzRunner is closedT)r"   r   r   rN   r   r$   r   new_event_loopr%   r(   r?   r#   	set_debugcontextvarscopy_contextr&   r/   s    r   r.   Runner._lazy_init   s    ;;&--'122;;&,,,%..0DJ'' %%djj1'+$++-DJ;;"JJ  -#002((r   c                     U =R                   S-  sl         U R                   S:X  aB  UR                  5       (       d-  UR                  5         U R                  R	                  S 5        g [        5       e)Nr   c                      g r-   r   r   r   r   <lambda>#Runner._on_sigint.<locals>.<lambda>   s    Dr   )r'   donecancelr%   call_soon_threadsafer\   )r)   signumframerH   s       r   rY   Runner._on_sigint   sW    "  A%inn.>.>JJ++L9!!r   )r&   r#   r'   r%   r$   r(   r"   )r   r   r   r   r*   r0   r7   r3   rC   r   r.   rY   r   r   r   r   r   r      s8    8 !%4 %("
 $( +IZ)&"r   r   r   c                    [         R                  " 5       b  [        S5      e[        XS9 nUR	                  U 5      sS S S 5        $ ! , (       d  f       g = f)Nz8asyncio.run() cannot be called from a running event loopr   )r   rM   rN   r   r   )mainr   r    runners       r   r   r      sI    : !-FH 	H 
e	76zz$ 
8	7	7s   A
Ac                 h   [         R                  " U 5      nU(       d  g U H  nUR                  5         M     U R                  [         R                  " USS065        U HP  nUR                  5       (       a  M  UR                  5       c  M-  U R                  SUR                  5       US.5        MR     g )Nreturn_exceptionsTz1unhandled exception during asyncio.run() shutdown)message	exceptionr^   )r	   	all_tasksrl   r;   gather	cancelledrw   call_exception_handler)r@   	to_cancelr^   s      r   r:   r:      s    %I  	ELL)LtLM>>>>'''N!^^-) 	 r   )__all__rd   enumrW   rP   rS    r   r   r   r	   r
   Enumr   r   r   r:   r   r   r   <module>r      sW   
          TYY I" I"X $ # Lr   