eaiovnaovbqoebvqoeavibavo B  f&@sdZddlZddZeeZeddZeejZeejZ eej Z ddZ ee Z d d ZeZeeZed d ZeZeeZGd ddZeejZeeZegjZeejZeejZeej Z!ee"jdZ#eeZ$ye%Wn:e%k r0e&dZ'ee'Z(ee'j)Z*dZ'['YnXeejZ+eej,Z-[[[ [[[d"ddZ.ddZ/d#ddZ0ddZ1GdddZ2GdddZ3ddZ4d d!e5DZ6dS)$zO Define names for built-in types that aren't directly accessible as a builtin. NcCsdS)Nrrr*/opt/alt/python37/lib64/python3.7/types.py_f rcCsdS)Nrrrrr rrccs dVdS)Nrrrrr_gsrcsdS)Nrrrrr_crr cCs dVdS)Nrrrrr_agsr c@seZdZddZdS)_CcCsdS)Nr)selfrrr_m!rz_C._mN)__name__ __module__ __qualname__r rrrrr sr fromkeysrcCsJt|}t|||\}}}|dk r*||||k r:||d<||||f|S)zBCreate a class object dynamically using the appropriate metaclass.N__orig_bases__) resolve_bases prepare_class)namebaseskwds exec_bodyresolved_basesmetansrrr new_class>srcCst|}d}d}xvt|D]j\}}t|tr.qt|ds:q||}d}t|ts\tdq||||||d<|t|d7}qW|s|St|S)z8Resolve MRO entries dynamically as specified by PEP 560.Fr__mro_entries__Tz#__mro_entries__ must return a tupler) list enumerate isinstancetypehasattrrtuple TypeErrorlen)r new_basesupdatedshiftibasenew_baserrrrHs"     rcCs~|dkri}nt|}d|kr*|d}n|r||_||_||_|p|j|_|dk|_tt|dd|_dS)N__isabstractmethod__F)fgetfsetfdel__doc__ overwrite_docboolgetattrr6)r r7r8r9docrrr__init__s   zDynamicClassAttribute.__init__cCs6|dkr|jr|Stn|jdkr,td||S)Nzunreadable attribute)r6AttributeErrorr7)r instance ownerclassrrr__get__s zDynamicClassAttribute.__get__cCs"|jdkrtd|||dS)Nzcan't set attribute)r8r@)r rAvaluerrr__set__s zDynamicClassAttribute.__set__cCs |jdkrtd||dS)Nzcan't delete attribute)r9r@)r rArrr __delete__s z DynamicClassAttribute.__delete__cCs8|jr |jnd}t|||j|j|p(|j}|j|_|S)N)r;r:r"r8r9)r r7fdocresultrrrgetterszDynamicClassAttribute.gettercCs$t||j||j|j}|j|_|S)N)r"r7r9r:r;)r r8rHrrrsetterszDynamicClassAttribute.settercCs$t||j|j||j}|j|_|S)N)r"r7r8r:r;)r r9rHrrrdeleterszDynamicClassAttribute.deleter)NNNN)N) rrrr:r?rCrErFrIrJrKrrrrr5s  r5c@seZdZddZddZddZddZed d Zed d Z ed dZ eddZ eZ e Z e Ze ZddZddZeZdS)_GeneratorWrappercCs2||_|jtk|_t|dd|_t|dd|_dS)Nrr)_GeneratorWrapper__wrapped __class__ GeneratorType_GeneratorWrapper__isgenr=rr)r genrrrr?s z_GeneratorWrapper.__init__cCs |j|S)N)rMsend)r valrrrrRsz_GeneratorWrapper.sendcGs|jj|f|S)N)rMthrow)r tprestrrrrTsz_GeneratorWrapper.throwcCs |jS)N)rMclose)r rrrrWsz_GeneratorWrapper.closecCs|jjS)N)rMgi_code)r rrrrXsz_GeneratorWrapper.gi_codecCs|jjS)N)rMgi_frame)r rrrrYsz_GeneratorWrapper.gi_framecCs|jjS)N)rM gi_running)r rrrrZsz_GeneratorWrapper.gi_runningcCs|jjS)N)rM gi_yieldfrom)r rrrr[sz_GeneratorWrapper.gi_yieldfromcCs t|jS)N)nextrM)r rrr__next__sz_GeneratorWrapper.__next__cCs|jr |jS|S)N)rPrM)r rrr__iter__sz_GeneratorWrapper.__iter__N)rrrr?rRrTrWpropertyrXrYrZr[cr_codecr_frame cr_runningcr_awaitr]r^ __await__rrrrrLs    rLcststdjtkrtddjtkrjj}|d@r@S|d@rj}t|j|j |j |j |jdB|j |j |j|j|j|j|j|j|j|j_Sddl}ddl|fdd }|S) z2Convert regular generator function to a coroutine.z$types.coroutine() expects a callable__code__Ni rcsR||}|jtks*|jtkr.|jjd@r.|St|jrNt|jsNt|S|S)Nrg) rN CoroutineTyperOrXco_flagsr! Generator CoroutinerL)argskwargscoro)_collections_abcfuncrrwrappeds    zcoroutine..wrapped)callabler%rN FunctionTyper=CodeTypereri co_argcountco_kwonlyargcount co_nlocals co_stacksizeco_code co_constsco_names co_varnames co_filenameco_nameco_firstlineno co_lnotab co_freevars co_cellvars functoolsrowraps)rpricorrqr)rorpr coroutines,   rcCs g|]}|dddkr|qS)Nr_r).0nrrr 'sr)rNN)rN)7r:sysrr"rs LambdaTyperert__dict__MappingProxyTypeimplementationSimpleNamespacerrOr rhrWr AsyncGeneratorTyper r MethodTyper&BuiltinFunctionTypeappendBuiltinMethodTypeobjectr?WrapperDescriptorType__str__MethodWrapperTypestrjoinMethodDescriptorTyper/ClassMethodDescriptorType ModuleTyper%exc_infotb TracebackTypetb_frame FrameTypeGetSetDescriptorType __globals__MemberDescriptorTyperrrr1r5rLrglobals__all__rrrrsX                 :%: