a  zeW @sxdZddlZddlZddlZddlZddlZdZdZdZdZ dZ dZ d Z d Z d Ze e e e egZe d e d e de dediZedZGdddeZGdddeZGdddeZGdddeZGdddeZGdddeZGdddeZGdd d eZGd!d"d"eZd#d$Zd%d&Zd3d'd(Z e!d)d*Z"defd+d,Z#Gd-d.d.eZ$Gd/d0d0eZ%Gd1d2d2e&Z'dS)4z"Brian Quinlan (brian@sweetapp.com)NFIRST_COMPLETEDFIRST_EXCEPTION ALL_COMPLETED _AS_COMPLETEDPENDINGRUNNING CANCELLEDCANCELLED_AND_NOTIFIEDFINISHEDpendingrunning cancelledfinishedzconcurrent.futuresc@s eZdZdS)ErrorN__name__ __module__ __qualname__rrL/opt/bitninja-python-dojo/embedded/lib/python3.9/concurrent/futures/_base.pyr-src@s eZdZdS)CancelledErrorNrrrrrr1src@s eZdZdS) TimeoutErrorNrrrrrr5src@s eZdZdS)InvalidStateErrorNrrrrrr9src@s,eZdZddZddZddZddZd S) _WaitercCst|_g|_dSN) threadingEventeventfinished_futuresselfrrr__init__?s z_Waiter.__init__cCs|j|dSrrappendr futurerrr add_resultCsz_Waiter.add_resultcCs|j|dSrr"r$rrr add_exceptionFsz_Waiter.add_exceptioncCs|j|dSrr"r$rrr add_cancelledIsz_Waiter.add_cancelledN)rrrr!r&r'r(rrrrr=srcs@eZdZfddZfddZfddZfddZZS) _AsCompletedWaitercstt|t|_dSr)superr)r!rLocklockr __class__rrr!Osz_AsCompletedWaiter.__init__csD|j*tt|||jWdn1s60YdSr)r,r*r)r&rsetr$r-rrr&Ssz_AsCompletedWaiter.add_resultcsD|j*tt|||jWdn1s60YdSr)r,r*r)r'rr/r$r-rrr'Xsz _AsCompletedWaiter.add_exceptioncsD|j*tt|||jWdn1s60YdSr)r,r*r)r(rr/r$r-rrr(]sz _AsCompletedWaiter.add_cancelled)rrrr!r&r'r( __classcell__rrr-rr)Ls   r)cs4eZdZfddZfddZfddZZS)_FirstCompletedWaitercst||jdSr)r*r&rr/r$r-rrr&es z _FirstCompletedWaiter.add_resultcst||jdSr)r*r'rr/r$r-rrr'is z#_FirstCompletedWaiter.add_exceptioncst||jdSr)r*r(rr/r$r-rrr(ms z#_FirstCompletedWaiter.add_cancelled)rrrr&r'r(r0rrr-rr1bs  r1csHeZdZfddZddZfddZfddZfd d ZZS) _AllCompletedWaitercs$||_||_t|_tdSr)num_pending_callsstop_on_exceptionrr+r,r*r!)r r3r4r-rrr!ts z_AllCompletedWaiter.__init__cCsH|j.|jd8_|js&|jWdn1s:0YdS)N)r,r3rr/rrrr_decrement_pending_callszsz,_AllCompletedWaiter._decrement_pending_callscst||dSr)r*r&r6r$r-rrr&s z_AllCompletedWaiter.add_resultcs*t||jr|jn|dSr)r*r'r4rr/r6r$r-rrr's  z!_AllCompletedWaiter.add_exceptioncst||dSr)r*r(r6r$r-rrr(s z!_AllCompletedWaiter.add_cancelled) rrrr!r6r&r'r(r0rrr-rr2qs    r2c@s$eZdZddZddZddZdS)_AcquireFuturescCst|td|_dS)N)key)sortedidfutures)r r;rrrr!sz_AcquireFutures.__init__cCs|jD]}|jqdSr)r; _conditionacquirer$rrr __enter__s z_AcquireFutures.__enter__cGs|jD]}|jqdSr)r;r<release)r argsr%rrr__exit__s z_AcquireFutures.__exit__N)rrrr!r>rArrrrr7sr7cCs|tkrt}nZ|tkr t}nJtdd|D}|tkrHt|dd}n"|tkr^t|dd}n td||D]}|j |qn|S)Ncss|]}|jttfvVqdSr_stater r .0frrr sz._create_and_install_waiters..T)r4FzInvalid return condition: %r) rr)rr1sumrr2r ValueError_waitersr#)fs return_whenwaiter pending_countrFrrr_create_and_install_waiterss rOccsd|r`|d}|D]}||q|j|j|Wdn1sH0Y~|VqdS)N)remover<rJpop)rKrM ref_collectrF futures_setrrr_yield_finished_futuress  *rUc cs|dur|t}t|}t|}t|4tdd|D}||}t|t}Wdn1sf0Yt|}zt|||fdEdH|r:|durd}n(|t}|dkrt dt||f|j ||j &|j }g|_ |j Wdn1s0Y|t||||fdEdHqW|D]:}|j|j|Wdn1sn0Yq@nB|D]:}|j|j|Wdn1s0Yq0dS)Ncss |]}|jttfvr|VqdSrrBrDrrrrGszas_completed..)rSrz%d (of %d) futures unfinished)time monotonicr/lenr7rOrlistrUrrwaitr,rclearreverser<rJrQ) rKtimeoutend_time total_futuresrr rM wait_timeoutrFrrr as_completedsP  (   *2raDoneAndNotDoneFuturesz done not_donec Cs:t|tdd|D}t||}|tkrL|rLt||WdS|tkr|rtdd|Drt||WdSt|t|krt||WdSt||}Wdn1s0Y|j ||D]8}|j |j |Wdq1s0Yq| |jt|t||S)Ncss |]}|jttfvr|VqdSrrBrDrrrrG"szwait..css&|]}|s|dur|VqdSr)r exceptionrDrrrrG)s)r7r/rrbranyrXrOrrZr<rJrQupdater)rKr]rLdonenot_donerMrFrrrrZ s"    ( . rZc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ dddZ dddZ ddZddZddZeejZdS) FuturecCs,t|_t|_d|_d|_g|_g|_dSr) r Conditionr<rrC_result _exceptionrJ_done_callbacksrrrrr!=s  zFuture.__init__c Cs<|jD]0}z ||Wqty4td|Yq0qdSNz!exception calling callback for %r)rl ExceptionLOGGERrc)r callbackrrr_invoke_callbacksFs    zFuture._invoke_callbackscCs|j|jtkr||jrJd|jjt|t|j|jjjfWdSd|jjt|t|j|jjjfWdSd|jjt|t|jfWdS1s0YdS)Nz<%s at %#x state=%s raised %s>z <%s at %#x state=%s returned %s>z<%s at %#x state=%s>) r<rCr rkr.rr:_STATE_TO_DESCRIPTION_MAPrjrrrr__repr__Ms( zFuture.__repr__cCs~|j\|jttfvr&WddS|jttfvrDWddSt|_|jWdn1sh0Y|dS)NFT)r<rCrr rr notify_allrqrrrrcancelas(z Future.cancelcCs8|j|jttfvWdS1s*0YdSr)r<rCrr rrrrr tszFuture.cancelledcCs4|j|jtkWdS1s&0YdSr)r<rCrrrrrr yszFuture.runningcCs:|j |jtttfvWdS1s,0YdSr)r<rCrr r rrrrrf~sz Future.donecCs(|jrz|jWd}q$d}0n|jSdSr)rkrjrrrr __get_results zFuture.__get_resultcCs|j<|jtttfvr4|j|WddSWdn1sH0Yz ||Wnty|t d|Yn0dSrm) r<rCrr r rlr#rnrorc)r fnrrradd_done_callbacks  .  zFuture.add_done_callbackNcCsz|j|jttfvr tn&|jtkrF|WdWd}S|j||jttfvrhtn,|jtkr|WdWd}StWdn1s0YWd}nd}0dSr) r<rCrr rr _Future__get_resultrZrr r]rrrresults"    &z Future.resultcCs|j|jttfvrtn|jtkr<|jWdS|j||jttfvr^tn$|jtkr||jWdStWdn1s0YdSr) r<rCrr rr rkrZrrzrrrrcs   zFuture.exceptioncCs|j|jtkr>t|_|jD]}||qWddS|jtkr^t|_WddSt dt ||jt dWdn1s0YdS)NFTz!Future %s in unexpected state: %szFuture in unexpected state) r<rCrr rJr(rrrocriticalr: RuntimeError)r rMrrrset_running_or_notify_cancels    z#Future.set_running_or_notify_cancelcCs|j^|jttthvr*td|j|||_t|_|jD]}| |q<|j Wdn1sj0Y| dSNz{}: {!r}) r<rCrr r rformatrjrJr&rtrq)r r{rMrrr set_results  (zFuture.set_resultcCs|j^|jttthvr*td|j|||_t|_|jD]}| |q<|j Wdn1sj0Y| dSr) r<rCrr r rrrkrJr'rtrq)r rcrMrrr set_exceptions  (zFuture.set_exception)N)N)rrrr!rqrsrur r rfryrxr{rcr~rr classmethodtypes GenericAlias__class_getitem__rrrrrh:s   # "(rhc@sDeZdZddZdddddZdd d d d Zd dZddZdS)ExecutorcOs tdSr)NotImplementedError)r rwr@kwargsrrrsubmit1s zExecutor.submitNr5)r] chunksizecsBdurtfddt|Dfdd}|S)Ncsg|]}jg|RqSr)r)rEr@)rwr rr Uz Executor.map..c 3snzTr@dur&Vq tVq WD] }|qFnD] }|qZ0dSr)r\rRr{rVrWru)r%)r^rKr]rrresult_iteratorYs z%Executor.map..result_iterator)rVrWzip)r rwr]r iterablesrr)r^rwrKr r]rmap<s   z Executor.mapTF)cancel_futurescCsdSrr)r rZrrrrshutdownhszExecutor.shutdowncCs|Srrrrrrr>xszExecutor.__enter__cCs|jdddS)NT)rZF)r)r exc_typeexc_valexc_tbrrrrA{s zExecutor.__exit__)T)rrrrrrr>rArrrrr.s  ,rc@s eZdZdS)BrokenExecutorNrrrrrrsr)N)( __author__ collectionsloggingrrVrrrrrrrrr r _FUTURE_STATESrr getLoggerrornrrrrobjectrr)r1r2r7rOrUra namedtuplerbrZrhrr}rrrrrs^   >1uR