ó
ÂFTc           @   sñ  d  Z  d d l Z d d d g Z d d d f Z e d	 e j d
  ƒ Z y e Wn e	 k
 rk d „  Z n Xy d d l
 m Z Wn e k
 r™ e Z n Xy e Wn e	 k
 r» e Z n Xd e f d „  ƒ  YZ d „  Z d „  Z d „  Z d „  Z d e f d „  ƒ  YZ e Z d e f d „  ƒ  YZ i  Z d e d <d „  Z e e d <[ d „  Z e e d <[ d „  Z e e d <[ d „  Z e e d  <[ d! „  Z  e  e d" <[  e d# k  rËd$ „  Z! e! e d% <[! nX d& „  Z" e" e d' <[" d( „  Z# e# e d) <[# d* „  Z$ e$ e d+ <[$ d, „  Z% e% e d- <[% d. „  Z& e& e d/ <[& d0 „  Z' e' e d1 <[' d2 „  Z( e( e d3 <[( d4 „  Z) e) e d5 <[) e d6 „  ƒ Z* e* e d7 <[* e d8 „  ƒ Z+ e+ e d9 <[+ e d e f e ƒ Z [ d e, e f d: „  ƒ  YZ- d; „  Z. d S(<   s   Python EnumerationsiÿÿÿÿNt   Enumt   IntEnumt   uniquei   i    i   s   %s.%si   c         C   s   x |  D] } | r t  Sq Wt S(   N(   t   Truet   False(   t   iterablet   element(    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyt   any   s    (   t   OrderedDictt   _RouteClassAttributeToGetattrc           B   s8   e  Z d  Z d d „ Z d d „ Z d „  Z d „  Z RS(   sj  Route 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.

    c         C   s   | |  _  d  S(   N(   t   fget(   t   selfR
   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyt   __init__)   s    c         C   s%   | d  k r t ƒ  ‚ n  |  j | ƒ S(   N(   t   Nonet   AttributeErrorR
   (   R   t   instancet
   ownerclass(    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyt   __get__,   s    c         C   s   t  d ƒ ‚ d  S(   Ns   can't set attribute(   R   (   R   R   t   value(    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyt   __set__1   s    c         C   s   t  d ƒ ‚ d  S(   Ns   can't delete attribute(   R   (   R   R   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyt
   __delete__4   s    N(   t   __name__t
   __module__t   __doc__R   R   R   R   R   (    (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyR	       s
   	c         C   s+   t  |  d ƒ p* t  |  d ƒ p* t  |  d ƒ S(   s5   Returns True if obj is a descriptor, False otherwise.R   R   R   (   t   hasattr(   t   obj(    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyt   _is_descriptor8   s    c         C   sZ   |  d  |  d k o d k n oY |  d d !d k oY |  d d !d k oY t  |  ƒ d k S(   s3   Returns True if a __dunder__ name, False otherwise.i   iþÿÿÿt   __i   t   _iýÿÿÿi   (   t   len(   t   name(    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyt
   _is_dunder@   s    $c         C   sZ   |  d |  d k o d k n oY |  d d !d k oY |  d d !d k oY t  |  ƒ d k S(   s1   Returns True if a _sunder_ name, False otherwise.i    iÿÿÿÿR   i   i   iþÿÿÿ(   R   (   R   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyt
   _is_sunderH   s    $c         C   s"   d d „ } | |  _ d |  _ d S(   s"   Make the given class un-picklable.c         S   s   t  d |  ƒ ‚ d  S(   Ns   %r cannot be pickled(   t	   TypeError(   R   t   protocol(    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyt   _break_on_call_reduceR   s    s	   <unknown>N(   R   t   __reduce_ex__R   (   t   clsR#   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyt   _make_class_unpicklableP   s    	t	   _EnumDictc           B   s    e  Z d  Z d „  Z d „  Z RS(   s§   Track enum member order and ensure member names are not reused.

    EnumMeta will use the names found in self._member_names as the
    enumeration member names.

    c         C   s    t  t |  ƒ j ƒ  g  |  _ d  S(   N(   t   superR'   R   t   _member_names(   R   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyR   _   s    c         C   sÇ   t  d k r | d k r d St | ƒ r7 t d ƒ ‚ ns t | ƒ rF nd | |  j k rh t d | ƒ ‚ nB t | ƒ sª | |  k r— t d |  | ƒ ‚ n  |  j j | ƒ n  t t	 |  ƒ j
 | | ƒ d S(   s  Changes anything not dundered or not a descriptor.

        If a descriptor is added with the same name as an enum member, the name
        is removed from _member_names (this may leave a hole in the numerical
        sequence of values).

        If an enum member name is used twice, an error is raised; duplicate
        values are not checked for.

        Single underscore (sunder) names are reserved.

        Note:   in 3.x __order__ is simply discarded as a not necessary piece
                leftover from 2.x

        g      @t	   __order__Ns(   _names_ are reserved for future Enum uses   Attempted to reuse key: %rs   Key already defined as: %r(   t   pyverR    t
   ValueErrorR   R)   R!   R   t   appendR(   R'   t   __setitem__(   R   t   keyR   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyR.   c   s    (   R   R   R   R   R.   (    (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyR'   X   s   	t   EnumMetac           B   sï   e  Z d  Z e d „  ƒ Z d „  Z d d d d „ Z d „  Z d „  Z	 d „  Z
 e d „  ƒ Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d d d d „ Z e d „  ƒ Z e d k  rÞ e d „  ƒ Z n e d „  ƒ Z RS(   s   Metaclass for Enumc         C   s   t  ƒ  S(   N(   R'   (   t   metaclsR%   t   bases(    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyt   __prepare__Œ   s    c            sƒ  t  ˆ  ƒ t k rK ˆ  } t ƒ  ‰  x' | j ƒ  D] \ } } | ˆ  | <q. Wn  |  j | ƒ \ ‰ } |  j ˆ  ˆ | ƒ \ } }	 }
 t ‡  f d †  ˆ  j Dƒ ƒ } x ˆ  j D] } ˆ  | =q§ Wˆ  j d ƒ } | d  k r_t	 d k  rSy8 g  t
 | j ƒ  d d „  ƒD] \ } } | ^ qþ } Wq\t k
 rOg  t
 | j ƒ  ƒ D] } | ^ q:} q\Xq¼ˆ  j } n] ˆ  d =t	 d k  r¼| j d d ƒ j ƒ  } g  | D] } | | k r‘| ^ q‘} | | 7} n  t | ƒ t d g ƒ @} | rút d	 d
 j | ƒ f ƒ ‚ n  t t |  ƒ j |  | | ˆ  ƒ } g  | _ t d  k	 r?t ƒ  | _ n	 i  | _ ˆ | _ i  | _ | d  k rr| j } n  x_| D]W} | | } t | t ƒ s¤| f } n | } ˆ t k rÂ| f } n  |
 sÐ| rú| | ƒ } t | d ƒ s*| | _ q*n0 | | | Œ } t | d ƒ s*ˆ | Œ  | _ n  | j } | | _ | | _ | j  | Œ  xI | j j ƒ  D]( \ } } | j! | j k rb| } PqbqbW| j j" | ƒ | | j | <y | | j | <Wqyt k
 rÏqyXqyWt# } d ˆ  k r-ˆ t$ k	 r-d } t% ‡ f d †  | Dƒ ƒ s*t& | ƒ t' } q*q-n  x„ d  D]| } t( | | ƒ } t( ˆ | d  ƒ } t( | | d  ƒ } | ˆ  k r4| | k	 r4| d k r| rq4n  t) | | | ƒ q4q4Wt	 d k  rît* | t+ ƒ r9t) | d t( t+ d ƒ ƒ q9nK t	 d k  r9t* | t+ ƒ r9x* d! D] } t) | | t( t+ | ƒ ƒ qWq9n  t, d  k	 r|	 ret) | d | j- d ƒ n  t) | d t, j- d ƒ n  | S("   Nc         3   s   |  ] } | ˆ  | f Vq d  S(   N(    (   t   .0t   k(   t	   classdict(    s-   /usr/lib/python2.7/dist-packages/enum/enum.pys	   <genexpr>    s    R*   g      @R/   c         S   s   |  d S(   Ni   (    (   t   item(    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyt   <lambda>©   s    t   ,t    t   mros   Invalid enum member name(s): %ss   , t   _value_R$   t   __getnewargs_ex__t   __getnewargs__t
   __reduce__c         3   s   |  ] } | ˆ  j  k Vq d  S(   N(   t   __dict__(   R4   t   m(   t   member_type(    s-   /usr/lib/python2.7/dist-packages/enum/enum.pys	   <genexpr>  s    t   __repr__t   __str__t
   __format__gÍÌÌÌÌÌ@t   __cmp__t   __le__t   __lt__t   __gt__t   __ge__t   __eq__t   __ne__t   __hash__t   __member_new__t   __new__(   R=   s   __getnewargs__s   __reduce_ex__s
   __reduce__(   s   __repr__s   __str__s
   __format__s   __reduce_ex__(   s   __le__s   __lt__s   __gt__s   __ge__s   __eq__s   __ne__s   __hash__(.   t   typet   dictR'   t   itemst   _get_mixins_t
   _find_new_R)   t   getR   R+   t   sortedR!   t   keyst   replacet   splitt   setR,   t   joinR(   R0   RO   t   _member_names_R   t   _member_map_t   _member_type_t   _value2member_map_t
   isinstancet   tupleR   R<   t   _name_t   __objclass__R   R   R-   R   t   objectR   R&   R   t   getattrt   setattrt
   issubclasst   intR    R@   (   R1   R%   R2   R6   t   original_dictR5   t   vt
   first_enumRO   t   save_newt   use_argst   membersR   R*   R   t   aliasest   invalid_namest
   enum_classt   member_namet   argst   enum_membert   canonical_membert   unpicklablet   methodst   class_methodt
   obj_methodt   enum_methodt   method(    (   R6   RB   s-   /usr/lib/python2.7/dist-packages/enum/enum.pyRO      sÈ    	8,%!				
			 
      
#c         C   s8   | d k r |  j |  | ƒ S|  j | | d | d | ƒS(   s¯  Either returns an existing member, or creates a new enum class.

        This method is used both when an enum class is given a value to match
        to an enumeration member (i.e. Color(3)) and for the functional API
        (i.e. Color = Enum('Color', names='red green blue')).

        When used for the functional API: `module`, if set, will be stored in
        the new class' __module__ attribute; `type`, if set, will be mixed in
        as the first base class.

        Note: if `module` is not set this routine will attempt to discover the
        calling module by walking the frame stack; if this is unsuccessful
        the resulting class will not be pickleable.

        t   moduleRP   N(   R   RO   t   _create_(   R%   R   t   namesR|   RP   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyt   __call__3  s    c         C   s   t  | |  ƒ o | j |  j k S(   N(   R`   R   R]   (   R%   t   member(    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyt   __contains__H  s    c         C   s?   | |  j  k r% t d |  j ƒ ‚ n  t t |  ƒ j | ƒ d  S(   Ns   %s: cannot delete Enum member.(   R]   R   R   R(   R0   t   __delattr__(   R%   t   attr(    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyR‚   K  s    c         C   s   d d d d g |  j  S(   Nt	   __class__R   t   __members__R   (   R\   (   R   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyt   __dir__S  s    c         C   s   |  j  j ƒ  S(   s­   Returns a mapping of member name->value.

        This mapping lists all enum members, including aliases. Note that this
        is a copy of the internal mapping.

        (   R]   t   copy(   R%   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyR…   W  s    c         C   sN   t  | ƒ r t | ƒ ‚ n  y |  j | SWn t k
 rI t | ƒ ‚ n Xd S(   s5  Return the enum member matching `name`

        We use __getattr__ instead of descriptors or inserting into the enum
        class' __dict__ in order to support `name` and `value` being both
        properties for enum members (which live in the class' __dict__) and
        enum members themselves.

        N(   R   R   R]   t   KeyError(   R%   R   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyt   __getattr__a  s    	c         C   s   |  j  | S(   N(   R]   (   R%   R   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyt   __getitem__q  s    c            s   ‡  f d †  ˆ  j  Dƒ S(   Nc         3   s   |  ] } ˆ  j  | Vq d  S(   N(   R]   (   R4   R   (   R%   (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pys	   <genexpr>u  s    (   R\   (   R%   (    (   R%   s-   /usr/lib/python2.7/dist-packages/enum/enum.pyt   __iter__t  s    c            s   ‡  f d †  t  ˆ  j ƒ Dƒ S(   Nc         3   s   |  ] } ˆ  j  | Vq d  S(   N(   R]   (   R4   R   (   R%   (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pys	   <genexpr>x  s    (   t   reversedR\   (   R%   (    (   R%   s-   /usr/lib/python2.7/dist-packages/enum/enum.pyt   __reversed__w  s    c         C   s   t  |  j ƒ S(   N(   R   R\   (   R%   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyt   __len__z  s    c         C   s   d |  j  S(   Ns	   <enum %r>(   R   (   R%   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyRC   }  s    c         C   sM   |  j  j d i  ƒ } | | k r0 t d ƒ ‚ n  t t |  ƒ j | | ƒ d S(   sù   Block attempts to reassign Enum members.

        A simple assignment to the class namespace only changes one of the
        several possible ways to get an Enum member from the Enum class,
        resulting in an inconsistent Enumeration.

        R]   s   Cannot reassign members.N(   R@   RU   R   R(   R0   t   __setattr__(   R%   R   R   t
   member_map(    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyR   €  s    c         C   sÆ  |  j  } | d k r! |  f } n | |  f } | j | | ƒ } g  } t | t ƒ ro | j d d ƒ j ƒ  } n  t | t t f ƒ rÉ t | d t ƒ rÉ g  t	 | ƒ D] \ }	 }
 |
 |	 d f ^ q¤ } n  xT | D]L } t | t ƒ rù | | | } } n | \ } } | | | <| j
 | ƒ qÐ Wt | t ƒ sEd j | ƒ | d <n  | j | | | | ƒ } | d k r y t j d ƒ j d } Wq t t f k
 rœq Xn  | d k r¹t | ƒ n	 | | _ | S(	   s}  Convenience method to create a new Enum class.

        `names` can be:

        * A string containing member names, separated either with spaces or
          commas.  Values are auto-numbered from 1.
        * An iterable of member names.  Values are auto-numbered from 1.
        * An iterable of (member name, value) pairs.
        * A mapping of member name -> value.

        R9   R:   i    i   R*   i   R   N(   R„   R   R3   R`   t
   basestringRX   RY   Ra   t   listt	   enumerateR-   R[   RO   t   _syst	   _getframet	   f_globalsR   R,   R&   R   (   R%   t
   class_nameR~   R|   RP   R1   R2   R6   R*   t   it   eR7   Rr   t   member_valueRq   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyR}     s8    	(2
	c         C   s  |  s t  d k r t t  f Sd } } xA |  D]9 } | t  k	 r. t | t  ƒ r. | j r. t d ƒ ‚ q. q. Wt | t  ƒ s‰ t d ƒ ‚ n  t |  d t  ƒ s³ |  d } |  d } nT xQ |  d j D]B } t | t  ƒ rî | d k r| } qqÁ | d k rÁ | } qÁ qÁ W| | f S(   sž   Returns the type for creating enum members, and the first inherited
        enum class.

        bases: the tuple of bases that was given to __new__

        s   Cannot extend enumerationssH   new enumerations must be created as `ClassName([mixin_type,] enum_type)`i    iÿÿÿÿN(   R    R   Rd   Rg   R\   R!   t   __mro__(   R2   RB   Rk   t   base(    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyRS   Â  s(    

	
g      @c         C   st  |  j  d d ƒ } | r% d t t f St d d ƒ } t t d ƒ } t d k rX | } n t j d } xá d D]Ð } x· | | f D]© } y | j | }	 Wn) t t f k
 rÁ t | | d ƒ }	 n X|	 d | | | g k r | d k rý |	 |  d <d t	 t f St
 |	 t ƒ r|	 j | ƒ }	 n  |	 } Pq q W| d k	 rl Pql ql Wt j } | t j k rat	 }
 n t }
 | t	 |
 f S(   s  Returns the __new__ to be used for creating the enum members.

            classdict: the class dictionary given to __new__
            member_type: the data type whose __new__ will be used by default
            first_enum: enumeration to check for an overriding __new__

            RO   RN   N(   s   __member_new__s   __new__(   RU   R   R   Re   Rd   R    R@   R   Rˆ   R   R`   t   staticmethodR   RO   (   R6   RB   Rk   RO   t   N__new__t   O__new__t   E__new__R{   t   possiblet   targetRm   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyRT   ñ  sB    	
		c   	      C   sÖ   |  j  d d ƒ } | d k	 } | d k r« x~ d D]j } xQ | | f D]C } t | | d ƒ } | d d j t j t j f k rD | } PqD qD W| d k	 r1 Pq1 q1 Wt j } n  | t j k rÃ t } n t } | | | f S(   s  Returns the __new__ to be used for creating the enum members.

            classdict: the class dictionary given to __new__
            member_type: the data type whose __new__ will be used by default
            first_enum: enumeration to check for an overriding __new__

            RO   RN   N(   s   __member_new__s   __new__(   RU   R   Re   RO   Rd   R    R   R   (	   R6   RB   Rk   RO   Rl   R{   R¡   R¢   Rm   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyRT   +  s(    	N(   R   R   R   t   classmethodR3   RO   R   R   R   R‚   R†   t   propertyR…   R‰   RŠ   R‹   R   RŽ   RC   R   R}   R   RS   R+   RT   (    (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyR0   Š   s(   	£			
							5.:sN   Generic enumeration.

    Derive from this class to define new enumerations.

R   c         C   sš   t  | ƒ |  k r | j } n  y | |  j k r; |  j | SWn> t k
 r| x. |  j j ƒ  D] } | j | k r\ | Sq\ Wn Xt d | |  j f ƒ ‚ d  S(   Ns   %s is not a valid %s(   RP   R   R_   R!   R]   t   valuesR,   R   (   R%   R   R€   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyRO   c  s    RO   c         C   s   d |  j  j |  j |  j f S(   Ns   <%s.%s: %r>(   R„   R   Rb   R<   (   R   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyRC   y  s    RC   c         C   s   d |  j  j |  j f S(   Ns   %s.%s(   R„   R   Rb   (   R   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyRD     s    RD   c         C   sS   g  |  j  j ƒ  D], } | j D] } | d d k r | ^ q q } d d d g | S(   Ni    R   R„   R   R   (   R„   R;   R@   (   R   R%   RA   t   added_behavior(    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyR†   „  s
    R†   c         C   sF   |  j  t k r$ t } t |  ƒ } n |  j  } |  j } | j | | ƒ S(   N(   R^   Rd   t   strR   RE   (   R   t   format_specR%   t   val(    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyRE     s    		RE   gÍÌÌÌÌÌ@c         C   sU   t  | ƒ |  j k r/ |  | k r( d Sn  d Sn  t St d |  j j | j j f ƒ ‚ (   Ni    iÿÿÿÿs    unorderable types: %s() and %s()(   RP   R„   t   NotImplementedR!   R   (   R   t   other(    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyRF   ¦  s    RF   c         C   s&   t  d |  j j | j j f ƒ ‚ d  S(   Ns   unorderable types: %s() <= %s()(   R!   R„   R   (   R   R«   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyRG   ²  s    RG   c         C   s&   t  d |  j j | j j f ƒ ‚ d  S(   Ns   unorderable types: %s() < %s()(   R!   R„   R   (   R   R«   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyRH   ·  s    RH   c         C   s&   t  d |  j j | j j f ƒ ‚ d  S(   Ns   unorderable types: %s() >= %s()(   R!   R„   R   (   R   R«   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyRJ   ¼  s    RJ   c         C   s&   t  d |  j j | j j f ƒ ‚ d  S(   Ns   unorderable types: %s() > %s()(   R!   R„   R   (   R   R«   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyRI   Á  s    RI   c         C   s#   t  | ƒ |  j k r |  | k St S(   N(   RP   R„   Rª   (   R   R«   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyRK   Ç  s    
RK   c         C   s#   t  | ƒ |  j k r |  | k	 St S(   N(   RP   R„   Rª   (   R   R«   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyRL   Î  s    
RL   c         C   s   t  |  j ƒ S(   N(   t   hashRb   (   R   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyRM   Õ  s    RM   c         C   s   |  j  |  j f f S(   N(   R„   R<   (   R   t   proto(    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyR$   Ú  s    R$   c         C   s   |  j  S(   N(   Rb   (   R   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyR   æ  s    R   c         C   s   |  j  S(   N(   R<   (   R   (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyR   ì  s    R   c           B   s   e  Z d  Z RS(   s.   Enum where members are also (and must be) ints(   R   R   R   (    (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyR   ø  s   c         C   s£   g  } xE |  j  j ƒ  D]4 \ } } | | j k r | j | | j f ƒ q q W| rŸ d j g  | D] \ } } d | | f ^ qa ƒ } t d |  | f ƒ ‚ n  |  S(   sI   Class decorator that ensures only unique members exist in an enumeration.s   , s   %s -> %ss   duplicate names found in %r: %s(   R…   RR   R   R-   R[   R,   (   t   enumerationt
   duplicatesR   R€   t   aliast   duplicate_names(    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyR   ü  s    ,(/   R   t   sysR”   t   __all__t   versiont   floatt   version_infoR+   R   t	   NameErrort   collectionsR   t   ImportErrorR   R‘   R§   Rd   R	   R   R   R    R&   RQ   R'   R    RP   R0   t   temp_enum_dictRO   RC   RD   R†   RE   RF   RG   RH   RJ   RI   RK   RL   RM   R$   R   R   Rh   R   R   (    (    (    s-   /usr/lib/python2.7/dist-packages/enum/enum.pyt   <module>   s    

				/ÿ ×
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	

