grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026î   f#ã @s­dZddlZdd„ZeeƒZedd„ƒZeejƒZeejƒZ eej ƒZ dd„Z ee ƒƒZ Gd d „d ƒZeeƒjƒZeeƒZegjƒZeeƒZy e‚WnFek r"ejƒd ZeeƒZeejƒZdZ[YnXeejƒZeejƒZ[[[ [fddd d „Zfddd„Z dd„Z!Gdd„dƒZ"dd„e#ƒDƒZ$dS)zO Define names for built-in types that aren't directly accessible as a builtin. éNcCsdS)N©rrrú*/opt/alt/python34/lib64/python3.4/types.pyÚ_f srcCsdS)NrrrrrÚ srccs dVdS)NérrrrrÚ_gsrc@seZdZdd„ZdS)Ú_CcCsdS)Nr)ÚselfrrrÚ_msz_C._mN)Ú__name__Ú __module__Ú __qualname__r rrrrrs récCsGt|||ƒ\}}}|dk r4||ƒn|||||�S)zBCreate a class object dynamically using the appropriate metaclass.N)Ú prepare_class)ÚnameÚbasesÚkwdsÚ exec_bodyÚmetaÚnsrrrÚ new_class/s  rcCs¹|dkri}n t|ƒ}d|kr?|jdƒ}n|rXt|dƒ}nt}t|tƒrt||ƒ}nt|dƒr¦|j|||�}ni}|||fS)azCall the __prepare__ method of the appropriate metaclass. Returns (metaclass, namespace, kwds) as a 3-tuple *metaclass* is the appropriate metaclass *namespace* is the prepared class namespace *kwds* is an updated copy of the passed in kwds argument with any 'metaclass' entry removed. If no kwds argument is passed in, this will be an empty dict. NÚ metaclassrÚ __prepare__)ÚdictÚpopÚtypeÚ isinstanceÚ_calculate_metaÚhasattrr)rrrrrrrrr6s    rcCsc|}xV|D]N}t|ƒ}t||ƒr4q nt||ƒrO|}q ntdƒ‚q W|S)z%Calculate the most derived metaclass.zxmetaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases)rÚ issubclassÚ TypeError)rrÚwinnerÚbaseÚ base_metarrrrVs  rc@syeZdZdZdddddd„Zddd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dS)ÚDynamicClassAttributeaRoute attribute access on a class to __getattr__. This is a descriptor, used to define attributes that act differently when accessed through an instance and through a class. Instance access remains normal, but access to an attribute through a class will be routed to the class's __getattr__ method; this is done by raising AttributeError. This allows one to have properties active on an instance, and have virtual attributes on the class with the same name (see Enum for an example). NcCs[||_||_||_|p'|j|_|dk|_tt|ddƒƒ|_dS)NÚ__isabstractmethod__F)ÚfgetÚfsetÚfdelÚ__doc__Ú overwrite_docÚboolÚgetattrr%)r r&r'r(ÚdocrrrÚ__init__ss    zDynamicClassAttribute.__init__cCsP|dkr%|jr|Stƒ‚n|jdkrCtdƒ‚n|j|ƒS)Nzunreadable attribute)r%ÚAttributeErrorr&)r ÚinstanceÚ ownerclassrrrÚ__get__}s   zDynamicClassAttribute.__get__cCs2|jdkrtdƒ‚n|j||ƒdS)Nzcan't set attribute)r'r/)r r0ÚvaluerrrÚ__set__†szDynamicClassAttribute.__set__cCs/|jdkrtdƒ‚n|j|ƒdS)Nzcan't delete attribute)r(r/)r r0rrrÚ __delete__‹sz DynamicClassAttribute.__delete__cCsR|jr|jnd}t|ƒ||j|j|p<|jƒ}|j|_|S)N)r*r)rr'r()r r&ÚfdocÚresultrrrÚgetter�s* zDynamicClassAttribute.gettercCs4t|ƒ|j||j|jƒ}|j|_|S)N)rr&r(r)r*)r r'r7rrrÚsetter–s$ zDynamicClassAttribute.settercCs4t|ƒ|j|j||jƒ}|j|_|S)N)rr&r'r)r*)r r(r7rrrÚdeleter›s$ zDynamicClassAttribute.deleter) r r r r)r.r2r4r5r8r9r:rrrrr$gs      r$cCs,g|]"}|dd…dkr|‘qS)NrÚ_r)Ú.0Únrrrú ¡s r>)%r)ÚsysrrÚ FunctionTypeÚ LambdaTypeÚ__code__ÚCodeTypeÚ__dict__ÚMappingProxyTypeÚimplementationÚSimpleNamespacerÚ GeneratorTyperr Ú MethodTypeÚlenÚBuiltinFunctionTypeÚappendÚBuiltinMethodTypeÚ ModuleTyper Úexc_infoÚtbÚ TracebackTypeÚtb_frameÚ FrameTypeÚGetSetDescriptorTypeÚ __globals__ÚMemberDescriptorTyperrrr$ÚglobalsÚ__all__rrrrÚs<           :