ó
†Å•Zc           @   s  d  d l  Z d  d l m Z m Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d	 e f d
 „  ƒ  YZ	 d e f d „  ƒ  YZ
 d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d „  Z d „  Z d e f d „  ƒ  YZ d S(   iÿÿÿÿN(   t
   exceptionst   utilst   PyNamec           B   s    e  Z d  Z d „  Z d „  Z RS(   s1   References to `PyObject`\s inside python programsc         C   s   d S(   s8   Return the `PyObject` object referenced by this `PyName`N(    (   t   self(    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyt
   get_object   t    c         C   s   d S(   s   Return a (module, lineno) tupleN(    (   R   (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyt   get_definition_location   R   (   t   __name__t
   __module__t   __doc__R   R   (    (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR      s   	t   DefinedNamec           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s   | |  _  d  S(   N(   t   pyobject(   R   R   (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyt   __init__   s    c         C   s   |  j  S(   N(   R   (   R   (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR      s    c         C   s   |  j  j ƒ  |  j  j ƒ  j f S(   N(   R   t
   get_modulet   get_astt   lineno(   R   (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR      s    (   R   R   R   R   R   (    (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR
      s   		t   AssignedNamec           B   s   e  Z d  Z RS(   s   Only a placeholder(   R   R   R	   (    (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR      s   t   UnboundNamec           B   s&   e  Z d d  „ Z d „  Z d „  Z RS(   c         C   s4   | |  _  |  j  d  k r0 t j j j ƒ  |  _  n  d  S(   N(   R   t   Nonet   ropet   baset	   pyobjectst   get_unknown(   R   R   (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR   !   s    	c         C   s   |  j  S(   N(   R   (   R   (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR   &   s    c         C   s   d S(   N(   NN(   R   (   R   (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR   )   s    N(   R   R   R   R   R   R   (    (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR      s   	t   AssignmentValuec           B   s)   e  Z d  Z d d e d „ Z d „  Z RS(   s   An assigned expressionR   c         C   s@   | |  _  | d k r! g  |  _ n	 | |  _ | |  _ | |  _ d S(   sý   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]``.

        N(   t   ast_nodeR   t   levelst
   evaluationt   assign_type(   R   R   R   R   R   (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR   0   s    			c         C   s
   |  j  j S(   N(   R   R   (   R   (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyt
   get_linenoC   s    N(   R   R   R	   R   t   FalseR   R   (    (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR   -   s   t   EvaluatedNamec           B   s8   e  Z d  Z d d d „ Z d „  Z d „  Z d „  Z RS(   s+   A name whose object will be evaluated laterc         C   s7   | |  _  | |  _ | |  _ t | t | ƒ ƒ |  _ d  S(   N(   t   moduleR   t   callbackt	   _Inferredt   _get_concluded_dataR   (   R   R    R   R   (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR   J   s    			c         C   s   |  j  j ƒ  S(   N(   R   t   get(   R   (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR   P   s    c         C   s   |  j  |  j f S(   N(   R   R   (   R   (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR   S   s    c         C   s   |  j  j d ƒ d S(   s)   Forget the `PyObject` this `PyName` holdsN(   R   t   setR   (   R   (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyt
   invalidateV   s    N(   R   R   R	   R   R   R   R   R%   (    (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR   G   s
   		t   ParameterNamec           B   s   e  Z d  Z RS(   s   Only a placeholder(   R   R   R	   (    (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR&   [   s   t   ImportedModulec           B   s>   e  Z d d  d d „ Z d „  Z d „  Z d „  Z d „  Z RS(   i    c         C   s:   | |  _  | |  _ | |  _ | |  _ t |  j  ƒ |  _ d  S(   N(   t   importing_modulet   module_namet   levelt   resourceR"   t   pymodule(   R   R(   R)   R*   R+   (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR   a   s
    				c         C   s,   |  j  j ƒ  j ƒ  } | d  k r% d  S| j S(   N(   R(   R   t   get_resourceR   t   parent(   R   R+   (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyt   _current_folderi   s    c         C   só   |  j  j ƒ  d  k ræ |  j j } |  j d  k	 rR |  j  j | j j |  j ƒ ƒ qæ |  j	 d  k	 ræ yh |  j
 d k r” | j j |  j	 |  j ƒ  ƒ } n$ | j j |  j	 |  j ƒ  |  j
 ƒ } |  j  j | ƒ Wqã t j k
 rß qã Xqæ n  |  j  j ƒ  S(   Ni    (   R,   R#   R   R(   t   pycoreR+   R$   t   projectt   get_pymoduleR)   R*   R   R/   t   get_relative_moduleR    t   ModuleNotFoundError(   R   R0   R,   (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyt   _get_pymoduleo   s     "		
c         C   s,   |  j  ƒ  d  k r" t j j j ƒ  S|  j  ƒ  S(   N(   R5   R   R   R   R   R   (   R   (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR   ‚   s    c         C   s8   |  j  ƒ  } t | t j j j ƒ s( d S| j ƒ  d f S(   Ni   (   NN(   R5   t
   isinstanceR   R   R   t   PyDefinedObjectR   R   (   R   R,   (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR   ‡   s    N(   R   R   R   R   R/   R5   R   R   (    (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR'   _   s   			t   ImportedNamec           B   sV   e  Z d  „  Z d „  Z e j e j j j	 ƒ d „  ƒ Z
 e j d „  ƒ d „  ƒ Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   t   imported_modulet   imported_name(   R   R9   R:   (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR      s    	c         C   sH   y* |  j  j ƒ  |  j } | |  k r) | SWn t j k
 r@ n Xt ƒ  S(   N(   R9   R   R:   R    t   AttributeNotFoundErrorR   (   R   t   result(    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyt   _get_imported_pyname”   s    c         C   s   |  j  ƒ  j ƒ  S(   N(   R=   R   (   R   (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR      s    c           C   s   d S(   N(   NN(   R   (    (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyt   <lambda>¡   R   c         C   s   |  j  ƒ  j ƒ  S(   N(   R=   R   (   R   (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR   ¡   s    (   R   R   R   R=   R   t   prevent_recursionR   R   R   R   R   R   (    (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR8   Ž   s   			!c         C   s&   |  d  k r t j j j ƒ  S|  j ƒ  S(   N(   R   R   R   R   t   _ConcludedDataR"   (   R   (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR"   ¦   s    c           C   s   t  j j j d ƒ ‚ d  S(   Ns   Circular Object Inference(   R   R   R   t   IsBeingInferredError(    (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyt   _circular_inference¬   s    R!   c           B   s>   e  Z d d  „ Z e j e ƒ d „  ƒ Z d „  Z d „  Z	 RS(   c         C   s1   | |  _  | |  _ |  j d  k r- d  |  _ n  d  S(   N(   t   get_inferredt	   concludedR   t   temp(   R   RC   RD   (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR   ³   s    		c         O   sx   |  j  d  k s$ |  j  j ƒ  d  k r@ |  j |  j | | Ž  ƒ n  |  j ƒ  d  k rn |  j t j j j	 ƒ  ƒ n  |  j ƒ  S(   N(
   RD   R   R#   R$   RC   t   _getR   R   R   R   (   R   t   argst   kwds(    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR#   ¹   s
    $c         C   s/   |  j  d  k	 r" |  j  j | ƒ n  | |  _ d  S(   N(   RD   R   R$   RE   (   R   R   (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR$   Á   s    c         C   s#   |  j  d  k	 r |  j  j ƒ  S|  j S(   N(   RD   R   R#   RE   (   R   (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyRF   Æ   s    N(
   R   R   R   R   R   R?   RB   R#   R$   RF   (    (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyR!   ±   s   	(   t   rope.base.pyobjectsR   t	   rope.baseR    R   t   objectR   R
   R   R   R   R   R&   R'   R8   R"   RB   R!   (    (    (    s0   lib/python2.7/site-packages/rope/base/pynames.pyt   <module>   s   
/		