³ò
C3IHc           @   sM   d  d	 d „  ƒ  YZ  d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d S(
   t   BaseVisitorc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   d p
 t  d ‚ d S(   s:   method is really overridden by compiler.visitor.ASTVisitori    t   UnreachableN(   t   AssertionError(   t   selft   unused_node(    (    s%   C:\py\_spe\plugins\pychecker2\util.pyt   visit   s    c         C   s(   x! | i  ƒ  D] } |  i | ƒ q Wd  S(   N(   t   getChildNodesR   (   R   t   nt   c(    (    s%   C:\py\_spe\plugins\pychecker2\util.pyt   visitChildren   s     (   t   __name__t
   __module__R   R	   (    (    (    s%   C:\py\_spe\plugins\pychecker2\util.pyR       s   	c   	      C   s8  d d k  l } |  i i } | | i i j ot | | i ƒ ow g  } | i D] \ } } | | qP ~ } | i | i ƒ x: | D]. } | o! |  | i j o | | i j Sqƒ qƒ Wn t | | i	 ƒ od g  } | i
 o | i | i
 i ƒ n | i o | i | i i ƒ n |  | j o
 | | j Sq4n d  S(   Niÿÿÿÿ(   t   ast(   t   compilerR   t   parentt
   isinstancet   Ift   testst   appendt   else_t   nodest	   TryExceptt   bodyt   extendt   None(	   t
   stmt_node1t
   stmt_node2R   R   t   _[1]t   testt   codet   partst   part(    (    s%   C:\py\_spe\plugins\pychecker2\util.pyt   try_if_exclusive   s$    * 

 c         C   s&   d d d „  ƒ  Y} t  | |  ƒ d  ƒ S(   Nt   Parentsc           B   s   e  Z d  „  Z d „  Z RS(   c         S   s   | |  _  d  S(   N(   t   next(   R   t   start(    (    s%   C:\py\_spe\plugins\pychecker2\util.pyt   __init__%   s    c         S   s   |  i  i } | |  _  | S(   N(   R"   R   (   R   t   retval(    (    s%   C:\py\_spe\plugins\pychecker2\util.pyt   __call__'   s    	(   R
   R   R$   R&   (    (    (    s%   C:\py\_spe\plugins\pychecker2\util.pyR!   $   s   	(    (   t   iterR   (   t   objR!   (    (    s%   C:\py\_spe\plugins\pychecker2\util.pyt   parents#   s    c         C   sS   g  } | } x@ | o8 y | i  |  | ƒ Wn t j
 o n X| i } q W| S(   N(   R   t   KeyErrorR   (   t   scopest   nodet   resultR   (    (    s%   C:\py\_spe\plugins\pychecker2\util.pyt   enclosing_scopes-   s     c         G   s3   g  } |  D]! } t  | | ƒ o | | q q ~ S(   N(   R   (   t   seqt   classesR   t   s(    (    s%   C:\py\_spe\plugins\pychecker2\util.pyt   type_filter8   s    c         C   sE   h  } x8 |  i  ƒ  D]* \ } } | i | ƒ p | | | <q q W| S(   N(   t	   iteritemst   has_key(   t   at   bt   rt   kt   v(    (    s%   C:\py\_spe\plugins\pychecker2\util.pyt
   dict_minus<   s     c         C   sE   h  } x8 |  i  ƒ  D]* \ } } | i | ƒ o | | | <q q W| S(   N(   R3   R4   (   R5   R6   R7   R8   R9   (    (    s%   C:\py\_spe\plugins\pychecker2\util.pyt   dict_intersectC   s     N(    (   R    R    R)   R.   R2   R:   R;   (    (    (    s%   C:\py\_spe\plugins\pychecker2\util.pys   <module>   s   
		
			