grthtrhthjhtyjytjytkergtrhtrjytjerhrfh3 \+ã@s®dddgZddlZddlZddlZddlZddlZddlZddlZddlm Z ddlm Z ddlm Z dd lm Z dd l mZejd Zejj o eejjd ƒƒZyejZejZWnek rÎdZdZYnXy ejZWnek röd d„ZYnXyddlmZ m!Z"Wne#k �r*dZ Z"YnXdd„Z$e$ƒZ%[$dd„Z&Gdd„dƒZ'dd„Ze(ƒZ)dd„Zej*e'fZ+e dk �r†e+e f7Z+edk �ršefe+Z+dd„Z,dd„Z-dS)Ú coroutineÚiscoroutinefunctionÚ iscoroutineéNé)Úcompat)Ú constants)Úevents)Ú base_futures)ÚloggerZ YIELD_FROMZPYTHONASYNCIODEBUGcCsdS)NF©)Úfuncr r ú*/usr/lib64/python3.6/asyncio/coroutines.pyÚ/sr)Ú CoroutineÚ AwaitablecCsFGdd„dƒ}dd„}d}|ƒ}||ƒ}t|ƒ|j|ƒ|j|fkS) Nc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) z!has_yield_from_bug..MyGencSs d|_dS)N)Ú send_args)Úselfr r r Ú__init__;sz*has_yield_from_bug..MyGen.__init__cSs|S)Nr )rr r r Ú__iter__=sz*has_yield_from_bug..MyGen.__iter__cSsdS)Né*r )rr r r Ú__next__?sz*has_yield_from_bug..MyGen.__next__cWs ||_dS)N)r)rZwhatr r r ÚsendAsz&has_yield_from_bug..MyGen.sendN)Ú__name__Ú __module__Ú __qualname__rrrrr r r r ÚMyGen:srcss|EdHdS)Nr )Úgenr r r Úyield_from_genDsz*has_yield_from_bug..yield_from_genréé)rrr)Únextrr)rrÚvaluerÚcoror r r Úhas_yield_from_bug9s  r#cCs t|dƒS)N)Ú CoroWrapper)rr r r Ú debug_wrapperPsr%c@sÌeZdZd%dd„Zdd„Zdd„Zdd „Zer8d d „Znd d „Zd&d d„Z dd„Z e dd„ƒZ e dd„ƒZ e dd„ƒZejrÀdd„Ze dd„ƒZe dd„ƒZe dd„ƒZe dd „ƒZe d!d"„ƒZd#d$„ZdS)'r$NcCs>||_||_tjtjdƒƒ|_t|ddƒ|_t|ddƒ|_ dS)Nrrr) rr rÚ extract_stackÚsysÚ _getframeÚ_source_tracebackÚgetattrrr)rrr r r r r[s zCoroWrapper.__init__cCs@t|ƒ}|jr0|jd}|d|d|df7}d|jj|fS)Nrz, created at %s:%srz<%s %s>éÿÿÿÿ)Ú_format_coroutiner)Ú __class__r)rÚ coro_reprÚframer r r Ú__repr__cs  zCoroWrapper.__repr__cCs|S)Nr )rr r r rjszCoroWrapper.__iter__cCs |jjdƒS)N)rr)rr r r rmszCoroWrapper.__next__cGs4tjƒ}|j}|jj|jtkr(|d}|jj|ƒS)Nr) r'r(Úf_backÚf_codeÚco_codeÚf_lastiÚ _YIELD_FROMrr)rr!r/Zcallerr r r rus zCoroWrapper.sendcCs |jj|ƒS)N)rr)rr!r r r r}scCs|jj|||ƒS)N)rÚthrow)rÚtyper!Ú tracebackr r r r6€szCoroWrapper.throwcCs |jjƒS)N)rÚclose)rr r r r9ƒszCoroWrapper.closecCs|jjS)N)rÚgi_frame)rr r r r:†szCoroWrapper.gi_framecCs|jjS)N)rÚ gi_running)rr r r r;ŠszCoroWrapper.gi_runningcCs|jjS)N)rÚgi_code)rr r r r<ŽszCoroWrapper.gi_codecCs,t|jddƒ}|dk r(tdj|j|ƒƒ‚|S)NÚcr_awaitz;Cannot await on coroutine {!r} while it's awaiting for {!r})r*rÚ RuntimeErrorÚformat)rr=r r r Ú __await__”s  zCoroWrapper.__await__cCs|jjS)N)rÚ gi_yieldfrom)rr r r rAœszCoroWrapper.gi_yieldfromcCs|jjS)N)rr=)rr r r r= szCoroWrapper.cr_awaitcCs|jjS)N)rÚ cr_running)rr r r rB¤szCoroWrapper.cr_runningcCs|jjS)N)rÚcr_code)rr r r rC¨szCoroWrapper.cr_codecCs|jjS)N)rÚcr_frame)rr r r rD¬szCoroWrapper.cr_framecCs’t|ddƒ}t|ddƒ}|dkr,t|ddƒ}|dk rŽ|jd krŽd|}t|dfƒ}|r„djtj|ƒƒ}|dtj›d �7}||jƒ7}tj |ƒdS) Nrr:rDrz%r was never yielded fromr)ÚzB Coroutine object created at (most recent call last, truncated to z last lines): r+) r*r4Újoinr8Ú format_listrZDEBUG_STACK_DEPTHÚrstripr Úerror)rrr/ÚmsgÚtbr r r Ú__del__°s     zCoroWrapper.__del__)N)NN)rrrrr0rrÚ_YIELD_FROM_BUGrr6r9Úpropertyr:r;r<rZPY35r@rAr=rBrCrDrLr r r r r$Xs(           r$csptˆƒr ˆStjˆƒrˆ‰ntjˆƒ‡fdd„ƒ‰tsNtdkrDˆ}qftˆƒ}ntjˆƒ‡‡fdd„ƒ}t|_|S)Nc ?svˆ||Ž}tj|ƒs(tj|ƒs(t|tƒr4|EdH}n>tdk rry |j}Wntk rZYnXt|tƒrr|ƒEdH}|S)N) r ZisfutureÚinspectZ isgeneratorÚ isinstancer$Ú _AwaitableABCr@ÚAttributeError)ÚargsÚkwÚresZ await_meth)r r r r"Òs      zcoroutine..corocs@tˆ||Žˆd�}|jr |jd=tˆddƒ|_tˆddƒ|_|S)N)r rrrr+)r$r)r*rr)rSÚkwdsÚw)r"r r r Úwrapperês zcoroutine..wrapper)Ú_inspect_iscoroutinefunctionrOÚisgeneratorfunctionÚ functoolsÚwrapsÚ_DEBUGÚ_types_coroutineÚ _is_coroutine)r rXr )r"r r rÂs   cCst|ddƒtkpt|ƒS)Nr_)r*r_rY)r r r r rÿscCs t|tƒS)N)rPÚ_COROUTINE_TYPES)Úobjr r r rsc Cst|dƒ r’t|dƒ r’t|dt|dt|ƒjƒƒ}dj|ƒ}d}y |j}Wn4tk r~y |j}Wntk rxYnXYnX|rŽdj|ƒS|Sd}t|t ƒrÀ|j }|j }|dk rÄdj|ƒ}n|}|dkrÚt j |fiƒ}d}t|dƒrö|jrö|j}nt|dƒ�r|j�r|j}d}t|dƒ�r0|j�r0|j}nt|d ƒ�rJ|j�rJ|j}d }|�rb|j�rb|j}d }|}t|t ƒ�rÚtj|j ƒ �rÚ|j dk �rÚt j|j ƒ} | dk �r°| \}}|dk�rÊd |||f}nd |||f}n:|dk �rú|j}d|||f}n|�r|j}d |||f}|S)NrCr<rrz{}()Fz {} runningrDr:zrz%s done, defined at %s:%sz%s running, defined at %s:%sz%s running at %s:%s)Úhasattrr*r7rr?rBrRr;rPr$r rrZ_format_callbackrCr<rDr:Ú co_filenamerOrZZ_get_function_sourceÚf_linenoÚco_firstlineno) r"Z coro_nameZrunningr Z coro_codeZ coro_frameÚfilenameÚlinenor.Úsourcer r r r,sx              r,).Ú__all__r[rOZopcodeÚosr'r8ÚtypesrErrrr Úlogr Zopmapr5ÚflagsÚignore_environmentÚboolÚenvironÚgetr]rr^Ú CoroutineTypeZ_types_CoroutineTyperRrrYÚcollections.abcrZ _CoroutineABCrrQÚ ImportErrorr#rMr%r$Úobjectr_Ú GeneratorTyper`rr,r r r r ÚsZ         j: