σ
\K]c           @@ s  d  d l  m Z m Z d  d l Z d d l m Z d d l m Z m Z m	 Z	 m
 Z
 m Z m Z m Z m Z d d l m Z e   Z e j Z e j Z e j Z e e  d e f d	     Y Z e d
 e	 f d     Y Z d e f d     YZ d e f d     YZ xT e j e j e j e j e j  e j! f D]( Z" e e"  d e f d     Y Z# q5WxN e j$ e j% e j& e j' e j( f D]( Z" e e"  d e f d     Y Z) qWxT e j* e j+ e j, e j- e j. e j/ f D]( Z" e e"  d e f d     Y Z0 qέWd S(   i    (   t   absolute_importt   print_functionNi   (   t   typesi   (   t   ConcreteTemplatet   AbstractTemplatet   AttributeTemplatet   CallableTemplatet   Registryt	   signaturet   bound_functiont   make_callable_template(   t   collectionst
   SetBuiltinc           B@ s   e  Z d    Z RS(   c         C@ s   | s t   | rh | \ } t | t j  r~ | j j } t | t j  re t t j |  |  Sq~ n t t j t j	   Sd  S(   N(
   t   AssertionErrort
   isinstanceR   t   IterableTypet   iterator_typet
   yield_typet   HashableR   t   Sett	   undefined(   t   selft   argst   kwst   iterablet   dtype(    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyt   generic   s    	(   t   __name__t
   __module__R   (    (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyR      s   t   SetAttributec           B@ s  e  Z e j Z e d   d    Z e d  d    Z e d  d    Z e d  d    Z	 e d  d	    Z
 e d
  d    Z e d  d    Z d   Z e d  d    Z e d  d    Z e d  d    Z d   Z e d  d    Z e d  d    Z e d  d    Z e d  d    Z d   Z e d  d     Z e d!  d"    Z e d#  d$    Z RS(%   s   set.addc         C@ si   | \ } | s t   |  j j | j |  } | d  k	 re t t j |  } | j d |  | _	 | Sd  S(   NR   (
   R   t   contextt   unify_pairsR   t   NoneR   R   t   nonet   copyt   recvr(   R   t   setR   R   t   itemt   unifiedt   sig(    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyt   resolve_add(   s    	s	   set.clearc         C@ s$   | s t   | s  t t j  Sd  S(   N(   R   R   R   R!   (   R   R$   R   R   (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyt   resolve_clear2   s    s   set.copyc         C@ s!   | s t   | s t |  Sd  S(   N(   R   R   (   R   R$   R   R   (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyt   resolve_copy8   s    s   set.discardc         C@ s)   | \ } | s t   t t j | j  S(   N(   R   R   R   R!   R   (   R   R$   R   R   R%   (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyt   resolve_discard>   s    	s   set.popc         C@ s$   | s t   | s  t | j  Sd  S(   N(   R   R   R   (   R   R$   R   R   (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyt   resolve_popD   s    s
   set.removec         C@ s)   | \ } | s t   t t j | j  S(   N(   R   R   R   R!   R   (   R   R$   R   R   R%   (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyt   resolve_removeJ   s    	s
   set.updatec         C@ s   | \ } | s t   t | t j  s, d  S| j j } |  j j | j |  } | d  k	 r t
 t j |  } | j d |  | _ | Sd  S(   NR   (   R   R   R   R   R   R   R   R   R   R    R   R!   R"   R#   (   R   R$   R   R   R   R   R&   R'   (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyt   resolve_updateP   s    	c         C@ sN   | s t   | \ } t | t j  rJ | j | j k rJ t t j |  Sd  S(   N(   R   R   R   R   R   R   R!   (   R   R$   R   R   R   (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyt   _resolve_xxx_update^   s    	$s   set.difference_updatec         C@ s   |  j  | | |  S(   N(   R/   (   R   R$   R   R   (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyt   resolve_difference_updatef   s    s   set.intersection_updatec         C@ s   |  j  | | |  S(   N(   R/   (   R   R$   R   R   (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyt   resolve_intersection_updatej   s    s   set.symmetric_difference_updatec         C@ s   |  j  | | |  S(   N(   R/   (   R   R$   R   R   (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyt#   resolve_symmetric_difference_updaten   s    c         C@ sK   | s t   | \ } t | t j  rG | j | j k rG t | |  Sd  S(   N(   R   R   R   R   R   R   (   R   R$   R   R   R   (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyt   _resolve_operatorr   s    	$s   set.differencec         C@ s   |  j  | | |  S(   N(   R3   (   R   R$   R   R   (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyt   resolve_differencez   s    s   set.intersectionc         C@ s   |  j  | | |  S(   N(   R3   (   R   R$   R   R   (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyt   resolve_intersection~   s    s   set.symmetric_differencec         C@ s   |  j  | | |  S(   N(   R3   (   R   R$   R   R   (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyt   resolve_symmetric_difference   s    s	   set.unionc         C@ s   |  j  | | |  S(   N(   R3   (   R   R$   R   R   (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyt   resolve_union   s    c         C@ s6   | s t   | \ } | | k r2 t t j |  Sd  S(   N(   R   R   R   t   boolean(   R   R$   R   R   t   arg(    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyt   _resolve_comparator   s    	s   set.isdisjointc         C@ s   |  j  | | |  S(   N(   R:   (   R   R$   R   R   (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyt   resolve_isdisjoint   s    s   set.issubsetc         C@ s   |  j  | | |  S(   N(   R:   (   R   R$   R   R   (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyt   resolve_issubset   s    s   set.issupersetc         C@ s   |  j  | | |  S(   N(   R:   (   R   R$   R   R   (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyt   resolve_issuperset   s    (   R   R   R   R   t   keyR	   R(   R)   R*   R+   R,   R-   R.   R/   R0   R1   R2   R3   R4   R5   R6   R7   R:   R;   R<   R=   (    (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyR   $   s*   	
			t   SetOperatorc           B@ s   e  Z d    Z RS(   c         C@ si   t  |  d k r d  S| \ } } t | t j  re t | t j  re | j | j k re t | |  Sd  S(   Ni   (   t   lenR   R   R   R   R   (   R   R   R   t   at   b(    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyR      s    $(   R   R   R   (    (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyR?      s   t   SetComparisonc           B@ s   e  Z d    Z RS(   c         C@ sf   t  |  d k r d  S| \ } } t | t j  rb t | t j  rb | | k rb t t j |  Sd  S(   Ni   (   R@   R   R   R   R   R8   (   R   R   R   RA   RB   (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyR   ͺ   s
    0(   R   R   R   (    (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyRC   ¨   s   t   ConcreteSetOperatorc           B@ s   e  Z e Z RS(    (   R   R   t   op_keyR>   (    (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyRD   ³   s   t   ConcreteInplaceSetOperatorc           B@ s   e  Z e Z RS(    (   R   R   RE   R>   (    (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyRF   Ή   s   t   ConcreteSetComparisonc           B@ s   e  Z e Z RS(    (   R   R   RE   R>   (    (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyRG   Ώ   s   (1   t
   __future__R    R   t   operatort    R   t	   templatesR   R   R   R   R   R   R	   R
   R   t   registryt   registert   infert   register_globalt   infer_globalt   register_attrt   infer_getattrR$   R   R   R?   RC   t   addt   subt   and_t   or_t   xort   invertRE   RD   t   iaddt   isubt   iandt   iort   ixorRF   t   eqt   net   ltt   let   get   gtRG   (    (    (    s3   lib/python2.7/site-packages/numba/typing/setdecl.pyt   <module>   s.   :				x
1+1