
    Æef                        d Z ddlZddlZddlZddlmZmZmZm	Z	m
Z
  G d de	j                        Z G d d      Z G d d	ee	j                        Z G d
 dee	j                         Z G d dee	j$                        Zd Zd Zd Z G d d      Z G d d      Z G d de      Z ee      Z ee      Z G d de      Z ee      Z ee      Z G d de      Z ee      Z  ee      Z! G d de      Z" ee"      Z# ee"      Z$ G d de      Z% ee%      Z& ee%      Z' G d d ejP                        Z) G d! d"e	j                        Z* ee*      Z+ G d# d$e	j                        Z, ee,      Z- G d% d&e      Z. ee.      Z/ ee.      Z0 G d' d(e      Z1d) Z2 G d* d+e	j                         Z3 G d, d-e      Z4 G d. d/e      Z5d0 Z6d1 Z7d2 Z8d3 Z9d4 Z:d5 Z;d6 Z<d7 Z=d8 Z>d9 Z?d: Z@i d; e) e             d< e) e             d= e) e!             d> e) e$             d? e) e'             d@ e) ee8eAA            dB e) ee9eBA            dC e) ee:eCA            dD e) ee;eDA            dE e) ee<eEA            dF e) ee2eFA            dG e) ee=eGA            dH e) ee>eHA            dI e) e4             dJ e) e5             dK e) ee?eIA            dL e) ee@eJA            ZK edMeKN      ZLy)Oz9This module tries to support builtin types and functions.    N)	argumentsastpynames	pyobjectsutilsc                        e Zd Zdi f fd	ZdZd Zd Zd Zee	j                  d               Zee	j                  d               Z xZS )BuiltinModuleNc                 `    t               j                          || _        || _        || _        y N)super__init__namepycoreinitial)selfr   r   r   	__class__s       4/usr/lib/python3/dist-packages/rope/base/builtins.pyr   zBuiltinModule.__init__
   s&    	    c                     | j                   S r   
attributesr   s    r   get_attributeszBuiltinModule.get_attributes       r   c                 H    | j                   r| j                   j                  S y r   )module__doc__r   s    r   get_doczBuiltinModule.get_doc   s    ;;;;&&& r   c                 >    | j                   j                  d      d   S )N.)r   splitr   s    r   get_namezBuiltinModule.get_name   s    yys#B''r   c                 R   t        | j                  |       }|j                  | j                         | j                  i| j                  j                  | j                        }|j                         D ]1  \  }}t        j                  j                  j                  |      ||<   3 |S r   )_object_attributesr   updater   r   _builtin_submodulesr   itemsropebasebuiltinsBuiltinName)r   result
submodulesr   r   s        r   r   zBuiltinModule.attributes   s     $DKK6dll#;;"88CJ * 0 0 2 Ff#yy11==fEtFr   c                     	 t        | j                        }| j                  j                  d      dd  D ]  }t        ||d       } |S # t        $ r Y y w xY w)Nr       )
__import__r   r"   getattrImportError)r   r-   tokens      r   r   zBuiltinModule.module'   s]    			*F-ab1 6 56M 		s   AA	 		AA)__name__
__module____qualname__r   parentr   r   r#   propertyr   saveitr   r   __classcell__r   s   @r   r	   r	   	   sc    $("  F'( 
\\   
\\  r   r	   c                   0    e Zd ZddZd Zd Zed        Zy)_BuiltinElementNc                      || _         || _        y r   )builtin_parent)r   r@   r8   s      r   r   z_BuiltinElement.__init__4   s    r   c                 J    | j                   rt        | j                   dd       S y )Nr   r@   r2   r   s    r   r   z_BuiltinElement.get_doc8   s!    <<4<<D99 r   c                 J    | j                   rt        | j                   dd       S y Nr5   rC   r   s    r   r#   z_BuiltinElement.get_name<   s!    <<4<<T:: r   c                 >    | j                   t        S | j                   S r   )rA   r+   r   s    r   r8   z_BuiltinElement.parent@   s    <<O||r   r   )r5   r6   r7   r   r   r#   r9   r8    r   r   r>   r>   3   s%    :;  r   r>   c                   >    e Zd ZddZej
                  d        Zd Zy)BuiltinClassNc                 ~    t         j                  | ||       t        j                  j                  |        || _        y r   )r>   r   r   AbstractClassr   )r   r@   r   r8   s       r   r   zBuiltinClass.__init__H   s/      w7((.!r   c                 h    t        | j                  |       }|j                  | j                         |S r   )r%   r@   r&   r   )r   r-   s     r   r   zBuiltinClass.get_attributesM   s'    #DLL$7dll#r   c                     t         S r   )r+   r   s    r   
get_modulezBuiltinClass.get_moduleS   s    r   r   )r5   r6   r7   r   r   r:   r   rN   rG   r   r   rI   rI   G   s$    "
 \\ 
r   rI   c                   ,    e Zd Zdddg dfdZd ZddZy)BuiltinFunctionNc                     t         j                  | ||       t        j                  j                  |        || _        || _        || _        y r   )r>   r   r   AbstractFunctionargnamesreturnedfunction)r   rT   rU   r@   rS   r8   s         r   r   zBuiltinFunction.__init__X   s?     	  w7""++D1   r   c                 |    | j                   %| j                  t        | j                  |            S | j                  S r   )rU   _CallContextrS   rT   r   argss     r   get_returned_objectz#BuiltinFunction.get_returned_objecta   s0    ==$==dmmT!BCC== r   c                     | j                   S r   )rS   )r   special_argss     r   get_param_nameszBuiltinFunction.get_param_namesg       }}r   T)r5   r6   r7   r   rZ   r]   rG   r   r   rP   rP   W   s    dD2d!!r   rP   c                   H     e Zd Z fdZd Zej                  d        Z xZS )BuiltinUnknownc                     t               j                  t        j                                || _        t        j                         | _        y r   )r   r   r   get_unknownr@   type)r   r@   r   s     r   r   zBuiltinUnknown.__init__l   s3    ..01))+	r   c                 B    t        t        | j                        dd       S rE   )r2   rd   r@   r   s    r   r#   zBuiltinUnknown.get_nameq   s    tDLL):t<<r   c                 .    t        | j                  |       S r   )r%   r@   r   s    r   r   zBuiltinUnknown.get_attributest   s    !$,,55r   )	r5   r6   r7   r   r#   r   r:   r   r;   r<   s   @r   ra   ra   k   s%    ,
= \\6 6r   ra   c                 4   i }t        |       D ]x  }|dk(  r		 t        | |      }d }t        j                  |      rt        |i |      }n/t        j                  |      rt        ||      }nt        |      }t        |      ||<   z |S # t        $ r Y w xY w)NNoner8   )r@   r8   )r@   )
dirr2   AttributeErrorinspectisclassrI   	isroutinerP   ra   r,   )objr8   r   r   childpyobjects         r   r%   r%   y   s    JC 16>	C&E
 ??5!#E2f=Hu%&uVDH%e4H&x0
4!1"   	 	s   B	BBc                       fd}|S )Nc                      t        d      si _        | j                  vr |  j                  | <   j                  |    S )N
_generated)hasattrrt   )rY   clss    r   _get_builtinz1_create_builtin_type_getter.<locals>._get_builtin   sA    sL)CNs~~%#&:CNN4 ~~d##r   rG   )rv   rw   s   ` r   _create_builtin_type_getterrx      s    $ r   c                 (    t        |       fd}|S )Nc                  4    t        j                   |        S r   )r   PyObject)rY   type_getters    r   rw   z,_create_builtin_getter.<locals>._get_builtin   s    !!+t"455r   )rx   )rv   rw   r|   s     @r   _create_builtin_getterr}      s    -c2K6 r   c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
rW   c                      || _         || _        y r   )rS   rY   )r   rS   rY   s      r   r   z_CallContext.__init__   s     	r   c                 $   |t        |t        j                        rt|j                         \  }}|y|d}|j	                         j                  |      }d }|3|1|j                         D ]  }||   |u s|} n |j                  }||1||fS y)NNNr0   )
isinstancer   AssignedNameget_definition_location	get_scopeget_inner_scope_for_line	get_namesr8   )r   pynamepymodulelinenoscoper   currents          r   _get_scope_and_pynamez"_CallContext._get_scope_and_pyname   s    *VW5I5I"J%==?Hf!~&&(AA&IED,5#4$0 )GW~/&)
 "LLE ,5#4 $;r   c                     | j                   rC| j                   j                  | j                        }|| j                  j                  |         S y r   )rY   get_argumentsrS   indexr   r   rY   s      r   get_argumentz_CallContext.get_argument   s@    9999**4==9D++D122 r   c                     | j                   rR| j                   j                  | j                        }|| j                  v r|| j                  j                  |         S y y r   )rY   get_pynamesrS   r   r   s      r   
get_pynamez_CallContext.get_pyname   sQ    9999((7Dt}}$DMM//566 % r   c                 R    | j                   r| j                   j                  |      S y r   )rY   r   r   rS   s     r   r   z_CallContext.get_arguments   s#    9999**844 r   c                 R    | j                   r| j                   j                  |      S y r   )rY   r   r   s     r   r   z_CallContext.get_pynames   s#    9999((22 r   c                     | j                   y | j                   j                         }| j                  |      \  }}|9|j                         d   }|j                  j
                  j                  ||      S y Nr   )rY   get_instance_pynamer   r   r   object_infoget_per_name)r   r   r   r   r   s        r   r   z_CallContext.get_per_name   sn    99..0008t557:H??..;;E4HHr   c                     | j                   y | j                   j                         }| j                  |      \  }}|;|j                         d   }|j                  j
                  j                  |||       y y r   )rY   r   r   r   r   r   save_per_name)r   valuer   r   r   r   s         r   r   z_CallContext.save_per_name   so    99..0008t557:HOO''55eT5I r   N)r5   r6   r7   r   r   r   r   r   r   r   r   rG   r   r   rW   rW      s+    &3
753Jr   rW   c                   ,    e Zd Zd ZdddgddfdZd Zy)_AttributeCollectorc                      i | _         || _        y r   )r   rd   )r   rd   s     r   r   z_AttributeCollector.__init__   s    	r   Nr   Tc           	          	 t        | j                  |      }t        t	        |||||            | j
                  |<   y # t        $ r |r d }Y 7w xY w)N)rT   rU   rS   r@   r8   )r2   rd   rk   r,   rP   r   )r   r   rT   rU   rS   check_existencer8   r@   s           r   __call__z_AttributeCollector.__call__   s_    	dii.G
 !,!!!!
	  	G	s   ? AAc                 "    || j                   |<   y r   r   )r   r   r   s      r   __setitem__z_AttributeCollector.__setitem__   s     %r   )r5   r6   r7   r   r   r   rG   r   r   r   r      s$     
2&r   r   c                   D     e Zd Zd fd	Zd Zd Zd Zd Zd Zd Z	 xZ
S )	Listc                 2   || _         t        t              } |d| j                  |         |d| j                  |         |d| j
                  ddg|         |d| j
                  g d	|         |d
| j
                  g d	|         |d| j                  ddg|         |d| j                  |         |d| j                  |        	  |d| j                         t               j                  t        |j                         y # t        $ r Y 4w xY w)N__iter__rU   r8   __new__appendr   r   )rU   rS   r8   r   )r   r   r   insertextenditerable__getitem__pop__getslice__rU   )holdingr   list_iterator_get	_new_list	_list_add	_self_set	_list_getrk   r   r   r   )r   r   	collectorr   s      r   r   zList.__init__  s	   '-	*t'9'9$G)dnnTB 	t~~8IRV	
 	^^/		
 	^^/		
 	^^j)		
 	-$..F%$..>	nt~~> 	y334  		s   D
 
	DDc                 "    t        |t              S r   _create_builtinget_listrX   s     r   r   zList._new_list-  s    tX..r   c                     | j                   y |j                  d      }|*|t        j                         k7  r|j	                  |       y y y )Nr   )r   r   r   rc   r   r   contextr   s      r   r   zList._list_add0  sL    <<#&&w/7i.C.C.E#E!!'* $Fr   c                     | j                   y |j                  d      }t        |      }|*|t        j                         k7  r|j                  |       y y y Nr   r   r   _infer_sequence_for_pynamer   rc   r   r   r   r   r   s       r   r   zList._self_set7  V    <<#%%j1,X67i.C.C.E#E!!'* $Fr   c                    | j                   r|j                  ddg      }t        |      dkD  rE|d   @|d   j                         t        d   j                         k(  rt        | j                         S | j                   S |j                         S )Nr   keyr0   slice)r   r   lenget_typer+   
get_objectr   r   )r   r   rY   s      r   r   zList._list_get?  s    <<#((&%9DD	AG'G$$&(7*;*F*F*HH--<<##%%r   c                 6    t        | j                  |            S r   )get_iteratorr   r   r   s     r   r   zList._iterator_getK      DNN7344r   c                 6    t        | j                  |            S r   )r   r   r   s     r   	_self_getzList._self_getN      w/00r   r   )r5   r6   r7   r   r   r   r   r   r   r   r;   r<   s   @r   r   r     s'    &5P/++
&51r   r   c                   n     e Zd Zd fd	Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Z xZS )Dictc                    || _         || _        t        t              } |d| j                  |         |d| j
                  |         |d| j                  |         |d| j                  |         |d| j                  |         |d| j                  |         |d| j                  |         |d	| j                  |         |d
| j                  |         |d| j                  |         |d| j                  |         |d| j                  |        t               j!                  t        |j"                         y )Nr   r   r   popitemr   getkeysvaluesr(   copyr   r   r&   )r   r   r   dict	_new_dict	_dict_add	_item_get
_value_get_key_get	_key_list_value_list
_item_listr   	_key_iterr   r   r   r   )r   r   r   r   r   s       r   r   zDict.__init__W  s    	'-	)dnnTB-$..F)dnnTB%$//$?%$--=&4>>$?(T%5%5dC'DOODA&4>>$?-$//$G*t~~dC(T^^DAy334r   c                 "    dd}t        ||      S )Nc                     | 
t               S | j                         }t        |t              r3t	        |j                               dk(  rt        |j                          S y y N   )get_dictr   r   Tupler   get_holding_objects)r   rd   s     r   	do_createz!Dict._new_dict.<locals>.do_createj  sY    z!##%D$&3t/G/G/I+Ja+O!9!9!;<< ,P&r   r   )r   )r   rY   r   s      r   r   zDict._new_dicti  s    	= tY//r   c                     | j                   y |j                  g d      dd  \  }}|4|t        j                         k7  r|j	                  t        ||             y y y )N)r   r   r   r0   )r   r   r   rc   r   	get_tuple)r   r   r   r   s       r   r   zDict._dict_adds  s\    99 **+CDQRH
U?si&;&;&==!!)C"78  >?r   c                     | j                    t        | j                   | j                        S |j                         }|t	        |j                         t              s t        | j                   | j                        S |S r   )r   r   r   r   r   r   r   r   r   items      r   r   zDict._item_getz  s]    99 TYY44##%<z$--/5ATYY44r   c                 f    | j                  |      j                         }|j                         d   S )Nr0   r   r   r   r   s      r   r   zDict._value_get  -    ~~g&//1'')!,,r   c                 f    | j                  |      j                         }|j                         d   S r   r   r   s      r   r   zDict._key_get  r   r   c                 6    t        | j                  |            S r   )r   r   r   s     r   r   zDict._value_list  s    011r   c                 6    t        | j                  |            S r   )r   r   r   s     r   r   zDict._key_list      g.//r   c                 6    t        | j                  |            S r   )r   r   r   s     r   r   zDict._item_list  r   r   c                 6    t        | j                  |            S r   )r   r   r   s     r   _value_iterzDict._value_iter  s    DOOG455r   c                 6    t        | j                  |            S r   )r   r   r   s     r   r   zDict._key_iter      DMM'233r   c                 6    t        | j                  |            S r   )r   r   r   s     r   
_item_iterzDict._item_iter  r   r   c                     | j                  |      j                         }|j                         d d \  }}t        ||      S r   )r   r   r   r   )r   r   r   r   r   s        r   r   zDict._self_get  s?    ~~g&//1--/3
UU##r   c                    | j                   y |j                  ddg      d   }|rt        |j                         j	                         t
              rXt        j                  |g      }|j                         d   j                         j                  |      }|j                  |       y t        |      }|1t        |j	                         t              r|j                  |       y y y )Nr   dr0   r   )r   r   r   r   r   r   r   ObjectArgumentsrZ   r   r   r   )r   r   new_dictrY   r(   r   s         r   r   zDict._self_set  s    99 &&}5a8
8#6#6#8#A#A#CTJ,,hZ8D##%i0;;=QQRVW  !!%(0:G"z'2B2B2De'L%%g. (M"r   r   )r5   r6   r7   r   r   r   r   r   r   r   r   r   r  r   r  r   r   r;   r<   s   @r   r   r   V  sI    5$09--201645$
/r   r   c                   *     e Zd Z fdZd Zd Z xZS )r   c           
      N   || _         d }|r|d   }t        t        |            t        t        t        j                  |                   t        t        | j
                              t        t        t        |                  d}t               j                  t        |       y )Nr   r   )r   r   r   r   )
objectsr,   rP   r   r{   
_new_tupler   r   r   tuple)r   r  firstr   r   s       r   r   zTuple.__init__  s    AJE&& (	8J8J48P(QR"?DOO#LM#OL4G$HI

 	
+r   c                     | j                   S r   )r  r   s    r   r   zTuple.get_holding_objects      ||r   c                 "    t        |t              S r   )r   r   rX   s     r   r  zTuple._new_tuple  s    tY//r   )r5   r6   r7   r   r   r  r;   r<   s   @r   r   r     s    ,0r   r   c                   D     e Zd Zd fd	Zd Zd Zd Zd Zd Zd Z	 xZ
S )	Setc                    || _         t        t              } |d| j                         g d}|D ]  } ||| j                  |          |d| j
                  |         |d| j                  |         |d| j                  |         |d| j                  |         |d| j                  |         |d	| j                  |         |d
| j                  |        t               j                  t        |j                         y )Nr   r   )r   
differenceintersectionsymmetric_differenceunionr   addr&   symmetric_difference_updatedifference_updater   r   )r   r   set_new_setr   _set_addr   _set_getr   r   r   r   )r   r   r   self_methodsmethodr   s        r   r   zSet.__init__  s    ',	)dmm4
 # 	DFft~~dC	D%$--=(T^^DA(T^^DA/$..QUV%tL%$--=*t'9'9$Gi223r   c                 "    t        |t              S r   )r   get_setrX   s     r   r  zSet._new_set  s    tW--r   c                     | j                   y |j                  ddg      d   }|*|t        j                         k7  r|j	                  |       y y y )Nr   r   r0   )r   r   r   rc   r   r   s      r   r   zSet._set_add  sV    <<#''(9:1=7i.C.C.E#E!!'* $Fr   c                     | j                   y |j                  d      }t        |      }|*|t        j                         k7  r|j                  |       y y y r   r   r   s       r   r   zSet._self_set  r   r   c                 R    | j                   | j                   S |j                         S r   )r   r   r   s     r   r!  zSet._set_get  s%    <<#<<##%%r   c                 6    t        | j                  |            S r   )r   r!  r   s     r   r   zSet._iterator_get   r  r   c                 6    t        | j                  |            S r   )r   r!  r   s     r   r   zSet._self_get  r   r   r   )r5   r6   r7   r   r  r   r   r!  r   r   r;   r<   s   @r   r  r    s&    40.++&
40r   r  c                   $     e Zd Z fdZd Z xZS )Strc                 p   t        j                  |       }t        t              } |dt	        |      d       g d}|D ]  } ||||         ddg}|D ]  }	  |||        dD ]  } ||t        |      |         t               j                  t        |j                         y # t
        $ r Y ^w xY w)	Nr   F)r   )r   
capitalizecenterencode
expandtabsjoinljustlowerlstripreplacerjustrstripstripswapcasetitle	translateupperzfillri   r   decode)rsplitr"   
splitlines)
r   r{   r   strr   rk   r   r   r   r   )r   self_objectr   r"  r#  py2_self_methodsr   s         r   r   zStr.__init__  s    ((.',	*l;7O
( # 	8Ffk$7	8 +H5& 	F&+.	 8 	BFfh{3DA	B 	i223 " s   	B))	B54B5c                 "    t         j                  S r   )rB  r   r   s    r   r   zStr.get_doc4  s    {{r   )r5   r6   r7   r   r   r;   r<   s   @r   r,  r,    s    &4Pr   r,  c                       e Zd Zd Zd Zd Zy)r,   c                     || _         y r   rq   )r   rq   s     r   r   zBuiltinName.__init__=  s	     r   c                     | j                   S r   rH  r   s    r   r   zBuiltinName.get_object@  r^   r   c                      y)Nr   rG   r   s    r   r   z#BuiltinName.get_definition_locationC  s    r   N)r5   r6   r7   r   r   r   rG   r   r   r,   r,   <  s    !r   r,   c                   ,     e Zd Zd fd	Zd Zd Z xZS )Iteratorc                     t               j                          || _        t        t	        | j                              t        t	        |             d| _        y )N)nextr   )r   r   r   r,   rP   r   r   r   r   s     r   r   zIterator.__init__H  s?     =>#OD$9:
r   c                     | j                   S r   r   r   s    r   r   zIterator.get_attributesP  r   r   c                     | j                   S r   r   rX   s     r   rZ   zIterator.get_returned_objectS  r  r   r   r5   r6   r7   r   r   rZ   r;   r<   s   @r   rL  rL  G  s    
r   rL  c                   ,     e Zd Zd fd	Zd Zd Z xZS )	Generatorc                 F   t               j                          || _        t        t	        | j                              t        t	        t        | j                                    t        t	                     t        t	                     t        t	                     d| _        y )N)rN  r   closesendthrow)r   r   r   r,   rP   r   r   rO  s     r   r   zGenerator.__init__[  si     =>#OL4N$OP !23 12 !23
r   c                     | j                   S r   r   r   s    r   r   zGenerator.get_attributesf  r   r   c                     | j                   S r   rR  rX   s     r   rZ   zGenerator.get_returned_objecti  r  r   r   rS  r<   s   @r   rU  rU  Z  s    	
r   rU  c                         e Zd Zd fd	Z xZS )Filec                 T   || _         || _        || _        t               }t	        t                     }i dfd	} |dt        |              |dt        j                  |              dD ]  } |||        dD ]
  } ||        t               j                  t               y )Nc                 p    t        t        j                  | d       }t        t	        |||            | <   y )N)rT   rU   r@   )r2   io
TextIOBaser,   rP   )r   rT   rU   r@   r   s       r   r  zFile.__init__.<locals>.addy  s0    bmmT48G*HgV Jtr   r   	__enter__)rT   )rN  readreadline	readlines)	rW  flushr   isattyseektelltruncatewrite
writelinesr   )filenamemoderY   get_strr   r   r   r{   r   r   open)
r   rm  rn  rY   
str_objectstr_listr  r#  r   r   s
           @r   r   zFile.__init__q  s     		Y
GI&
	 	JZ01K)"4"4T":;? 	"F!	"

 	F K	 	z*r   )Nrr5   r6   r7   r   r;   r<   s   @r   r]  r]  p  s    + +r   r]  c                   &     e Zd Zd fd	Zd Z xZS )Propertyc                 (   || _         || _        t        t                     t        t	        j
                               t        t	        j
                               t        t        t                    d}t               j                  t        |       y )Nr   )fgetfsetfdelr   )
_fget_fdocr,   rP   r   UnboundName_property_functionr   r   r9   )r   rx  ry  rz  fdocr   r   s         r   r   zProperty.__init__  sg    

 12 3 3 56 3 3 56"?<N#OP	

 	:.r   c                     t        | j                  t        j                        r| j                  j	                  |      S y r   )r   r{  r   rR   rZ   rX   s     r   get_property_objectzProperty.get_property_object  s0    djj)"<"<=::11$77 >r   )NNNN)r5   r6   r7   r   r  r;   r<   s   @r   rv  rv    s    	/8r   rv  c                 j    | j                  g d      }t        j                  t        |d               S )N)rx  ry  rz  r  r   )r   r   r{   rv  )rY   
parameterss     r   r~  r~    s-    ##$DEJhz!}566r   c                   `     e Zd Z fdZd Zd Zd Zd Zd Zd Z	d Z
dd	Zed
        Z xZS )Lambdac                 t    t               j                          || _        |j                  | _        || _        y r   )r   r   noderY   r   r   )r   r  r   r   s      r   r   zLambda.__init__  s*    	
r   c                     t         j                  j                  j                  | j                  | j
                  j                        }||j                         S t        j                         S r   )
r)   r*   evaluate	eval_noder   r  bodyr   r   rc   )r   rY   r-   s      r   rZ   zLambda.get_returned_object  sN    ##--djj$))..I$$&&((**r   c                 6    | j                   j                         S r   )r8   rN   r   s    r   rN   zLambda.get_module  s    {{%%''r   c                     | j                   S r   )r   r   s    r   r   zLambda.get_scope  s    zzr   c                      yNlambdarG   r   s    r   get_kindzLambda.get_kind      r   c                     | j                   S r   )r  r   s    r   get_astzLambda.get_ast  s    yyr   c                     i S r   rG   r   s    r   r   zLambda.get_attributes  s    	r   c                      yr  rG   r   s    r   r#   zLambda.get_name  r  r   c                    | j                   j                  D cg c])  }t        |t        j                        s|j                  + }}| j                   j
                  r2|j                  d| j                   j
                  j                  z          | j                   j                  r2|j                  d| j                   j                  j                  z          |S c c}w )N*z**)r   rY   r   r   argvarargr   kwarg)r   r\   r  r-   s       r   r]   zLambda.get_param_names  s    '+~~':':Xtjsww>W$((XX>>  MM# 5 5 9 99:>>MM$!5!5!9!99: Ys
   CCc                 .    | j                   j                  S r   )r   rq   r   s    r   r8   zLambda.parent  s    zz"""r   r_   )r5   r6   r7   r   rZ   rN   r   r  r  r   r#   r]   r9   r8   r;   r<   s   @r   r  r    sD    +( # #r   r  c                        e Zd Z fdZ xZS )BuiltinObjectc                 B    t               j                  t        i        y r   )r   r   objectr   r   s    r   r   zBuiltinObject.__init__  s    $r   rt  r<   s   @r   r  r    s    % %r   r  c                        e Zd Z fdZ xZS )BuiltinTypec                 B    t               j                  t        i        y r   )r   r   rd   r  s    r   r   zBuiltinType.__init__  s    r"r   rt  r<   s   @r   r  r    s    # #r   r  c                 4   | y | j                         }t        j                  | g      }d|v rk|d   j                         }t        |t        j
                        sy |j                  |      }|)d|v r$|d   j                         j                  |      }|S y y y )Nr   rN  )r   r   r	  r   r   rR   rZ   )r   seqrY   ro   iterr   s         r   r   r     s    ~



C$$fX.DS*o((*#y99:&&t,$6l--/CCDIGN !/ r   c                 n    | j                  dg      d   }|d }nt        |      }| ||      S  |       S Nsequencer   )r   r   )rY   creatorpassedr   s       r   r   r     sF    zl+A.F~,V4wyr   c                 "    t        | t              S r   )r   get_filerY   s    r   _open_functionr        4**r   c                     t               S r   )r   r  s    r   _range_functionr    s
    :r   c                 "    t        | t              S r   )r   r   r  s    r   _reversed_functionr    s    4..r   c                 "    t        | t              S r   r   r  s    r   _sorted_functionr  
  r  r   c                     | j                  ddg      \  }}||S |}t        |t        j                        r*|j	                         }|rt        j
                  |d         S |S )Nrd   r   r   )r   r   r   rK   get_superclassesr{   )rY   passed_classpassed_selfpyclasssuperss        r   _super_functionr    sk     $ 2 2FF3C DL+ gy667--/F ))&)44r   c                     | j                  dg      } g }| D ]#  }|d }nt        |      }|j                  |       % t        | }t	        |      S )Nr  )r   r   r   r   r   )rY   r  r  r   r  s        r   _zip_functionr    s^    ZL)DG  ;G05Gw  wEE?r   c                 z    | j                  dg      d   }|d }nt        |      }t        d |      }t        |      S r  )r   r   r   r   )rY   r  r   r  s       r   _enumerate_functionr  )  sD    zl+A.F~,V4dG$Er   c                 v    | j                  dg      d   }|d }t        |      S t        |      }t        |      S r  )r   r   r   )rY   r  r   s      r   _iter_functionr  3  sG    zl+A.F~    -V4  r   c                     t               S r   )ro  r  s    r   _input_functionr  <  s
    9r   r   r   r  r  rB  rp  )rU   r@   rangereversedsortedr   r9   zip	enumerater  rd   r  inputr+   )r   )Mr   rl   r`  rope.base.evaluater)   	rope.baser   r   r   r   r   AbstractModuler	   r>   rK   rI   rR   rP   r{   ra   r%   rx   r}   rW   r   r   r   get_list_typer   r   get_dict_typer   r   get_tuple_typer  r%  get_set_typer,  ro  get_str_typePyNamer,   rL  r   rU  get_generatorr]  r  get_file_typerv  r~  r  r  r  r   r   r  r  r  r  r  r  r  r  r  rp  r  r  r  r   r9   r  r  r  r  _initial_builtinsr+   rG   r   r   <module>r     s   ?  	  ? ?'I,, 'T (?I$;$;  oy'A'A (6_i&8&8 6,<J <J~& &DK1< K1\ "$'+D1X/< X/v "$'+D10L 0. #5)	,U340, 40n !
%*3/*, *Z !
%*3/'.. y&&   &h/	'' & 'y1+< +D "$'+D18| 8"7
*#Y'' *#Z%L %
#, #
	+/+
!
K(
K( [)* 
;|~&	
 
;|~& KNO [/5QR !3XF k/3CVTU [/5QR !3XF  
;sKL!" !4iH#( k-/*)* K&+, KNO-. [/5QR/ 4 ->?r   