asda?‰PNG  IHDR ? f ??C1 sRGB ??é gAMA ±? üa pHYs ? ??o¨d GIDATx^íüL”÷e÷Y?a?("Bh?_ò???¢§?q5k?*:t0A-o??¥]VkJ¢M??f?±8\k2íll£1]q?ù???T a bYhs@sdZddlZddlZddlZddlZddlZddlZddlZddl Z ddlm Z ddl m Z ddl m Z ddl mZddl mZdd l mZdd l mZedjZdDd d ZdEd dZdFddZddZGdddejZeZz ddlZWneyYn 0ejZZddddZejj Z ejj!Z!ejj"Z"dde"dddZ#ddZ$ddddZ%d d!Z&d"d#Z'ddd$d%d&Z(ej)d'd(Z*dGddd)d*Z+ddd+d,Z,ej)d-d.Z-ee-_Gd/d0d0ej.Z/dd1d2d3d4Z0dd1d2d5d6Z1ddd7d8Z2d9d:Z3e 4Z5iZ6d;d<Z7d=d>Z8d?d@Z9dAdBZ:e7Z;e:Zz$ddClm7Z7m:Z:m8Z8m9Z9m5Z5m6Z6WneyvYn0e7Z?e:Z@e8ZAe9ZBdS)H)Task create_taskFIRST_COMPLETEDFIRST_EXCEPTION ALL_COMPLETEDwaitwait_for as_completedsleepgathershield ensure_futurerun_coroutine_threadsafe current_task all_tasks_register_task_unregister_task _enter_task _leave_taskN) GenericAlias) base_tasks) coroutines)events) exceptions)futures) _is_coroutinecCs|durt}t|SN)rget_running_loop_current_tasksgetloopr#)/usr/local/lib/python3.9/asyncio/tasks.pyr#srcs\durtd}z tt}WqJtyD|d7}|dkr@Yq0qJqfdd|DS)Nrrcs&h|]}t|ur|s|qSr#)r _get_loopdone.0tr!r#r$ =szall_tasks..)rrlist _all_tasks RuntimeErrorr"iZtasksr#r!r$r*s  rcs\durtd}z tt}WqJtyD|d7}|dkr@Yq0qJqfdd|DS)Nrrr%csh|]}t|ur|qSr#)rr&r(r!r#r$r+Vz$_all_tasks_compat..)rget_event_loopr,r-r.r/r#r!r$_all_tasks_compatAs  r3cCs2|dur.z |j}Wnty$Yn 0||dSr)set_nameAttributeError)tasknamer4r#r#r$_set_task_nameYs   r8cseZdZdZdddfdd ZfddZeeZdd Z d d Z d d Z ddZ ddZ ddZddddZdddddZd ddZd!fdd ZddZZS)"rTN)r"r7cstj|d|jr|jd=t|s:d|_td||durRdt|_n t ||_d|_ d|_ ||_ t |_|jj|j|jdt|dS)Nr!Fza coroutine was expected, got zTask-context)super__init___source_tracebackr iscoroutine_log_destroy_pending TypeError_task_name_counter_namestr _must_cancel _fut_waiter_coro contextvarsZ copy_context_context_loop call_soon _Task__stepr)selfcoror"r7 __class__r#r$r=us   z Task.__init__csF|jtjkr8|jr8|dd}|jr,|j|d<|j|tdS)Nz%Task was destroyed but it is pending!)r6messageZsource_traceback) _staterZ_PENDINGr@r>rJZcall_exception_handlerr<__del__)rMr;rOr#r$rSs  z Task.__del__cCs t|Sr)rZ_task_repr_inforMr#r#r$ _repr_infoszTask._repr_infocCs|jSr)rGrTr#r#r$get_corosz Task.get_corocCs|jSr)rCrTr#r#r$get_namesz Task.get_namecCst||_dSr)rDrC)rMvaluer#r#r$r4sz Task.set_namecCs tddS)Nz*Task does not support set_result operationr.)rMresultr#r#r$ set_resultszTask.set_resultcCs tddS)Nz-Task does not support set_exception operationrY)rM exceptionr#r#r$ set_exceptionszTask.set_exception)limitcCs t||Sr)rZ_task_get_stack)rMr^r#r#r$ get_stackszTask.get_stack)r^filecCst|||Sr)rZ_task_print_stack)rMr^r`r#r#r$ print_stacks zTask.print_stackcCs>d|_|rdS|jdur.|jj|dr.dSd|_||_dSNFmsgT)Z_log_tracebackr'rFcancelrE_cancel_message)rMrdr#r#r$res z Task.cancelc s|rtd|d||jr>t|tjs8|}d|_|j}d|_t |j |zz"|durp| d}n | |}Wnt y}z:|jrd|_tj|jdnt|jWYd}~n d}~0tjy}z||_tWYd}~nd}~0ttfy>}zt|WYd}~nd}~0typ}zt|WYd}~n~d}~00t|dd}|durjt||j urtd|d|d}|j j|j||jd n|r>||urtd |}|j j|j||jd n>d|_|j |j!|jd ||_|jrh|jj|jdrhd|_n*td |d |}|j j|j||jd n||dur|j j|j|jd n\t"#|rtd |d |}|j j|j||jd n$td|}|j j|j||jd Wt$|j |d}nt$|j |d}0dS)Nz_step(): already done: z, Frc_asyncio_future_blockingzTask z got Future z attached to a different loopr:zTask cannot await on itself: z-yield was used instead of yield from in task z with z;yield was used instead of yield from for generator in task zTask got bad yield: )%r'rInvalidStateErrorrE isinstanceCancelledError_make_cancelled_errorrGrFrrJsendthrow StopIterationr<rerfr[rXZ_cancelled_excKeyboardInterrupt SystemExitr] BaseExceptiongetattrrr&r.rKrLrIrgadd_done_callback _Task__wakeupinspectZ isgeneratorr)rMexcrNrZblockingnew_excrOr#r$Z__steps   $  $            z Task.__stepc CsLz |Wn.ty:}z||WYd}~nd}~00|d}dSr)rZrqrL)rMfuturervr#r#r$Z__wakeupFs   z Task.__wakeup)N)N)__name__ __module__ __qualname__r@r=rS classmethodr__class_getitem__rUrVrWr4r[r]r_rarerLrt __classcell__r#r#rOr$rcs  "Wr)r7cCs t}||}t|||Sr)rrrr8)rNr7r"r6r#r#r$rcs  r)r"timeout return_whencst|st|r(tdt|j|s4td|tt t fvrPtd|durbt nt jdtddt|}tdd|Drt jd tddfd d |D}t|||IdHS) Nzexpect a list of futures, not z#Set of coroutines/Futures is empty.zInvalid return_when value: [The loop argument is deprecated since Python 3.8, and scheduled for removal in Python 3.10. stacklevelcss|]}t|VqdSr)rr?r)fr#r#r$ r1zwait..zThe explicit passing of coroutine objects to asyncio.wait() is deprecated since Python 3.8, and scheduled for removal in Python 3.11.csh|]}t|dqSr!r rr!r#r$r+r1zwait..)risfuturerr?rAtyperz ValueErrorrrrrrwarningswarnDeprecationWarningsetany_wait)fsr"rrr#r!r$rus$ rcGs|s|ddSr)r'r[)waiterargsr#r#r$_release_waitersrr!c s|durt}ntjdtdd|dur4|IdHS|dkrt||d}|rX|St||dIdHz |WSt j y}zt |WYd}~n d}~00| }| |t|}tt|}t||d}||zz|IdHWnTt j yB|r |YW|S||t||dIdHYn0|r`|W|S||t||dIdHz|WW|St j y}zt |WYd}~n d}~00W|n |0dS)Nrrrrr!)rrrrrr r'rZ_cancel_and_waitrrj TimeoutError create_future call_laterr functoolspartialrsreremove_done_callback)futrr"rvrtimeout_handlecbr#r#r$rsZ               "rc s|d|dur"||tt|fdd}|D]}||q@z2IdHWdurn|D]}||qrn&dur|D]}||q0tt}}|D]"}|r| |q| |q||fS)NcsZd8dks4tks4tkrV|sV|durVdurDsVddS)Nrr)rr cancelledr\rer'r[rZcounterrrrr#r$_on_completions z_wait.._on_completion) rrrlenrsrerrr'add)rrrr"rrr'pendingr#rr$rs0     rc sP|}tt|}||z ||IdHW||n ||0dSr)rrrrrsrer)rr"rrr#r#r$rs   r)r"rc#st|st|r(tdt|jdur@tjdt ddddl m }|ddurft fdd t|Ddfd d }fd d fdd}D]}|qr|dur؈||ttD] }|VqdS)Nz#expect an iterable of futures, not rrrr)Queuer!csh|]}t|dqSrrrr!r#r$r+Mr1zas_completed..cs*D]}|dqdSr)r put_nowaitclearr)rr'todor#r$ _on_timeoutPs  z!as_completed.._on_timeoutcs4sdS||s0dur0dSr)removerrer)r'rrr#r$rVs    z$as_completed.._on_completioncs$IdH}|durtj|Sr)r rrrZr)r'r#r$ _wait_for_one^sz#as_completed.._wait_for_one)rrrr?rArrzrrrqueuesrrr2rrsrranger)rr"rrrrr_r#)rr'r"rrr$r.s*      rccs dVdSrr#r#r#r#r$__sleep0ms rcs~|durtjdtdd|dkr0tIdH|S|dur@t}|}||tj ||}z|IdHW| S| 0dS)Nrrrr) rrrrrrrrrZ_set_result_unless_cancelledre)delayrZr"ryhr#r#r$r ys&  r cCst|r6|durt}||}|jr2|jd=|St|rb|dur^|t|ur^t d|St |r|t t ||dStddS)Nr9zRThe future belongs to a different loop than the one specified as the loop argumentr!z:An asyncio.Future, a coroutine or an awaitable is required)rr?rr2rr>rrr&rruZ isawaitabler _wrap_awaitablerA)Zcoro_or_futurer"r6r#r#r$r s    r ccs|EdHSr) __await__)Z awaitabler#r#r$rsrcs,eZdZddfdd ZdddZZS)_GatheringFutureNr!cstj|d||_d|_dS)Nr!F)r<r= _children_cancel_requested)rMchildrenr"rOr#r$r=sz_GatheringFuture.__init__cCs:|r dSd}|jD]}|j|drd}q|r6d|_|Srb)r'rrer)rMrdretchildr#r#r$res  z_GatheringFuture.cancel)N)rzr{r|r=rerr#r#rOr$rsrFr"return_exceptionscGs(|durtjdtddt|||dS)Nrrrr)rrr_gather)r"rcoros_or_futuresr#r#r$r s r cs|s*|durt}|gSfdd}i}gddd|D]f}||vrt||d}|durt|}||urd|_d7|||<||n||} |qVt |dS)Ncsd7dusr,|s(|dSsl|rN|}|dS|}|durl|dSkrg}D]J}|rt|jdurdn|j}n|}|dur|}| |q|j r|}|n  |dS)Nr) r'rr\rkr]rrjrfrZappendrr[)rrvresultsresrZ nfinishedZnfutsouterrr#r$_done_callbacks<    z_gather.._done_callbackrr!Fr) rr2rr[r rr&r@rsrr)r"rrrZ arg_to_futargrr#rr$rs4 7     rcst|durtjdtddt||dr0St}|fddfdd}|S) Nrrrr!cs\r|s|dS|r.n*|}|durJ|n|dSr)rr\rer]r[rZ)innerrvrr#r$_inner_done_callbackzs  z$shield.._inner_done_callbackcssdSr)r'rr)rrr#r$_outer_done_callbacksz$shield.._outer_done_callback) rrrr r'rr&rrs)rr"rr#)rrrr$r Us     r cs:tstdtjfdd}|S)NzA coroutine object is requiredc slzttdWnNttfy0Yn8tyf}z rP|WYd}~n d}~00dS)Nr!)rZ _chain_futurer rprorqset_running_or_notify_cancelr])rvrNryr"r#r$callbacks z*run_coroutine_threadsafe..callback)rr?rA concurrentrFutureZcall_soon_threadsafe)rNr"rr#rr$r s    r cCst|dSr)r-rr6r#r#r$rsrcCs4t|}|dur(td|d|d|t|<dS)NzCannot enter into task z while another task z is being executed.rr r.r"r6rr#r#r$rs    rcCs2t|}||ur(td|d|dt|=dS)Nz Leaving task z! does not match the current task .rrr#r#r$rs    rcCst|dSr)r-discardrr#r#r$rsr)rrrrr-r)N)N)N)N)C__all__concurrent.futuresrrHrru itertoolstypesrweakrefrrrrrrrrcount__next__rBrrr3r8Z _PyFuturerZ_PyTaskZ_asyncio ImportErrorZ_CTaskrrrrrrrrrr coroutinerr r rrrr rr r WeakSetr-rrrrrZ_py_register_taskZ_py_unregister_taskZ_py_enter_taskZ_py_leave_taskZ_c_register_taskZ_c_unregister_taskZ _c_enter_taskZ _c_leave_taskr#r#r#r$s             u   +L,?  &^?$