ó
\K]c           @   s   d  Z  d d l Z d d l m Z d d l m Z m Z m Z m Z e ƒ  Z	 e	 j
 Z e	 j Z e	 j Z e d e f d „  ƒ  Yƒ Z e d e f d „  ƒ  Yƒ Z e d	 e f d
 „  ƒ  Yƒ Z d e f d „  ƒ  YZ e e j ƒ d e f d „  ƒ  Yƒ Z e e j ƒ d e f d „  ƒ  Yƒ Z d S(   s   
Typing for enums.
iÿÿÿÿN(   t   types(   t   AbstractTemplatet   AttributeTemplatet	   signaturet   Registryt   EnumAttributec           B   s   e  Z e j Z d  „  Z RS(   c         C   s   | j  S(   N(   t   dtype(   t   selft   ty(    (    s4   lib/python2.7/site-packages/numba/typing/enumdecl.pyt   resolve_value   s    (   t   __name__t
   __module__R    t
   EnumMembert   keyR	   (    (    (    s4   lib/python2.7/site-packages/numba/typing/enumdecl.pyR      s   	t   EnumClassAttributec           B   s   e  Z e j Z d  „  Z RS(   c         C   s   | | j  j k r | j Sd S(   sF   
        Resolve attributes of an enum class as enum members.
        N(   t   instance_classt   __members__t   member_type(   R   R   t   attr(    (    s4   lib/python2.7/site-packages/numba/typing/enumdecl.pyt   generic_resolve   s    (   R
   R   R    t	   EnumClassR   R   (    (    (    s4   lib/python2.7/site-packages/numba/typing/enumdecl.pyR      s   	t   EnumClassStaticGetItemc           B   s   e  Z d  Z d „  Z RS(   t   static_getitemc         C   sD   | \ } } t  | t j ƒ r@ | | j j k r@ t | j | Œ Sd  S(   N(   t
   isinstanceR    R   R   R   R   R   (   R   t   argst   kwst   enumt   idx(    (    s4   lib/python2.7/site-packages/numba/typing/enumdecl.pyt   generic'   s    (   R
   R   R   R   (    (    (    s4   lib/python2.7/site-packages/numba/typing/enumdecl.pyR   #   s   t   EnumComparec           B   s   e  Z d  „  Z RS(   c         C   sS   | \ } } t  | t j ƒ rO t  | t j ƒ rO | | k rO t t j | | ƒ Sd  S(   N(   R   R    R   R   t   boolean(   R   R   R   t   lhst   rhs(    (    s4   lib/python2.7/site-packages/numba/typing/enumdecl.pyR   0   s
    (   R
   R   R   (    (    (    s4   lib/python2.7/site-packages/numba/typing/enumdecl.pyR   .   s   t   EnumEqc           B   s   e  Z RS(    (   R
   R   (    (    (    s4   lib/python2.7/site-packages/numba/typing/enumdecl.pyR!   8   s   t   EnumNec           B   s   e  Z RS(    (   R
   R   (    (    (    s4   lib/python2.7/site-packages/numba/typing/enumdecl.pyR"   >   s   (   t   __doc__t   operatort   numbaR    t   numba.typing.templatesR   R   R   R   t   registryt   registert   infert   register_globalt   infer_globalt   register_attrt   infer_getattrR   R   R   R   t   eqR!   t   neR"   (    (    (    s4   lib/python2.7/site-packages/numba/typing/enumdecl.pyt   <module>   s$   "				

