//usr/lib64/lib64//lib64//python2.7/ó
V
Qc @ s¡ d Z d e f d YZ d e f d YZ d e f d YZ d d d YZ d d d
YZ d Z d Z e
d
k r e e n d S( s Enumeration metaclass.t
EnumMetaclassc B s) e Z d Z d Z d Z d Z RS( sg Metaclass 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.
c C s t t | j | | | g | _ xk | j D]] } | j d oS | j d s2 t | | | | } t | | | | j j | q2 q2 Wd S( Nt __(
t superR t __init__t _memberst keyst
startswitht endswitht EnumInstancet setattrt append( t clst namet basest dictt attrt enumval( ( s0 /usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyR s c C s | d k r | j St | d S( Nt __members__( R t AttributeError( R R ( ( s0 /usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyt __getattr__ s c C s¿ d } } g | j D]* } t | t r | t k r | j ^ q } | r` d d j | } n g | j D] } d | t | | f ^ qj } | r« d d j | } n d | j | | f S( Nt s (%s)s , s %s: %ds : {%s}s %s%s%s( t __bases__t
isinstanceR t Enumt __name__t joinR t getattr( R t s1t s2t baset enumbasest valt
enumvalues( ( s0 /usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyt __repr__" s
*,( R t
__module__t __doc__R R R! ( ( ( s0 /usr/lib64/python2.7/Demo/newmetaclasses/Enum.pyR s t FullEnumMetaclassc B s e Z d Z d Z RS( sn Metaclass for full enumerations.
A full enumeration displays all the values defined in base classes.
c C s| t t | j | | | xY | j D]N } t | t r&