
    -hhM7                     j   S 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  \	R                  r\	R                  r\	R                  r\	R                   r\R"                  S-
  r " S	 S
5      r\rS rS rS rS rS rS rSS.S jr SSKr\R&                  =rrg! \ a     gf = f))Futurewrap_futureisfuture    N)GenericAlias   )base_futures)events)
exceptions)format_helpersc                       \ rS rSr\rSrSrSrSr	Sr
SrSrSrSS.S jrS rS r\" \5      r\S 5       r\R,                  S	 5       rS
 rS rSS jrS rS rS rS rS rSS.S jrS r S r!S r"S r#\#r$Sr%g)r      NFloopc                    Uc  [         R                  " 5       U l        OXl        / U l        U R                  R	                  5       (       a0  [
        R                  " [        R                  " S5      5      U l	        g g )Nr   )
r	   get_event_loop_loop
_callbacks	get_debugr   extract_stacksys	_getframe_source_tracebackselfr   s     8/opt/python-3.13.8/usr/lib/python3.13/asyncio/futures.py__init__Future.__init__H   s\     <..0DJJ::!!%3%A%Aa &"D" "    c                 .    [         R                  " U 5      $ N)r   _future_reprr   s    r   __repr__Future.__repr__X   s    ((..r   c                     U R                   (       d  g U R                  nU R                  R                   S3UU S.nU R                  (       a  U R                  US'   U R
                  R                  U5        g )Nz exception was never retrieved)message	exceptionfuturesource_traceback)_Future__log_traceback
_exception	__class____name__r   r   call_exception_handler)r   exccontexts      r   __del__Future.__del__[   sl    ## oo >>**++IJ	
 !!*.*@*@G&'

))'2r   c                     U R                   $ r    )r*   r"   s    r   _log_tracebackFuture._log_tracebackm   s    ###r   c                 6    U(       a  [        S5      eSU l        g )Nz'_log_traceback can only be set to FalseF)
ValueErrorr*   )r   vals     r   r4   r5   q   s    FGG$r   c                 :    U R                   nUc  [        S5      eU$ )Nz!Future object is not initialized.)r   RuntimeErrorr   s     r   get_loopFuture.get_loopw   s!    zz<BCCr   c                     U R                   b  U R                   nS U l         U$ U R                  c  [        R                  " 5       nU$ [        R                  " U R                  5      nU$ r    )_cancelled_exc_cancel_messager
   CancelledError)r   r/   s     r   _make_cancelled_errorFuture._make_cancelled_error~   sf     *%%C"&DJ'++-C 
 ++D,@,@AC
r   c                 ~    SU l         U R                  [        :w  a  g[        U l        Xl        U R                  5         g)NFT)r*   _state_PENDING
_CANCELLEDr?   _Future__schedule_callbacks)r   msgs     r   cancelFuture.cancel   s7      %;;(" "!!#r   c                     U R                   S S  nU(       d  g / U R                   S S & U H  u  p#U R                  R                  X US9  M!     g Nr0   )r   r   	call_soon)r   	callbackscallbackctxs       r   __schedule_callbacksFuture.__schedule_callbacks   sI     OOA&	&MHJJ   = 'r   c                 (    U R                   [        :H  $ r    )rD   rF   r"   s    r   	cancelledFuture.cancelled   s    {{j((r   c                 (    U R                   [        :g  $ r    )rD   rE   r"   s    r   doneFuture.done   s     {{h&&r   c                 (   U R                   [        :X  a  U R                  5       eU R                   [        :w  a  [        R
                  " S5      eSU l        U R                  b%  U R                  R                  U R                  5      eU R                  $ )NzResult is not ready.F)rD   rF   rA   	_FINISHEDr
   InvalidStateErrorr*   r+   with_traceback_exception_tb_resultr"   s    r   resultFuture.result   st     ;;*$,,..;;)#../EFF$??&//001C1CDD||r   c                     U R                   [        :X  a  U R                  5       eU R                   [        :w  a  [        R
                  " S5      eSU l        U R                  $ )NzException is not set.F)rD   rF   rA   r[   r
   r\   r*   r+   r"   s    r   r'   Future.exception   sO     ;;*$,,..;;)#../FGG$r   rM   c                    U R                   [        :w  a  U R                  R                  XUS9  g Uc  [        R
                  " 5       nU R                  R                  X45        g rL   )rD   rE   r   rN   contextvarscopy_contextr   append)r   fnr0   s      r   add_done_callbackFuture.add_done_callback   sN     ;;("JJ  7 ;%224OO""B=1r   c                     U R                    VVs/ s H  u  p#X!:w  d  M  X#4PM     nnn[        U R                   5      [        U5      -
  nU(       a  X@R                   S S & U$ s  snnf r    )r   len)r   rh   frQ   filtered_callbacksremoved_counts         r   remove_done_callbackFuture.remove_done_callback   sh     /3oo*.=(1!" 'qh.= 	 * DOO,s3E/FF!3OOA*s
   A!A!c                     U R                   [        :w  a&  [        R                  " U R                    SU < 35      eXl        [
        U l         U R                  5         g )N: )rD   rE   r
   r\   r_   r[   rG   )r   r`   s     r   
set_resultFuture.set_result   sH     ;;("..$++b/IJJ!!#r   c                 ~   U R                   [        :w  a&  [        R                  " U R                    SU < 35      e[	        U[
        5      (       a  U" 5       n[	        U[        5      (       a  [        S5      nXl        Xl	        UnXl
        UR                  U l        [        U l         U R                  5         SU l        g )Nrs   zPStopIteration interacts badly with generators and cannot be raised into a FutureT)rD   rE   r
   r\   
isinstancetypeStopIterationr:   	__cause____context__r+   __traceback__r^   r[   rG   r*   )r   r'   new_excs      r   set_exceptionFuture.set_exception  s     ;;("..$++b/IJJi&&!Ii//" $, -G !*"+I#&44!!##r   c              #      #    U R                  5       (       d  SU l        U v   U R                  5       (       d  [        S5      eU R                  5       $ 7f)NTzawait wasn't used with future)rX   _asyncio_future_blockingr:   r`   r"   s    r   	__await__Future.__await__  s@     yy{{,0D)Jyy{{>??{{}s   AA)__log_tracebackr   r   r?   r>   r+   r^   r   r_   r   rD   r    )&r-   
__module____qualname____firstlineno__rE   rD   r_   r+   r   r   r?   r>   r   r*   r   r#   r1   classmethodr   __class_getitem__propertyr4   setterr;   rA   rI   rG   rU   rX   r`   r'   ri   rp   rt   r~   r   __iter____static_attributes__ r   r   r   r      s    ( FGJEON  %O# " /3  $L1$ $ % %
">)'  04 2 
$$. Hr   r   c                 `     U R                   nU" 5       $ ! [         a     U R                  $ f = fr    )r;   AttributeErrorr   )futr;   s     r   	_get_loopr   *  s:    << z   99	s    
--c                 R    U R                  5       (       a  g U R                  U5        g r    )rU   rt   )r   r`   s     r   _set_result_unless_cancelledr   6  s    
}}NN6r   c                 h   [        U 5      nU[        R                  R                  L a6  [        R                  " U R
                  6 R                  U R                  5      $ U[        R                  R                  L a6  [        R                  " U R
                  6 R                  U R                  5      $ U $ r    )	rx   
concurrentfuturesr@   r
   argsr]   r|   r\   )r/   	exc_classs     r   _convert_future_excr   =  s    S	IJ&&555((#((3BB3CTCTUU	j((::	:++SXX6EEcFWFWXX
r   c                     UR                  5       (       a  U R                  " 5         U R                  " 5       (       d  g UR                  5       nUb  U R                  " [        U5      5        g UR                  5       nU R                  " U5        g r    )rU   rI   set_running_or_notify_cancelr'   r~   r   r`   rt   )r   sourcer'   r`   s       r   _set_concurrent_future_stater   G  sr     2244  "I  !4Y!?@f%r   c                    UR                  5       (       a  g U R                  5       (       a  UR                  5         g U R                  5       nUb  UR                  [	        U5      5        g U R                  5       nUR                  U5        g r    )rU   rI   r'   r~   r   r`   rt   )r   destr'   r`   s       r   _copy_future_stater   V  sk     ~~$$&	 29=>]]_FOOF#r   c                   ^ ^^^^ [        T 5      (       d4  [        T [        R                  R                  5      (       d  [        S5      e[        T5      (       d4  [        T[        R                  R                  5      (       d  [        S5      e[        T 5      (       a  [        T 5      OS m[        T5      (       a  [        T5      OS mS mUU U4S jnUUUU4S jnTR                  U5        T R                  U5        g )Nz(A future is required for source argumentz-A future is required for destination argumentc                 R    [        U 5      (       a  [        X5        g [        X5        g r    )r   r   r   )r(   others     r   
_set_state!_chain_future.<locals>._set_statez  s    Fu-(7r   c                    > U R                  5       (       a5  Tb  TTL a  TR                  5         g TR                  TR                  5        g g r    )rU   rI   call_soon_threadsafe)destination	dest_loopr   source_loops    r   _call_check_cancel)_chain_future.<locals>._call_check_cancel  s?      """kY&>00?	 #r   c                    > TR                  5       (       a  Tb  TR                  5       (       a  g Tb  TTL a
  T" TU 5        g TR                  5       (       a  g TR                  TTU 5        g r    )rU   	is_closedr   )r   r   r   r   r   s    r   _call_set_state&_chain_future.<locals>._call_set_state  sd    !!##%)*=*=*?*?	[ 8{F+""$$**:{FKr   )r   rw   r   r   r   	TypeErrorr   ri   )r   r   r   r   r   r   r   s   ``  @@@r   _chain_futurer   j  s     FJv/9/A/A/H/H%J %JBCCK  K4>4F4F4M4M*O *OGHH'/'7'7)F#TK*2;*?*?	+&TI8@	L 	L !!"45
_-r   r   c                    [        U 5      (       a  U $ Uc  [        R                  " 5       nUR                  5       n[	        X5        U$ r    )r   r	   r   create_futurer   )r(   r   
new_futures      r   r   r     sC     |$$&##%J&%r   )__all__concurrent.futuresr   re   loggingr   typesr    r   r	   r
   r   r   rE   rF   r[   DEBUGSTACK_DEBUGr   	_PyFuturer   r   r   r   r   r   r   _asyncio_CFutureImportErrorr   r   r   <module>r      s       
           $$
""	 mmaE ER 		&$().X !% 
(
 !'FX	  		s   B) )B21B2