PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  oY)@s(dddgZddlZddlZddlZddlZddlZddlZddlZddlm Z ddlm Z ddlm Z dd l m Z ejd Zejj oeejjd ZyejZejZWnek r dZdZYnXy ejZWnek r9d d ZYnXyddlmZm Z!Wne"k rrdZZ!YnXddZ#e#Z$[#ddZ%GdddZ&ddZe'Z(ddZej)e&fZ*edk re*ef7Z*edk r efe*Z*ddZ+ddZ,dS) coroutineiscoroutinefunction iscoroutineN)compat)events)futures)loggerZ YIELD_FROMZPYTHONASYNCIODEBUGcCsdS)NF)funcr r )/opt/python35/lib/python3.5/coroutines.py.sr ) Coroutine AwaitablecCsaGddd}dd}d}|}||}t||j||j|fkS) Nc@s@eZdZddZddZddZddZd 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 send@s z&has_yield_from_bug..MyGen.sendN)__name__ __module__ __qualname__rrrrr r r r MyGen9s    rcss |EdHdS)Nr )genr r r yield_from_genCsz*has_yield_from_bug..yield_from_genr)rrr)nextrr)rrvaluercoror r r has_yield_from_bug8s     r"cCs t|dS)N) CoroWrapper)rr r r debug_wrapperOsr$c@s3eZdZdddZddZddZdd ZerTd d Zn d d Zddd dZ ddZ e ddZ e ddZ e ddZejr#ddZe ddZe ddZe ddZe dd Ze d!d"Zd#d$ZdS)%r#NcCstj|s*tj|s*t|||_||_tjtj d|_ t |dd|_ t |dd|_ dS)Nrrr)inspect isgeneratorrAssertionErrorrr traceback extract_stacksys _getframe_source_tracebackgetattrrr)rrr r r r rZs *  zCoroWrapper.__init__cCsRt|}|jr>|jd}|d|d|df7}d|jj|fS)Nrz, created at %s:%srz<%s %s>)_format_coroutiner, __class__r)r coro_reprframer r r __repr__bs    zCoroWrapper.__repr__cCs|S)Nr )rr r r riszCoroWrapper.__iter__cCs|jjdS)N)rr)rr r r rlszCoroWrapper.__next__cGs]tj}|j}|jdks*t|jj|jtkrM|d}|jj |S)Nr) r*r+f_backf_lastir'f_codeco_code _YIELD_FROMrr)rr r2Zcallerr r r rts    zCoroWrapper.sendcCs|jj|S)N)rr)rr r r r r|scCs|jj|||S)N)rthrow)rtyper r(r r r r9szCoroWrapper.throwcCs |jjS)N)rclose)rr r r r;szCoroWrapper.closecCs |jjS)N)rgi_frame)rr r r r<szCoroWrapper.gi_framecCs |jjS)N)r gi_running)rr r r r=szCoroWrapper.gi_runningcCs |jjS)N)rgi_code)rr r r r>szCoroWrapper.gi_codecCs@t|jdd}|dk r<tdj|j||S)Ncr_awaitz;Cannot await on coroutine {!r} while it's awaiting for {!r})r-r RuntimeErrorformat)rr?r r r __await__s  zCoroWrapper.__await__cCs |jjS)N)r gi_yieldfrom)rr r r rCszCoroWrapper.gi_yieldfromcCs |jjS)N)rr?)rr r r r?szCoroWrapper.cr_awaitcCs |jjS)N)r cr_running)rr r r rDszCoroWrapper.cr_runningcCs |jjS)N)rcr_code)rr r r rEszCoroWrapper.cr_codecCs |jjS)N)rcr_frame)rr r r rFszCoroWrapper.cr_framecCst|dd}t|dd}|dkrBt|dd}|dk r|jd krd|}t|df}|rdjtj|}|d7}||j7}tj|dS) Nrr<rFrz%r was never yielded fromr,z6 Coroutine object created at (most recent call last): r.)r-r5joinr( format_listrstripr error)rrr2msgtbr r r __del__s   zCoroWrapper.__del__)rrrrr3rr_YIELD_FROM_BUGrr9r;propertyr<r=r>rZPY35rBrCr?rDrErFrNr r r r r#Ws(        r#cstrStjr(n!tjfddtsstdkrd}qt}n$tjfdd}t|_|S)zDecorator to mark coroutines. If the coroutine is not yielded from before it is destroyed, an error message is logged. c ?s||}tj|s<tj|s<t|trJ|EdH}nKtdk ry |j}Wntk rwYnXt|tr|EdH}|S)N) rZisfuturer%r& isinstancer# _AwaitableABCrBAttributeError)argskwresZ await_meth)r r r r!s   zcoroutine..coroNcs\t||d}|jr.|jd=tdd|_tdd|_|S)Nr rrrr.)r#r,r-rr)rTkwdsw)r!r r r wrappers   zcoroutine..wrapper)_inspect_iscoroutinefunctionr%isgeneratorfunction functoolswraps_DEBUG_types_coroutine _is_coroutine)r rYr )r!r r rs  !  $ cCs"t|ddtkp!t|S)z6Return True if func is a decorated coroutine function.r`N)r-r`rZ)r r r r rscCs t|tS)z)Return True if obj is a coroutine object.)rQ_COROUTINE_TYPES)objr r r r sc "Csxt|stt|d rt|d rt|dt|dt|j}dj|}d}y |j}Wn4tk ry |j }Wntk rYnXYnX|rdj|S|Sd}t |t r|j }|j }|dk rdj|}n|}|dkr5tj|fi}y |j}Wntk r_|j}YnXy |j}Wntk r|j}YnX|j}d}t |t r-tj|j  r-|j dk r-tj|j }|dk r|\}}|dkrd |||f} qtd |||f} nG|dk rX|j}d |||f} n|j}d |||f} | S) NrEr>rrz{}()Fz {} runningrz%s done, defined at %s:%sz%s running, defined at %s:%sz%s running at %s:%s)rr'hasattrr-r:rrArDrSr=rQr#r rrZ_format_callbackr>rEr<rF co_filenamer%r[Z_get_function_sourcef_linenoco_firstlineno) r!Z coro_namerunningr Z coro_codeZ coro_framefilenamelinenosourcer1r r r r/sn                      r/)-__all__r\r%Zopcodeosr*r(typesrGrrrlogr Zopmapr8flagsignore_environmentboolenvirongetr^rr_ CoroutineTypeZ_types_CoroutineTyperSrrZcollections.abcrZ _CoroutineABCrrR ImportErrorr"rOr$r#objectr` GeneratorTyperarr/r r r r sX                   i :