
    cf                     N   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j(                  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          ZLdS )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                 r    t                                                       || _        || _        || _        d S N)super__init__namepycoreinitial)selfr   r   r   	__class__s       2lib/python3.11/site-packages/rope/base/builtins.pyr   zBuiltinModule.__init__
   s2    	    c                     | j         S r   
attributesr   s    r   get_attributeszBuiltinModule.get_attributes   
    r   c                 ,    | j         r| j         j        S d S r   )module__doc__r   s    r   get_doczBuiltinModule.get_doc   s!    ; 	';&&	' 	'r   c                 B    | j                             d          d         S )N.)r   splitr   s    r   get_namezBuiltinModule.get_name   s    ys##B''r   c                 2   t          | j        |           }|                    | j                   | j        `| j                            | j                  }|                                D ],\  }}t          j	        j
                            |          ||<   -|S r   )_object_attributesr   updater   r   _builtin_submodulesr   itemsropebasebuiltinsBuiltinName)r   result
submodulesr   r   s        r   r   zBuiltinModule.attributes   s     $DK66dl###; 	F88CCJ * 0 0 2 2 F Ff#y1==fEEtr   c                     	 t          | j                  }| j                            d          dd          D ]}t          ||d           }|S # t          $ r Y d S w xY w)Nr       )
__import__r   r"   getattrImportError)r   r-   tokens      r   r   zBuiltinModule.module'   sv    		**F--abb1 6 6 55M 	 	 	FF	s   AA 
AA)__name__
__module____qualname__r   parentr   r   r#   propertyr   saveitr   r   __classcell__r   s   @r   r	   r	   	   s        $("       F  ' ' '( ( ( 
\  \ X 
\  \ X    r   r	   c                   8    e Zd ZddZd Zd Zed             ZdS )_BuiltinElementNc                 "    || _         || _        d S r   )builtin_parent)r   r@   r8   s      r   r   z_BuiltinElement.__init__4   s    r   c                 @    | j         rt          | j         dd           S d S )Nr   r@   r2   r   s    r   r   z_BuiltinElement.get_doc8   s*    < 	:4<D999	: 	:r   c                 @    | j         rt          | j         dd           S d S 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   sa           : : :; ; ;   X  r   r>   c                   <    e Zd ZddZej        d             Zd ZdS )BuiltinClassNc                     t                               | ||           t          j                            |            || _        d S r   )r>   r   r   AbstractClassr   )r   r@   r   r8   s       r   r   zBuiltinClass.__init__H   s<      w777((...!r   c                 d    t          | j        |           }|                    | j                   |S r   )r%   r@   r&   r   )r   r-   s     r   r   zBuiltinClass.get_attributesM   s,    #DL$77dl###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   sT        " " " "
 \  \
    r   rI   c                   .    e Zd Zdddg dfdZd ZddZdS )BuiltinFunctionNc                     t                               | ||           t          j                            |            || _        || _        || _        d S r   )r>   r   r   AbstractFunctionargnamesreturnedfunction)r   rT   rU   r@   rS   r8   s         r   r   zBuiltinFunction.__init__X   sL     	  w777"++D111   r   c                 n    | j         (|                      t          | j        |                    S | j        S r   )rU   _CallContextrS   rT   r   argss     r   get_returned_objectz#BuiltinFunction.get_returned_objecta   s2    = 	!==dmT!B!BCCC= r   Tc                     | 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   sV        dD2d! ! ! !! ! !     r   rP   c                   D     e Zd Z fdZd Zej        d             Z xZS )BuiltinUnknownc                     t                                          t          j                               || _        t          j                    | _        d S r   )r   r   r   get_unknownr@   type)r   r@   r   s     r   r   zBuiltinUnknown.__init__l   s?    .00111)++			r   c                 H    t          t          | j                  dd           S rE   )r2   rd   r@   r   s    r   r#   zBuiltinUnknown.get_nameq   s    tDL)):t<<<r   c                 ,    t          | j        |           S r   )r%   r@   r   s    r   r   zBuiltinUnknown.get_attributest   s    !$,555r   )	r5   r6   r7   r   r#   r   r:   r   r;   r<   s   @r   ra   ra   k   sd        , , , , ,
= = = \6 6 \6 6 6 6 6r   ra   c                 b   i }t          |           D ]}|dk    r		 t          | |          }n# t          $ r Y 'w xY wd }t          j        |          rt          |i |          }n6t          j        |          rt          ||          }nt          |          }t          |          ||<   |S )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 16> 		C&&EE 	 	 	 H	 ?5!! 	5#E2f===HHu%% 	5&uVDDDHH%e444H&x00
4s   -
::c                       fd}|S )Nc                  x    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   sJ    sL)) 	 CNs~% 	.#&3:CN4 ~d##r   rG   )rv   rw   s   ` r   _create_builtin_type_getterrx      s$    $ $ $ $ $ r   c                 0    t          |           fd}|S )Nc                  2    t          j         |            S r   )r   PyObject)rY   type_getters    r   rw   z,_create_builtin_getter.<locals>._get_builtin   s    !++t"4555r   )rx   )rv   rw   r|   s     @r   _create_builtin_getterr}      s1    -c22K6 6 6 6 6 r   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
rW   c                 "    || _         || _        d S r   )rS   rY   )r   rS   rY   s      r   r   z_CallContext.__init__   s     			r   c                 >   |t          |t          j                  r|                                \  }}|dS |d}|                                                    |          }d }|2|0|                                D ]}||         |u r|} n|j        }||0||fS dS )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     	*VW5I"J"J 	%==??Hf "!z &&((AA&IIED )5 )$00 ) )GW~/ & "LE  )5 ) $;zr   c                     | j         r?| j                             | j                  }|| j                            |                   S d S r   )rY   get_argumentsrS   indexr   r   rY   s      r   get_argumentz_CallContext.get_argument   sH    9 	39**4=99D++D1122	3 	3r   c                     | j         rH| j                             | j                  }|| j        v r"|| j                            |                   S d S d S r   )rY   get_pynamesrS   r   r   s      r   
get_pynamez_CallContext.get_pyname   sa    9 	79((77Dt}$ 7DM//5566	7 	77 7r   c                 H    | j         r| j                             |          S d S r   )rY   r   r   rS   s     r   r   z_CallContext.get_arguments   s,    9 	59**8444	5 	5r   c                 H    | j         r| j                             |          S d S r   )rY   r   r   s     r   r   z_CallContext.get_pynames   s,    9 	39((222	3 	3r   c                     | j         d S | j                                         }|                     |          \  }}|:|                                d         }|j        j                            ||          S d S 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   sz    9 	4..000088t 	I5577:H?.;;E4HHHtr   c                     | j         d S | j                                         }|                     |          \  }}|=|                                d         }|j        j                            |||           d S d S r   )rY   r   r   r   r   r   save_per_name)r   valuer   r   r   r   s         r   r   z_CallContext.save_per_name   s    9 	4..000088t 	J5577:HO'55eT5IIIII	J 	Jr   N)r5   r6   r7   r   r   r   r   r   r   r   r   rG   r   r   rW   rW      s            &3 3 3
7 7 75 5 53 3 3  J J J J Jr   rW   c                   .    e Zd Zd ZdddgddfdZd ZdS )_AttributeCollectorc                 "    i | _         || _        d S r   )r   rd   )r   rd   s     r   r   z_AttributeCollector.__init__   s    			r   Nr   Tc           	          	 t          | j        |          }n# t          $ r |r d }Y nw xY wt          t	          |||||                    | j        |<   d S )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    	di..GG 	 	 	 GGG	 !,!!!  !
 !
s    **c                     || j         |<   d S r   r   )r   r   r   s      r   __setitem__z_AttributeCollector.__setitem__   s     %r   )r5   r6   r7   r   r   r   rG   r   r   r   r      sY           
 
 
 
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 )
ListNc                 &   || _         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                   n# t          $ r Y nw xY wt                      
                    t          |j                   d S )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$GGGG	)dnTBBBB 		t~8IRV	
 	
 	
 	
 		^///		
 	
 	
 	
 		^///		
 	
 	
 	
 		^j)		
 	
 	
 	
 		-$.FFFF	%$.>>>>	Int~>>>>> 	 	 	D	 	y344444s   C 
C"!C"c                 ,    t          |t                    S r   _create_builtinget_listrX   s     r   r   zList._new_list-  s    tX...r   c                     | j         d S |                    d          }|.|t          j                    k    r|                    |           d S d S d S )Nr   )r   r   r   rc   r   r   contextr   s      r   r   zList._list_add0  so    < 	F&&w// 	+7i.C.E.E#E 	+!!'*****	+ 	+ 	+ 	+r   c                     | j         d S |                    d          }t          |          }|.|t          j                    k    r|                    |           d S d S d S Nr   r   r   _infer_sequence_for_pynamer   rc   r   r   r   r   r   s       r   r   zList._self_set7  |    < 	F%%j11,X66 	+7i.C.E.E#E 	+!!'*****	+ 	+ 	+ 	+r   c                 H   | j         |                    ddg          }t          |          dk    rW|d         O|d                                         t          d                                         k    rt          | j                   S | j         S |                                S )Nr   keyr0   slice)r   r   lenget_typer+   
get_objectr   r   )r   r   rY   s      r   r   zList._list_get?  s    < 	 ((&%99DD		A.G. G$$&&(7*;*F*F*H*HH.
  ---<##%%%r   c                 F    t          |                     |                    S r   )get_iteratorr   r   r   s     r   r   zList._iterator_getK      DNN733444r   c                 F    t          |                     |                    S r   )r   r   r   s     r   	_self_getzList._self_getN      w//000r   r   )r5   r6   r7   r   r   r   r   r   r   r   r;   r<   s   @r   r   r     s        &5 &5 &5 &5 &5 &5P/ / /+ + ++ + +
& 
& 
&5 5 51 1 1 1 1 1 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 )DictNc                 l   || _         || _        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                                          t          |j                   d S )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  sn   	'--		)dnTBBBB	-$.FFFF	)dnTBBBB	%$/$????	%$-====	&4>$????	(T%5dCCCC	'DODAAAA	&4>$????	-$/$GGGG	*t~dCCCC	(T^DAAAAy344444r   c                 *    dd}t          ||          S )Nc                     | t                      S |                                 }t          |t                    r@t	          |                                          dk    rt          |                                 S d S d S N   )get_dictr   r   Tupler   get_holding_objects)r   rd   s     r   	do_createz!Dict._new_dict.<locals>.do_createj  s     "zz!##%%D$&& =3t/G/G/I/I+J+Ja+O =!9!9!;!;<<= = = =r   r   )r   )r   rY   r   s      r   r   zDict._new_dicti  s(    	= 	= 	= 	= tY///r   c                     | j         d S |                    g d          dd          \  }}|<|t          j                    k    r'|                    t          ||                     d S d S d S )N)r   r   r   r0   )r   r   r   rc   r   	get_tuple)r   r   r   r   s       r   r   zDict._dict_adds  s    9 	F**+C+C+CDDQRRH
U 	9si&;&=&== 	9!!)C"7"788888	9 	9 	9 	9r   c                     | j         t          | j         | j                  S |                                }|'t	          |                                t                    st          | j         | j                  S |S r   )r   r   r   r   r   r   r   r   r   items      r   r   zDict._item_getz  sk    9 	5TY444##%% 	5z$--//5AA 	5TY444r   c                     |                      |                                          }|                                d         S )Nr0   r   r   r   r   s      r   r   zDict._value_get  6    ~~g&&//11''))!,,r   c                     |                      |                                          }|                                d         S r   r   r   s      r   r   zDict._key_get  r   r   c                 F    t          |                     |                    S r   )r   r   r   s     r   r   zDict._value_list  s    00111r   c                 F    t          |                     |                    S r   )r   r   r   s     r   r   zDict._key_list      g..///r   c                 F    t          |                     |                    S r   )r   r   r   s     r   r   zDict._item_list  r   r   c                 F    t          |                     |                    S r   )r   r   r   s     r   _value_iterzDict._value_iter  s    DOOG44555r   c                 F    t          |                     |                    S r   )r   r   r   s     r   r   zDict._key_iter      DMM'22333r   c                 F    t          |                     |                    S r   )r   r   r   s     r   
_item_iterzDict._item_iter  r   r   c                     |                      |                                          }|                                d d         \  }}t          ||          S r   )r   r   r   r   )r   r   r   r   r   s        r   r   zDict._self_get  sM    ~~g&&//11--//3
UU###r   c                 @   | j         d S |                    ddg          d         }|rt          |                                                                t
                    rkt          j        |g          }|                                d                                                             |          }|	                    |           d S t          |          }|>t          |                                t                    r|	                    |           d S d S d S )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    9 	F&&}55a8 		/
8#6#6#8#8#A#A#C#CTJJ 		/,hZ88D##%%i0;;==QQRVWW  !!%(((((0::G /z'2B2B2D2De'L'L /%%g...../ / / /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  s        5 5 5 5 5 5$0 0 09 9 9  - - -- - -2 2 20 0 01 1 16 6 64 4 45 5 5$ $ $
/ / / / / / /r   r   c                   *     e Zd Z fdZd Zd Z xZS )r   c           
         || _         d }|r|d         }t          t          |                    t          t          t          j        |                               t          t          | j                            t          t          t          |                              d}t                                          t          |           d S )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&&&  (	8J48P8P(Q(QRR"?DO#L#L#LMM#OL4G4G$H$HI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     sV        , , , , ,  0 0 0 0 0 0 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 )
SetNc                    || _         t          t                    } |d| j                   g d}|D ]} ||| j        |             |d| j        |             |d| j        |             |d| j        |             |d| j        |             |d| j        |             |d	| j        |             |d
| j        |            t                      
                    t          |j                   d S )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__  sD   ',,		)dm4444
 
 
 # 	D 	DFIft~dCCCCC	%$-====	(T^DAAAA	(T^DAAAA	/$.QUVVVV	%tLLLL	%$-====	*t'9$GGGGi233333r   c                 ,    t          |t                    S r   )r   get_setrX   s     r   r  zSet._new_set  s    tW---r   c                     | j         d S |                    ddg          d         }|.|t          j                    k    r|                    |           d S d S d S )Nr   r   r0   )r   r   r   rc   r   r   s      r   r   zSet._set_add  sy    < 	F''(9::1= 	+7i.C.E.E#E 	+!!'*****	+ 	+ 	+ 	+r   c                     | j         d S |                    d          }t          |          }|.|t          j                    k    r|                    |           d S d S d S r   r   r   s       r   r   zSet._self_set  r   r   c                 F    | j         | j         S |                                S r   )r   r   r   s     r   r!  zSet._set_get  s&    < 	 <##%%%r   c                 F    t          |                     |                    S r   )r   r!  r   s     r   r   zSet._iterator_get   r  r   c                 F    t          |                     |                    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        4 4 4 4 4 40. . .+ + ++ + +& & &
4 4 40 0 0 0 0 0 0r   r  c                   $     e Zd Z fdZd Z xZS )Strc                    t          j        |           }t          t                    } |dt	          |          d           g d}|D ]} ||||            ddg}|D ]}	  |||           # t
          $ r Y w xY wdD ]} ||t          |          |            t                                          t          |j	                   d S )	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7OOOO
 
 
( # 	8 	8FIfk$77777*H5& 	 	F	&+....!    8 	B 	BFIfh{33DAAAAAi233333s   %A22
A?>A?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,    sH        &4 &4 &4 &4 &4P      r   r,  c                        e Zd Zd Zd Zd ZdS )r,   c                     || _         d S 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                     dS )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,   <  sA        ! ! !      r   r,   c                   ,     e Zd Zd fd	Zd Zd Z xZS )IteratorNc                     t                                                       || _        t          t	          | j                            t          t	          |                     d| _        d S )N)nextr   )r   r   r   r,   rP   r   r   r   r   s     r   r   zIterator.__init__H  sZ     = =>>#OD$9$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 )	GeneratorNc                    t                                                       || _        t          t	          | j                            t          t	          t          | j                                      t          t	                                t          t	                                t          t	                                d| _        d S )N)rN  r   closesendthrow)r   r   r   r,   rP   r   r   rO  s     r   r   zGenerator.__init__[  s     = =>>#OL4N4N$O$OPP !2!233 1 122 !2!23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 )FileNrc                    || _         || _        || _        t                      }t	          t                                }i dfd	} |dt          |                      |dt          j        |                      dD ]} |||           dD ]} ||           t                      	                    t                     d S )Nc                     t          t          j        | d           }t          t	          |||                    | <   d S )N)rT   rU   r@   )r2   io
TextIOBaser,   rP   )r   rT   rU   r@   r   s       r   r  zFile.__init__.<locals>.addy  sB    bmT488G*HgVV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   rn  ro  rY   
str_objectstr_listr  r#  r   r   s
           @r   r   zFile.__init__q  s     		YY
GII&&
	 	 	 	 	 	 	JZ00111K)"4T":":;;;;? 	" 	"FC!!!!

 	 	F CKKKKz*****r   )Nr^  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 )PropertyNc                 j   || _         || _        t          t                                t          t	          j                              t          t	          j                              t          t          t                              d}t                                          t          |           d S )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__  s    

 1 122 3 5 566 3 5 566"?<N#O#O#OPP	
 

 	:.....r   c                 x    t          | j        t          j                  r| j                            |          S d S r   )r   r{  r   rR   rZ   rX   s     r   get_property_objectzProperty.get_property_object  s9    dj)"<== 	8:11$777	8 	8r   )NNNN)r5   r6   r7   r   r  r;   r<   s   @r   rv  rv    sL        	/ 	/ 	/ 	/ 	/ 	/8 8 8 8 8 8 8r   rv  c                 ~    |                      g d          }t          j        t          |d                             S )N)rx  ry  rz  r  r   )r   r   r{   rv  )rY   
parameterss     r   r~  r~    s9    ##$D$D$DEEJhz!}55666r   c                   f     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                                                       || _        |j        | _        || _        d S r   )r   r   noderY   r   r   )r   r  r   r   s      r   r   zLambda.__init__  s4    	


r   c                     t           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  sK    #--dj$).II 	+$$&&&(***r   c                 4    | 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
    zr   c                     dS NlambdarG   r   s    r   get_kindzLambda.get_kind      xr   c                     | j         S r   )r  r   s    r   get_astzLambda.get_ast  s
    yr   c                     i S r   rG   r   s    r   r   zLambda.get_attributes  s    	r   c                     dS r  rG   r   s    r   r#   zLambda.get_name  r  r   Tc                     d | j         j        D             }| j         j        r'|                    d| j         j        j        z              | j         j        r'|                    d| j         j        j        z              |S )Nc                 P    g | ]#}t          |t          j                  |j        $S rG   )r   r   arg).0r  s     r   
<listcomp>z*Lambda.get_param_names.<locals>.<listcomp>  s+    XXXtjsw>W>WX$(XXXr   *z**)r   rY   varargr   r  kwarg)r   r\   r-   s      r   r]   zLambda.get_param_names  sw    XXt~':XXX>  	;MM# 5 99:::> 	;MM$!5!99:::r   c                     | j         j        S r   )r   rq   r   s    r   r8   zLambda.parent  s    z""r   r_   )r5   r6   r7   r   rZ   rN   r   r  r  r   r#   r]   r9   r8   r;   r<   s   @r   r  r    s            + + +( ( (              # # X# # # # #r   r  c                        e Zd Z fdZ xZS )BuiltinObjectc                 V    t                                          t          i            d S r   )r   r   objectr   r   s    r   r   zBuiltinObject.__init__  s#    $$$$$r   rt  r<   s   @r   r  r    s8        % % % % % % % % %r   r  c                        e Zd Z fdZ xZS )BuiltinTypec                 V    t                                          t          i            d S r   )r   r   rd   r  s    r   r   zBuiltinType.__init__  s#    r"""""r   rt  r<   s   @r   r  r    s8        # # # # # # # # #r   r  c                 p   | d S |                                  }t          j        | g          }d|v r|d                                          }t          |t          j                  sd S |                    |          }|5d|v r3|d                                                              |          }|S d S d S d S )Nr   rN  )r   r   r	  r   r   rR   rZ   )r   seqrY   ro   iterr   s         r   r   r     s     t




C$fX..DS *o((**#y9:: 	4&&t,, 	$ 	6l--//CCDIIGN 
	 	 	 	r   c                     |                      dg          d         }|d }nt          |          }| ||          S  |            S Nsequencer   )r   r   )rY   creatorpassedr   s       r   r   r     s\    zl++A.F 5,V44 wwwyy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                     |                      ddg          \  }}||S |}t          |t          j                  r0|                                }|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    s}     $ 2 2FF3C D DL+ 	 gy677 	5--//F 5 )&)444r   c                     |                      dg          } g }| D ]+}|d }nt          |          }|                    |           ,t          | }t	          |          S )Nr  )r   r   r   r   r   )rY   r  r  r   r  s        r   _zip_functionr    sr    ZL))DG     	6GG055GwwEE??r   c                     |                      dg          d         }|d }nt          |          }t          d |          }t          |          S r  )r   r   r   r   )rY   r  r   r  s       r   _enumerate_functionr  )  sU    zl++A.F 5,V44dG$$Er   c                     |                      dg          d         }|d }nt          |          }t          |          S r  )r   r   r   )rY   r  r   s      r   _iter_functionr  3  sF    zl++A.F 5,V44   r   c                     t                      S r   )rp  r  s    r   _input_functionr  <  s    99r   r   r   r  r  rB  rq  )rU   r@   rangereversedsortedr   r9   zip	enumerater  rd   r  inputr+   )r   )Mr   rl   ra  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,  rp  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  rq  r  r  r  r   r9   r  r  r  r  _initial_builtinsr+   rG   r   r   <module>r     s   ? ?  				     ? ? ? ? ? ? ? ? ? ? ? ? ? ?' ' ' ' 'I, ' ' 'T       (    ?I$;        oy'A   (6 6 6 6 6_i&8 6 6 6  ,    <J <J <J <J <J <J <J <J~& & & & & & & &DK1 K1 K1 K1 K1< K1 K1 K1\ "!$''++D11X/ X/ X/ X/ X/< X/ X/ X/v "!$''++D110 0 0 0 0L 0 0 0. #"5))	,,U3340 40 40 40 40, 40 40 40n !
 
%
%**3//* * * * *, * * *Z !
 
%
%**3//    '.       y&     &%h//    	'   & '&y11+ + + + +< + + +D "!$''++D118 8 8 8 8| 8 8 8"7 7 7
*# *# *# *# *#Y' *# *# *#Z% % % % %L % % %
# # # # #, # # #
  	 	 	+ + +  / / /+ + +  
 
 
  ! ! !  
KK((
KK(( [[))** 
;;||~~&&	
 
;;||~~&& KKNNNOO [[/5QQQRR !3XFFF  kk//3CVTTTUU [[/5QQQRR !3XFFF   
;;sKKKLL!" !4iHHH #( kk--//**)* KK&&+, KKNNNOO-. [[/5QQQRR/ 4 =->???r   