
    -hh=Y              
          S r SSKrSSKrSSKrSSKrSSKrSrSrSrSr	Sr
SrS	rS
rSr\
\\\\/r\
S\S\S\S\S0r\R"                  " S5      r " S S\5      r " S S\5      r\r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S \5      rS! rS" rS.S# jr \RB                  " S$S%5      r"S\4S& jr#S.S' jr$ " S( S)\5      r% " S* S+\5      r& " S, S-\'5      r(g)/z"Brian Quinlan (brian@sweetapp.com)    NFIRST_COMPLETEDFIRST_EXCEPTIONALL_COMPLETED_AS_COMPLETEDPENDINGRUNNING	CANCELLEDCANCELLED_AND_NOTIFIEDFINISHEDpendingrunning	cancelledfinishedzconcurrent.futuresc                       \ rS rSrSrg)Error-    N__name__
__module____qualname____firstlineno____static_attributes__r       A/opt/python-3.13.8/usr/lib/python3.13/concurrent/futures/_base.pyr   r   -       r   r   c                       \ rS rSrSrg)CancelledError1   r   Nr   r   r   r   r   r   1   r   r   r   c                       \ rS rSrSrg)InvalidStateError7   r   Nr   r   r   r   r!   r!   7   r   r   r!   c                   ,    \ rS rSrS rS rS rS rSrg)_Waiter;   c                 F    [         R                  " 5       U l        / U l        g N)	threadingEventeventfinished_futuresselfs    r   __init___Waiter.__init__=   s    __&
 "r   c                 :    U R                   R                  U5        g r'   r+   appendr-   futures     r   
add_result_Waiter.add_resultA       $$V,r   c                 :    U R                   R                  U5        g r'   r1   r3   s     r   add_exception_Waiter.add_exceptionD   r7   r   c                 :    U R                   R                  U5        g r'   r1   r3   s     r   add_cancelled_Waiter.add_cancelledG   r7   r   )r*   r+   N)	r   r   r   r   r.   r5   r9   r<   r   r   r   r   r$   r$   ;   s    #---r   r$   c                   L   ^  \ rS rSrU 4S jrU 4S jrU 4S jrU 4S jrSrU =r	$ )_AsCompletedWaiterJ   c                 ^   > [         [        U ]  5         [        R                  " 5       U l        g r'   )superr?   r.   r(   Locklock)r-   	__class__s    r   r.   _AsCompletedWaiter.__init__M   s     $02NN$	r   c                    > U R                      [        [        U ]  U5        U R                  R                  5         S S S 5        g ! , (       d  f       g = fr'   )rD   rB   r?   r5   r*   setr-   r4   rE   s     r   r5   _AsCompletedWaiter.add_resultQ   s2    YY$d6v>JJNN YY   .A
Ac                    > U R                      [        [        U ]  U5        U R                  R                  5         S S S 5        g ! , (       d  f       g = fr'   )rD   rB   r?   r9   r*   rH   rI   s     r   r9    _AsCompletedWaiter.add_exceptionV   2    YY$d9&AJJNN YYrK   c                    > U R                      [        [        U ]  U5        U R                  R                  5         S S S 5        g ! , (       d  f       g = fr'   )rD   rB   r?   r<   r*   rH   rI   s     r   r<    _AsCompletedWaiter.add_cancelled[   rN   rK   )rD   )
r   r   r   r   r.   r5   r9   r<   r   __classcell__rE   s   @r   r?   r?   J   s    %

 r   r?   c                   @   ^  \ rS rSrU 4S jrU 4S jrU 4S jrSrU =r$ )_FirstCompletedWaiter`   c                 X   > [         TU ]  U5        U R                  R                  5         g r'   )rB   r5   r*   rH   rI   s     r   r5    _FirstCompletedWaiter.add_resultc   s    6"

r   c                 X   > [         TU ]  U5        U R                  R                  5         g r'   )rB   r9   r*   rH   rI   s     r   r9   #_FirstCompletedWaiter.add_exceptiong       f%

r   c                 X   > [         TU ]  U5        U R                  R                  5         g r'   )rB   r<   r*   rH   rI   s     r   r<   #_FirstCompletedWaiter.add_cancelledk   rZ   r   r   )	r   r   r   r   r5   r9   r<   r   rQ   rR   s   @r   rT   rT   `   s     r   rT   c                   R   ^  \ rS rSrU 4S jrS rU 4S jrU 4S jrU 4S jrSr	U =r
$ )_AllCompletedWaitero   c                 n   > Xl         X l        [        R                  " 5       U l        [
        TU ]  5         g r'   )num_pending_callsstop_on_exceptionr(   rC   rD   rB   r.   )r-   ra   rb   rE   s      r   r.   _AllCompletedWaiter.__init__r   s(    !2!2NN$	r   c                     U R                      U =R                  S-  sl        U R                  (       d  U R                  R                  5         S S S 5        g ! , (       d  f       g = f)N   )rD   ra   r*   rH   r,   s    r   _decrement_pending_calls,_AllCompletedWaiter._decrement_pending_callsx   s;    YY""a'"))

  YYs   AA
A%c                 D   > [         TU ]  U5        U R                  5         g r'   )rB   r5   rf   rI   s     r   r5   _AllCompletedWaiter.add_result~   s    6"%%'r   c                    > [         TU ]  U5        U R                  (       a  U R                  R	                  5         g U R                  5         g r'   )rB   r9   rb   r*   rH   rf   rI   s     r   r9   !_AllCompletedWaiter.add_exception   s3    f%!!JJNN))+r   c                 D   > [         TU ]  U5        U R                  5         g r'   )rB   r<   rf   rI   s     r   r<   !_AllCompletedWaiter.add_cancelled   s    f%%%'r   )rD   ra   rb   )r   r   r   r   r.   rf   r5   r9   r<   r   rQ   rR   s   @r   r^   r^   o   s!    !(,( (r   r^   c                   &    \ rS rSrS rS rS rSrg)_AcquireFutures   c                 *    [        U[        S9U l        g )N)key)sortedidfutures)r-   ru   s     r   r.   _AcquireFutures.__init__   s    g2.r   c                 ^    U R                    H  nUR                  R                  5         M     g r'   )ru   
_conditionacquirer3   s     r   	__enter___AcquireFutures.__enter__   "    llF%%' #r   c                 ^    U R                    H  nUR                  R                  5         M     g r'   )ru   rx   release)r-   argsr4   s      r   __exit___AcquireFutures.__exit__   r|   r   )ru   N)r   r   r   r   r.   rz   r   r   r   r   r   ro   ro      s    /((r   ro   c                 6   U[         :X  a  [        5       nO_U[        :X  a  [        5       nOJ[	        S U  5       5      nU[
        :X  a  [        USS9nO#U[        :X  a  [        USS9nO[        SU-  5      eU  H  nUR                  R                  U5        M      U$ )Nc              3   R   #    U  H  oR                   [        [        4;  v   M     g 7fr'   _stater
   r   .0fs     r   	<genexpr>._create_and_install_waiters.<locals>.<genexpr>   s!      PLNq!7 BBBs   %'T)rb   FzInvalid return condition: %r)r   r?   r   rT   sumr   r^   r   
ValueError_waitersr2   )fsreturn_whenwaiterpending_countr   s        r   _create_and_install_waitersr      s    m##%		'&( PLNP P /)($OFM)(%PF;kIJJ	

&!  Mr   c              #     #    U (       al  U S   nU H  nUR                  U5        M     UR                     UR                  R                  U5        S S S 5        AU R                  5       v   U (       a  Mk  g g ! , (       d  f       N,= f7f)N)removerx   r   pop)r   r   ref_collectr   futures_sets        r   _yield_finished_futuresr      se      rF&Kq! '\\JJf% ffh " \s"   3BA7"B5B7
BBc           	   #   B  #    Ub  U[         R                  " 5       -   n[        U 5      n [        U 5      n[	        U 5         [        S U  5       5      nX-
  n[        U [        5      nS S S 5        [        W5      n [        UWU 4S9 S h  vN   W(       a  Uc  S nO7W[         R                  " 5       -
  nUS:  a  [        S[        U5      U4-  5      eUR                  R                  U5        UR                     UR                  n/ Ul        UR                  R                  5         S S S 5        UR                  5         [        XFX4S9 S h  vN   U(       a  M  U  H3  nUR                      UR"                  R%                  U5        S S S 5        M5     g ! , (       d  f       GN6= f GN! , (       d  f       N= f Nm! , (       d  f       Mo  = f! U  HE  nUR                      UR"                  R%                  W5        S S S 5        M5  ! , (       d  f       MD  = f   f = f7f)Nc              3   ^   #    U  H#  nUR                   [        [        4;   d  M  Uv   M%     g 7fr'   r   r   s     r   r   as_completed.<locals>.<genexpr>   s+      Ca88 6AA 2s   -	-)r   r   z%d (of %d) futures unfinished)time	monotonicrH   lenro   r   r   listr   TimeoutErrorr*   waitrD   r+   clearreverserx   r   r   )	r   timeoutend_timetotal_futuresr   r   r   wait_timeoutr   s	            r   as_completedr      s    $ T^^--	RBGM		 CC C -,R? 
 H~H**8V8:u> 	> 	> #'$..*::!#&;L-?9 9: : LLl+!22*,'""$  .x<>=J J J' g0 A

!!&)  G 
		> J  A

!!&)  s   =H'F&H:G 	F'
A/G 9.F*'&G F;G H,F=H
F$H'G *
F84G =
G	HH!H	=
H
HHHDoneAndNotDoneFutureszdone not_donec                    [        U 5      n [        U 5         U  Vs1 s H!  nUR                  [        [        4;   d  M  UiM#     nnX-
  nU[
        :X  a  U(       a  [        XE5      sS S S 5        $ U[        :X  a2  U(       a+  [        S U 5       5      (       a  [        XE5      sS S S 5        $ [        U5      [        U 5      :X  a  [        XE5      sS S S 5        $ [        X5      nS S S 5        WR                  R                  U5        U  H3  nUR                     UR                  R                  U5        S S S 5        M5     WR!                  UR"                  5        [        X@U-
  5      $ s  snf ! , (       d  f       N= f! , (       d  f       M  = f)Nc              3   z   #    U  H1  nUR                  5       (       a  M  UR                  5       c  M-  Uv   M3     g 7fr'   )r   	exceptionr   s     r   r   wait.<locals>.<genexpr>(  s/      Gd++- ,-KKM 1ds   ;;	;)rH   ro   r   r
   r   r   r   r   anyr   r   r*   r   rx   r   r   updater+   )r   r   r   r   donenot_doner   s          r   r   r     sI   2 
RB		 F2ahh#98"DD 2 F9?*(8 
	 _,$ Gd G G G,T< 
	 t9B(8 
	 -R= 
  LLg\\JJf% \  	KK''( Dy11+F 
	$ \s?   E,E'E'!E,/2E,+"E,E,E='E,,
E:=
F	c                       U R                  U5      U R                  5         A $ ! U R                  5         f = f! A f = fr'   )resultcancel)futr   s     r   _result_or_cancelr   :  s9    	::g&JJL  JJL s   % : 7: =c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSS jrSS jrS rS rS r\" \R(                  5      rSrg)FutureiE  c                     [         R                  " 5       U l        [        U l        S U l        S U l        / U l        / U l        g r'   )	r(   	Conditionrx   r   r   _result
_exceptionr   _done_callbacksr,   s    r   r.   Future.__init__H  s6    #--/!r   c                     U R                    H  n U" U 5        M     g ! [         a    [        R                  SU 5         M4  f = fNz!exception calling callback for %r)r   	ExceptionLOGGERr   )r-   callbacks     r   _invoke_callbacksFuture._invoke_callbacksQ  sC    ,,HL -  L  !DdKLs    AAc                 ~   U R                      U R                  [        :X  a  U R                  (       a^  SU R                  R
                  [        U 5      [        U R                     U R                  R                  R
                  4-  sS S S 5        $ SU R                  R
                  [        U 5      [        U R                     U R                  R                  R
                  4-  sS S S 5        $ SU R                  R
                  [        U 5      [        U R                     4-  sS S S 5        $ ! , (       d  f       g = f)Nz<%s at %#x state=%s raised %s>z <%s at %#x state=%s returned %s>z<%s at %#x state=%s>)	rx   r   r   r   rE   r   rt   _STATE_TO_DESCRIPTION_MAPr   r,   s    r   __repr__Future.__repr__X  s    __{{h&??;//41$++>11::	?< < _ >//41$++>..77	A9 9 _ *NN++tH,T[[9-; ; __s   A:D.AD./5D..
D<c                 J   U R                      U R                  [        [        4;   a
   S S S 5        gU R                  [        [
        4;   a
   S S S 5        g[        U l        U R                   R                  5         S S S 5        U R                  5         g! , (       d  f       N= f)NFT)rx   r   r   r   r	   r
   
notify_allr   r,   s    r   r   Future.cancell  s{     __{{w11 _ {{y*@AA _ $DKOO&&(  	  _s   BB%B
B"c                     U R                      U R                  [        [        4;   sS S S 5        $ ! , (       d  f       g = fr'   )rx   r   r	   r
   r,   s    r   r   Future.cancelled  s%    __;;9.D"EE __s   0
>c                 v    U R                      U R                  [        :H  sS S S 5        $ ! , (       d  f       g = fr'   )rx   r   r   r,   s    r   r   Future.running  s    __;;') __s   *
8c                     U R                      U R                  [        [        [        4;   sS S S 5        $ ! , (       d  f       g = fr'   )rx   r   r	   r
   r   r,   s    r   r   Future.done  s'    __;;9.Dh"OO __s	   5
Ac                 \    U R                   b   U R                   eU R                  $ ! S n f = fr'   )r   r   r,   s    r   __get_resultFuture.__get_result  s0    ??&oo%
 << s   ' +c                 8   U R                      U R                  [        [        [        4;  a%  U R
                  R                  U5         S S S 5        g  S S S 5         U" U 5        g ! , (       d  f       N= f! [         a    [        R                  SU 5         g f = fr   )
rx   r   r	   r
   r   r   r2   r   r   r   )r-   fns     r   add_done_callbackFuture.add_done_callback  s}     __{{9.Dh"OO$$++B/ _O 	HtH _  	H@$G	Hs   <A%A6 %
A36 BBNc                     U R                      U R                  [        [        4;   a
  [	        5       eU R                  [
        :X  a  U R                  5       sS S S 5        S n $ U R                   R                  U5        U R                  [        [        4;   a
  [	        5       eU R                  [
        :X  a  U R                  5       sS S S 5        S n $ [        5       e! , (       d  f       O= f S n g ! S n f = fr'   )	rx   r   r	   r
   r   r   _Future__get_resultr   r   r-   r   s     r   r   Future.result  s     	;;9.D"EE(**[[H,,,.	 !  D $$W-;;9.D"EE(**[[H,,,. !  D '.( !  D4Ds6   C/ AC	C/ "A"C	C/ 
C
C($C/ /C3c                    U R                      U R                  [        [        4;   a
  [	        5       eU R                  [
        :X  a  U R                  sS S S 5        $ U R                   R                  U5        U R                  [        [        4;   a
  [	        5       eU R                  [
        :X  a  U R                  sS S S 5        $ [        5       e! , (       d  f       g = fr'   )	rx   r   r	   r
   r   r   r   r   r   r   s     r   r   Future.exception  s    $ __{{y*@AA$&&(	 _ OO  ){{y*@AA$&&( _ #n$ _s   ACAC
C
Cc                    U R                      U R                  [        :X  a9  [        U l        U R                   H  nUR                  U 5        M      S S S 5        gU R                  [        :X  a  [        U l         S S S 5        g[        R                  S[        U 5      U R                  5        [        S5      e! , (       d  f       g = f)NFTz!Future %s in unexpected state: %szFuture in unexpected state)rx   r   r	   r
   r   r<   r   r   r   criticalrt   RuntimeError)r-   r   s     r   set_running_or_notify_cancel#Future.set_running_or_notify_cancel  s    . __{{i'4"mmF((. ,  _ '% _  C "4 $- ##?@@ _s   AB9 B95B99
Cc                    U R                      U R                  [        [        [        1;   a%  [        SR                  U R                  U 5      5      eXl        [        U l        U R                   H  nUR                  U 5        M     U R                   R                  5         S S S 5        U R                  5         g ! , (       d  f       N= fNz{}: {!r})rx   r   r	   r
   r   r!   formatr   r   r5   r   r   )r-   r   r   s      r   
set_resultFuture.set_result  s    
 __{{y*@(KK'
(9(9$++t(LMM!L"DK--!!$' (OO&&(  	  _   BB::
Cc                    U R                      U R                  [        [        [        1;   a%  [        SR                  U R                  U 5      5      eXl        [        U l        U R                   H  nUR                  U 5        M     U R                   R                  5         S S S 5        U R                  5         g ! , (       d  f       N= fr   )rx   r   r	   r
   r   r!   r   r   r   r9   r   r   )r-   r   r   s      r   set_exceptionFuture.set_exception(  s    
 __{{y*@(KK'
(9(9$++t(LMM'O"DK--$$T* (OO&&(  	  _r   )rx   r   r   r   r   r   r'   )r   r   r   r   r.   r   r   r   r   r   r   r   r   r   r   r   r   r   classmethodtypesGenericAlias__class_getitem__r   r   r   r   r   r   E  sc    "L;(&F
*
P
 H(!F%D&AP!! $E$6$67r   r   c                   H    \ rS rSrS rSSS.S jrSSS.S	 jjrS
 rS rSr	g)Executori9  c                    [        5       er'   )NotImplementedError)r-   r   r   kwargss       r   submitExecutor.submit<  s     "##r   Nre   )r   	chunksizec                   ^^^ Tb  T[         R                  " 5       -   m[        U6  Vs/ s H  oPR                  " U/UQ76 PM     snmUUU4S jnU" 5       $ s  snf )Nc               3   `  >#     TR                  5         T(       aZ  Tc  [        TR                  5       5      v   O2[        TR                  5       T[        R                  " 5       -
  5      v   T(       a  MZ  T H  n U R                  5         M     g ! T H  n U R                  5         M     f = f7fr'   )r   r   r   r   r   r   )r4   r   r   r   s    r   result_iterator%Executor.map.<locals>.result_iteratord  s{     $

/99/(T^^EU:UVV b !FMMO !bFMMO !s   B.A/B 6B.B++B.)r   r   zipr   )	r-   r   r   r   	iterablesr   r   r   r   s	     `    @@r   mapExecutor.mapG  sV    , !11H14iAkk"$t$A	$   # Bs   AF)cancel_futuresc                    g r'   r   )r-   r   r  s      r   shutdownExecutor.shutdowns  s     	r   c                     U $ r'   r   r,   s    r   rz   Executor.__enter__  s    r   c                 "    U R                  SS9  g)NT)r   F)r  )r-   exc_typeexc_valexc_tbs       r   r   Executor.__exit__  s    4 r   r   )T)
r   r   r   r   r   r  r  rz   r   r   r   r   r   r   r   9  s*    	$ +/! *!XE  r   r   c                       \ rS rSrSrg)BrokenExecutori  r   Nr   r   r   r   r  r    s     r   r  r'   ))
__author__collectionsloggingr(   r   r   r   r   r   r   r   r   r	   r
   r   _FUTURE_STATESr   	getLoggerr   r   r   r   r   r!   objectr$   r?   rT   r^   ro   r   r   r   
namedtupler   r   r   r   r   r   r  r   r   r   <module>r     sb   2
     ## 
	1   YY{Kj  
		/	0	I 		U 	 	 	-f - ,G (' (<(f (,,<*| $..2 } 02fr8V r8hOv Od\ r   