ó
ĊZc           @   s3   d  d l  m Z d   Z d e f d     YZ d S(   i˙˙˙˙(   t   astc         C   s    t    } t j |  |  | j S(   s*  Return a list of ``(name, level)`` tuples for assigned names

    The `level` is `None` for simple assignments and is a list of
    numbers for tuple assignments for example in::

      a, (b, c) = x

    The levels for for `a` is ``[0]``, for `b` is ``[1, 0]`` and for
    `c` is ``[1, 1]``.

    (   t   _NodeNameCollectorR    t   walkt   names(   t   nodet   visitor(    (    s1   lib/python2.7/site-packages/rope/base/astutils.pyt   get_name_levels   s    	R   c           B   s\   e  Z d	 d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z RS(
   c         C   s   g  |  _  | |  _ d |  _ d  S(   Ni    (   R   t   levelst   index(   t   selfR   (    (    s1   lib/python2.7/site-packages/rope/base/astutils.pyt   __init__   s    		c         C   sZ   g  } |  j  d  k	 r7 t |  j   } | j |  j  n  |  j d 7_ |  j | |  d  S(   Ni   (   R   t   Nonet   listt   appendR   t   _added(   R	   R   t
   new_levels(    (    s1   lib/python2.7/site-packages/rope/base/astutils.pyt	   _add_node   s    c         C   s/   t  | d  r+ |  j j | j | f  n  d  S(   Nt   id(   t   hasattrR   R   R   (   R	   R   R   (    (    s1   lib/python2.7/site-packages/rope/base/astutils.pyR   $   s    c         C   s   |  j  |  d  S(   N(   R   (   R	   R   (    (    s1   lib/python2.7/site-packages/rope/base/astutils.pyt   _Name(   s    c         C   s   |  j  j | j g  f  d  S(   N(   R   R   t   name(   R	   R   (    (    s1   lib/python2.7/site-packages/rope/base/astutils.pyt   _ExceptHandler+   s    c         C   s   g  } |  j  d  k	 r7 t |  j   } | j |  j  n  |  j d 7_ t |  } x' t j |  D] } t j | |  qb W|  j	 j
 | j	  d  S(   Ni   (   R   R   R   R   R   R   R    t   get_child_nodesR   R   t   extend(   R	   R   R   R   t   child(    (    s1   lib/python2.7/site-packages/rope/base/astutils.pyt   _Tuple.   s    c         C   s   |  j  |  d  S(   N(   R   (   R	   R   (    (    s1   lib/python2.7/site-packages/rope/base/astutils.pyt
   _Subscript9   s    c         C   s   |  j  |  d  S(   N(   R   (   R	   R   (    (    s1   lib/python2.7/site-packages/rope/base/astutils.pyt
   _Attribute<   s    c         C   s   |  j  |  d  S(   N(   R   (   R	   R   (    (    s1   lib/python2.7/site-packages/rope/base/astutils.pyt   _Slice?   s    N(   t   __name__t
   __module__R   R
   R   R   R   R   R   R   R   R   (    (    (    s1   lib/python2.7/site-packages/rope/base/astutils.pyR      s   							N(   t	   rope.baseR    R   t   objectR   (    (    (    s1   lib/python2.7/site-packages/rope/base/astutils.pyt   <module>   s   	