
    ȅi                        S SK r S SKrS SKrS SK JrJr  S SKJrJrJrJ	r	J
r
  S SKJrJr  S SKJr  S SKJrJrJrJr  S SKJr  \" S5      r\	\S\4   r\R2                  S	:  a   " S
 S\5      r\rO\\\	\S\4   /\4   rS\\   S\4S jr\ SS\S\
\   4S jj5       r\ SS\\   S\
\ R                     4S jj5       rS\S\\   SS4S jr S\S\\   4S jr!g)    N)AbstractEventLoopFuture)	AwaitableCallable	Coroutine	GeneratorIterator)contextmanager	ExitStack)Context)AnyOptionalProtocolTypeVar)
OrderedSetT      c            
           \ rS rSr S	S\S\SS\4   \SS\4   -  S\S-  S\	R                  R                  \   4S jjrSrg)
TaskFactory   N_TaskFactory__loop_TaskFactory__factory_TaskFactory__contextreturnc                    g N )selfr   r   r   s       U/home/james-whalen/.local/lib/python3.13/site-packages/torch/_inductor/await_utils.py__call__TaskFactory.__call__   s     .1    r   r   )__name__
__module____qualname____firstlineno__r   r   objectr   r   asynciofuturesr   r"   __static_attributes__r   r$   r!   r   r      sg    
 )-		1%	1 !tV!34ytVAS7TT	1 ~		1 __##F+	1 	1r$   r   	awaitabler   c                 n    [        5        nUR                  U 5      sS S S 5        $ ! , (       d  f       g = fr   )get_looprun_until_complete)r-   loops     r!   
await_syncr2       s!    	t&&y1 
s   &
4always_create_new_loopc              #   >  #     [         R                  " 5       n[
        S[         R                  S[        S    4S j5       n[
        S[        S    4S j5       n[        5        nUR                  5       (       aT  UR                  U" 5       5        UR                  U" US95        UR                  [	        UR                  5       5      5      nOdUR                  5       (       a  UR                  [	        5       5      nO5U (       a.  UR                  U" US95        UR                  [	        5       5      nUv   S S S 5        g ! [         aC  nS[        U5      ;   a.  [	        5        nUv   S S S 5        O! , (       d  f       O= f S nAg e S nAff = f! , (       d  f       g = f7f)Nz(There is no current event loop in threadr1   r   c              3   x   #     S v   [         R                  " U 5        g ! [         R                  " U 5        f = f7fr   )r*   set_event_loopr1   s    r!   _restore_loopget_loop.<locals>._restore_loop3   s)     	)""4(G""4(s   : :7:c               3     #    [         R                  R                  5       n [         R                  R                  S 5         S v   [         R                  R                  U 5        g ! [         R                  R                  U 5        f = f7fr   )r*   events_get_running_loop_set_running_loop)loop_from_eventss    r!   _restore_running_loop'get_loop.<locals>._restore_running_loop<   sX     ">>;;=((.	?NN,,-=>GNN,,-=>s   >B	A%  B	%!BB	r7   )r*   get_event_loopRuntimeErrorstr	_new_loopr
   r   r	   r   
is_runningenter_contextget_task_factory	is_closed)r3   r1   rer8   r?   stacks         r!   r/   r/   %   sR    %%' )'')	$) ) ?8D> ? ? 
?? 5 784 89&&y1F1F1H'IJD^^&&y{3D#4 89&&y{3D
 
5  5R@
 4 
se   FD< AF!CF3	F<
F	FE-$	F-
E;	7F>FFF		F
FFtask_factoryc              #   0  #    [         R                  " 5       n[        U5      nU (       a  UR                  U 5        [         R                  " U5         Uv    [        X5        [         R                  " S 5        UR                  5         g ! [         R                  " S 5        UR                  5         f = f!  [        X5        [         R                  " S 5        UR                  5         f ! [         R                  " S 5        UR                  5         f = f= f7fr   )r*   new_event_loop_patch_loopset_task_factoryr6   _cancel_all_tasksclose)rK   r1   taskss      r!   rD   rD   R   s      !!#DEl+4 
	d*""4(JJL ""4(JJL		d*""4(JJL ""4(JJLsH   ADB4 B	 "'D	(B11D4D6C('D((DDDr1   rR   c                    U Vs/ s H  o"R                  5       (       a  M  UPM     n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 s  snf )Nreturn_exceptionsTz1unhandled exception during asyncio.run() shutdown)message	exceptiontask)donecancelr0   r*   gather	cancelledrV   call_exception_handler)r1   rR   rW   	to_cancels       r!   rP   rP   h   s     #(;%$yy{%I;   	GNNINNO>>>>'''R!%!1 	  <s
   CCc           	      0  ^^ [         R                  " 5       mS /mS[        [           SS 4U4S jjnS[        [           4U4S jjnS S.S[        S[
        S[        S -  S[        R                  4UU4S	 jjjnU R                  U5        Xl	        X l
        T$ )
Nfactoryr   c                    > U TS'   g Nr   r   )r_   task_factoriess    r!   _set_task_factory&_patch_loop.<locals>._set_task_factory   s    #qr$   c                     > T S   $ ra   r   )rb   s   r!   _get_task_factory&_patch_loop.<locals>._get_task_factory   s    a  r$   contextr1   corori   c                <  > TS   nUc]  [         R                  S:  a  [        R                  " XUS9nO[        R                  " XS9nUR                  (       a  UR                  S	 O$[         R                  S:  a  U" XUS9nOU" X5      nTR                  U5        U$ )Nr   r   )r1   ri   r7   rh   )sysversion_infor*   Task_source_tracebackadd)r1   rj   ri   rK   rW   rb   rR   s        r!   _safe_task_factory'_patch_loop.<locals>._safe_task_factory   s     &a(7*||DWE||D4%%** 7*#D@#D/		$r$   )weakrefWeakSetr   TaskFactoryTyper   TCoror   r*   r   rO   rG   )r1   rc   rf   rr   rb   rR   s       @@r!   rN   rN      s    %,__%6E7;fN$8O#< $ $!x8 ! #'	 4	
 
 8 	,---Lr$   )Fr   )"r*   rm   rt   r   r   collections.abcr   r   r   r   r	   
contextlibr
   r   contextvarsr   typingr   r   r   r   torch.utils._ordered_setr   r   rw   rn   r   rv   r2   boolr/   rD   rP   rN   r   r$   r!   <module>r~      s;    
  - O O 0  3 3 / CL#tQ,w1h 1 "O 19UD!^3LMvUVO2)A, 21 2
 #() ) ) )X .2?+g''( *
f 
:-' -Jv,> -r$   