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`  V Qc@sdZdefdYZdefdYZdefdYZdddYZd dd YZd Zd Z e d kree ndS(sEnumeration metaclass.t EnumMetaclasscBs)eZdZdZdZdZRS(sgMetaclass for enumeration. To define your own enumeration, do something like class Color(Enum): red = 1 green = 2 blue = 3 Now, Color.red, Color.green and Color.blue behave totally different: they are enumerated values, not integers. Enumerations cannot be instantiated; however they can be subclassed. cCstt|j|||g|_xk|jD]]}|jdoS|jds2t||||}t||||jj |q2q2WdS(Nt__( tsuperRt__init__t_memberstkeyst startswithtendswitht EnumInstancetsetattrtappend(tclstnametbasestdicttattrtenumval((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyRs cCs |dkr|jSt|dS(Nt __members__(RtAttributeError(R R ((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyt __getattr__s cCsd}}g|jD]*}t|tr|tk r|j^q}|r`ddj|}ng|jD]}d|t||f^qj}|rddj|}nd|j||fS(Nts(%s)s, s%s: %ds: {%s}s%s%s%s(t __bases__t isinstanceRtEnumt__name__tjoinRtgetattr(R ts1ts2tbaset enumbasestvalt enumvalues((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyt__repr__"s *,(Rt __module__t__doc__RRR!(((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyRs tFullEnumMetaclasscBseZdZdZRS(snMetaclass for full enumerations. A full enumeration displays all the values defined in base classes. cCs|tt|j|||xY|jD]N}t|tr&x6|jD](}||jkrE|jj|qEqEWq&q&WdS(N(RR$Rt__mro__RRRR (R R R RtobjR((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyR4s (RR"R#R(((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyR$.sRcBs2eZdZdZdZdZdZRS(s Class to represent an enumeration value. EnumInstance('Color', 'red', 12) prints as 'Color.red' and behaves like the integer 12 when compared, but doesn't support arithmetic. XXX Should it record the actual enumeration rather than just its name? cCstj||S(N(tintt__new__(R t classnametenumnametvalue((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyR(GscCs||_||_dS(N(t_EnumInstance__classnamet_EnumInstance__enumname(tselfR)R*R+((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyRJs cCsd|j|j|fS(NsEnumInstance(%s, %s, %d)(R,R-(R.((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyR!NscCsd|j|jfS(Ns%s.%s(R,R-(R.((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyt__str__Rs(RR"R#R(RR!R/(((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyR=s    RcBseZeZRS((RR"Rt __metaclass__(((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyRUstFullEnumcBseZeZRS((RR"R$R0(((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyR1XscCsdtfdY}|jGHt|jGH|j|jkGH|j|jkGH|jdkGH|jdkGHd|fdY}|jGH|jGH|j|jkGHdtfdY}d ||fd Y}|jGH|jGH|GH|GH|GH|GHdS( NtColorcBseZdZdZdZRS(iii(RR"tredtgreentblue(((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyR2]siit ExtendedColorcBs&eZdZdZdZdZdZRS(iiiii(RR"twhitetorangetyellowtpurpletblack(((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyR6js t OtherColorcBseZdZdZRS(ii(RR"R7R5(((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyR<vst MergedColorcBseZRS((RR"(((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyR=zs(RR3treprR5R8R7(R2R6R<R=((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyt_test[s&cCsdtfdY}|jGHt|jGH|j|jkGH|j|jkGH|jdkGH|jdkGHd|fdY}|jGH|jGH|j|jkGHdtfdY}d ||fd Y}|jGH|jGH|GH|GH|GH|GHdS( NR2cBseZdZdZdZRS(iii(RR"R3R4R5(((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyR2siiR6cBs&eZdZdZdZdZdZRS(iiiii(RR"R7R8R9R:R;(((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyR6s R<cBseZdZdZRS(ii(RR"R7R5(((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyR<sR=cBseZRS((RR"(((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyR=s(R1R3R>R5R8R7(R2R6R<R=((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyt_test2s&t__main__N((( R#ttypeRR$R'RRR1R?R@R(((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyts+ * *