Your IP : 18.218.191.118


Current Path : /lib64/python2.7/Demo/newmetaclasses/
Upload File :
Current File : //lib64/python2.7/Demo/newmetaclasses/Enum.pyo

�
V
�Qc@s�dZdefd��YZdefd��YZdefd��YZddd��YZd	dd
��YZd�Zd�Z	e
d
kr�e�e	�ndS(sEnumeration metaclass.t
EnumMetaclasscBs)eZdZd�Zd�Zd�ZRS(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.
    cCs�tt|�j|||�g|_xk|j�D]]}|jd�oS|jd�s2t||||�}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(RR((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyt__getattr__scCs�d}}g|jD]*}t|t�r|tk	r|j^q}|r`ddj|�}ng|jD]}d|t||�f^qj}|r�ddj|�}nd|j||fS(Nts(%s)s, s%s: %ds: {%s}s%s%s%s(t	__bases__t
isinstanceRtEnumt__name__tjoinRtgetattr(Rts1ts2tbaset	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			tFullEnumMetaclasscBseZdZd�ZRS(snMetaclass for full enumerations.

    A full enumeration displays all the values defined in base classes.
    cCs|tt|�j|||�xY|jD]N}t|t�r&x6|jD](}||jkrE|jj|�qEqEWq&q&WdS(N(RR$Rt__mro__RRRR
(RRR
RtobjR((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyR4s(RR"R#R(((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyR$.sRcBs2eZdZd�Zd�Zd�Zd�ZRS(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__(Rt	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.pyR1XscCs�dtfd��Y}|jGHt|j�GH|j|jkGH|j|jkGH|jdkGH|jdkGHd|fd��Y}|jGH|jGH|j|jkGHdtfd��Y}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<vstMergedColorcBseZRS((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&cCs�dtfd��Y}|jGHt|j�GH|j|jkGH|j|jkGH|jdkGH|jdkGHd|fd��Y}|jGH|jGH|j|jkGHdtfd��Y}d	||fd
��Y}|jGH|jGH|GH|GH|GH|GHdS(NR2cBseZdZdZdZRS(iii(RR"R3R4R5(((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyR2�siiR6cBs&eZdZdZdZdZdZRS(iiiii(RR"R7R8R9R:R;(((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyR6�s
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_test2�s&t__main__N(((R#ttypeRR$R'RRR1R?R@R(((s0/usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyt<module>s+	*	*