ž Ĥ˙f_ c @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 „Z fddd„Z!dd„Z"dS(uO Define names for built-in types that aren't directly accessible as a builtin. iNcCsdS(N((((u*/opt/alt/python33/lib64/python3.3/types.pyu_f su_fcCsdS(N(uNone(((u*/opt/alt/python33/lib64/python3.3/types.pyu succs dVdS(Ni((((u*/opt/alt/python33/lib64/python3.3/types.pyu_gsu_gcBs |EeZdZdd„ZdS(u_CcCsdS(N((uself((u*/opt/alt/python33/lib64/python3.3/types.pyu_msu_C._mN(u__name__u __module__u __qualname__u_m(u __locals__((u*/opt/alt/python33/lib64/python3.3/types.pyu_Csu_CicCsGt|||ƒ\}}}|dk r4||ƒn|||||S(uBCreate a class object dynamically using the appropriate metaclass.N(u prepare_classuNone(unameubasesukwdsu exec_bodyumetauns((u*/opt/alt/python33/lib64/python3.3/types.pyu new_class/s  u new_classcCsı|dkri}n t|ƒ}d|kr?|jdƒ}n|rXt|dƒ}nt}t|tƒrt||ƒ}nt|dƒrĤ|j|||}ni}|||fS(uzCall 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. u metaclassiu __prepare__N(uNoneudictupoputypeu isinstanceu_calculate_metauhasattru __prepare__(unameubasesukwdsumetauns((u*/opt/alt/python33/lib64/python3.3/types.pyu prepare_class6s    u prepare_classcCsc|}xV|D]N}t|ƒ}t||ƒr4q nt||ƒrO|}q ntdƒ‚q W|S(u%Calculate the most derived metaclass.uxmetaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases(utypeu issubclassu TypeError(umetaubasesuwinnerubaseu base_meta((u*/opt/alt/python33/lib64/python3.3/types.pyu_calculate_metaVs  u_calculate_meta(#u__doc__usysu_futypeu FunctionTypeu LambdaTypeu__code__uCodeTypeu__dict__uMappingProxyTypeuimplementationuSimpleNamespaceu_gu GeneratorTypeu_Cu_mu MethodTypeulenuBuiltinFunctionTypeuappenduBuiltinMethodTypeu ModuleTypeu TypeErroruexc_infoutbu TracebackTypeutb_frameu FrameTypeuNoneuGetSetDescriptorTypeu __globals__uMemberDescriptorTypeu new_classu prepare_classu_calculate_meta(((u*/opt/alt/python33/lib64/python3.3/types.pyus8