
    cW                     \    d dl Z d dlZd dlZdZd Z G d d          Z G d d          ZdS )    N   c                 r    |                                  }t          |          }|                    |          S N)readWorderget_word_at)resourceoffsetsource_codeword_finders       0lib/python3.11/site-packages/rope/base/worder.pyget_name_atr   	   s0    --//K%%K""6***    c                       e Zd ZdZd#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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d Z d  Z!d! Z"d"S )$r   a  A class for finding boundaries of words and expressions

    Note that in these methods, offset should be the index of the
    character not the index of the character after it.

    Some of the methods here doesn't exactly do what their name might lead you
    to think they do, these probably should be fixed. Refer to
    ropetest/codeanalyzetest.py for what these methods returns. Note that
    codeanalyzetest.py documents the current behavior, rather than what they
    should've been.
    Fc                     t           j        j                            |          }t	          ||          | _        || _        || _        d S r   )ropebasesimplify	real_code_RealFindercode_finderhandle_ignorescode)selfr   r   
simplifieds       r   __init__zWorder.__init__   s?    Y'11$77
&z488,			r   c                     t           j        j                            | j                  }t          | j        | j                  | _        d |D             | _        d |D             | _        d S )Nc                     g | ]
}|d          S )r    .0ignoreds     r   
<listcomp>z(Worder._init_ignores.<locals>.<listcomp>%   s    999gwqz999r   c                     g | ]
}|d          S )   r   r    s     r   r#   z(Worder._init_ignores.<locals>.<listcomp>&   s    777GWQZ777r   )	r   r   r   ignored_regionsr   r   dumb_finderstartsends)r   ignoress     r   _init_ignoreszWorder._init_ignores"   s`    )$44TY??&ty$)<<9999977w777			r   c                 8   | j         rvt          | d          s|                                  t          j        | j        |          }|dk    r2|| j        |dz
           k     r t          | j        |          |          S  t          | j        |          |          S )Nr(   r   r%   )	r   hasattrr+   bisectr(   r)   getattrr'   r   )r   namer
   starts       r   _context_callzWorder._context_call(   s     	?4** %""$$$M$+v66Eqy ?Vdi	&:: ?6wt/66v>>>.wt'..v666r   c                 .    |                      d|          S )Nget_primary_atr2   r   r
   s     r   r4   zWorder.get_primary_at1       !!"2F;;;r   c                 .    |                      d|          S )Nr   r5   r6   s     r   r   zWorder.get_word_at4   s    !!-888r   c                 .    |                      d|          S )Nget_primary_ranger5   r6   s     r   r:   zWorder.get_primary_range7   s    !!"5v>>>r   c                 .    |                      d|          S )Nget_splitted_primary_beforer5   r6   s     r   r<   z"Worder.get_splitted_primary_before:   s    !!"?HHHr   c                 .    |                      d|          S )Nget_word_ranger5   r6   s     r   r>   zWorder.get_word_range=   r7   r   c                 6    | j                             |          S r   )r   is_function_keyword_parameterr6   s     r   r@   z$Worder.is_function_keyword_parameter@       ==fEEEr   c                 6    | j                             |          S r   )r   %is_a_class_or_function_name_in_headerr6   s     r   rC   z,Worder.is_a_class_or_function_name_in_headerC   s    EEfMMMr   c                 6    | j                             |          S r   )r   is_from_statement_moduler6   s     r   rE   zWorder.is_from_statement_moduleF   s    88@@@r   c                 6    | j                             |          S r   )r   is_from_aliasedr6   s     r   rG   zWorder.is_from_aliasedI       //777r   c                 6    | j                             |          S r   )r   "is_import_statement_aliased_moduler6   s     r   rJ   z)Worder.is_import_statement_aliased_moduleL   s    BB6JJJr   c                 6    | j                             |          S r   )r   find_parens_start_from_insider6   s     r   rL   z$Worder.find_parens_start_from_insideO   rA   r   c                 6    | j                             |          S r   )r   is_a_name_after_from_importr6   s     r   rN   z"Worder.is_a_name_after_from_importR       ;;FCCCr   c                 6    | j                             |          S r   )r   is_from_statementr6   s     r   rQ   zWorder.is_from_statementU   s    11&999r   c                 6    | j                             |          S r   )r   get_from_aliasedr6   s     r   rS   zWorder.get_from_aliasedX       00888r   c                 6    | j                             |          S r   )r   is_import_statementr6   s     r   rV   zWorder.is_import_statement[       33F;;;r   c                 6    | j                             |          S r   )r   is_assigned_herer6   s     r   rY   zWorder.is_assigned_here^   rT   r   c                 6    | j                             |          S r   )r   is_a_function_being_calledr6   s     r   r[   z!Worder.is_a_function_being_calleda   s    ::6BBBr   c                 6    | j                             |          S r   )r   get_word_parens_ranger6   s     r   r]   zWorder.get_word_parens_ranged   s    55f===r   c                 6    | j                             |          S r   )r   is_name_assigned_in_class_bodyr6   s     r   r_   z%Worder.is_name_assigned_in_class_bodyg   s    >>vFFFr   c                 6    | j                             |          S r   )r   is_on_function_call_keywordr6   s     r   ra   z"Worder.is_on_function_call_keywordj   rO   r   c                 6    | j                             |          S r   )r   _find_parens_startr6   s     r   rc   zWorder._find_parens_startm   s    226:::r   c                 8    | j                             ||          S r   )r   get_parameters)r   firstlasts      r   re   zWorder.get_parametersp   s    ..ud;;;r   c                 6    | j                             |          S r   )r   get_from_moduler6   s     r   ri   zWorder.get_from_modules   rH   r   c                 6    | j                             |          S r   )r   !is_assigned_in_a_tuple_assignmentr6   s     r   rk   z(Worder.is_assigned_in_a_tuple_assignmentv   s    AA&IIIr   c                 6    | j                             |          S r   )r   get_assignment_typer6   s     r   rm   zWorder.get_assignment_typey   rW   r   c                 6    | j                             |          S r   )r   get_function_and_args_in_headerr6   s     r   ro   z&Worder.get_function_and_args_in_header|   s    ??GGGr   c                 6    | j                             |          S r   )r   get_lambda_and_argsr6   s     r   rq   zWorder.get_lambda_and_args   rW   r   c                 6    | j                             |          S r   )r   find_function_offsetr6   s     r   rs   zWorder.find_function_offset   s    44V<<<r   N)F)#__name__
__module____qualname____doc__r   r+   r2   r4   r   r:   r<   r>   r@   rC   rE   rG   rJ   rL   rN   rQ   rS   rV   rY   r[   r]   r_   ra   rc   re   ri   rk   rm   ro   rq   rs   r   r   r   r   r      s       
 
   8 8 87 7 7< < <9 9 9? ? ?I I I< < <F F FN N NA A A8 8 8K K KF F FD D D: : :9 9 9< < <9 9 9C C C> > >G G GD D D; ; ;< < <8 8 8J J J< < <H H H< < <= = = = =r   r   c                       e 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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d Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d2d)Z)d* Z*d+ Z+d, Z,d- Z-d3d/Z.d0 Z/d1S )4r   c                 "    || _         || _        d S r   )r   raw)r   r   rz   s      r   r   z_RealFinder.__init__   s    	r   c                     |}|dk    r5|                      |          r |dz  }|dk    r|                      |           |dz   S Nr   r%   )_is_id_char)r   r
   current_offsets      r   _find_word_startz_RealFinder._find_word_start   sb    ! 	 d&6&6~&F&F 	 aN ! 	 d&6&6~&F&F 	 !!r   c                     |dz   t          | j                  k     rP|                     |dz             r8|dz  }|dz   t          | j                  k     r|                     |dz             8|S Nr%   lenr   r}   r6   s     r   _find_word_endz_RealFinder._find_word_end   sv    qj3ty>>) 	d.>.>vz.J.J 	aKF qj3ty>>) 	d.>.>vz.J.J 	r   c                     |dk    r\| j         |                                         r=| j         |         dk    r|S |dz  }|dk    r| j         |                                         =t          d|          S )Nr   
r%   )r   isspacemaxr6   s     r   _find_last_non_space_charz%_RealFinder._find_last_non_space_char   s    k 	di/7799 	y D( aKF k 	di/7799 	 2vr   c                     |                      |          }| j        |                     |          |                     |          dz            S r   )_get_fixed_offsetrz   r   r   r6   s     r   r   z_RealFinder.get_word_at   sI    ''//x--f558K8KF8S8SVW8WWXXr   c                     |t          | j                  k    r|dz
  S |                     |          s[|dk    r|                     |dz
            r|dz
  S |t          | j                  dz
  k     r|                     |dz             r|dz   S |S )Nr%   r   r   r6   s     r   r   z_RealFinder._get_fixed_offset   s    S^^# 	A:'' 	"z "d..vz:: "z!DI** "t/?/?
/K/K "z!r   c                 b    | j         |                                         p| j         |         dk    S )N_)r   isalnumr6   s     r   r}   z_RealFinder._is_id_char   s,    y ((**Fdi.?3.FFr   c                 x    | j         |         }	 | j                             |d|          S # t          $ r Y dS w xY w)Nr   r   rindex
ValueError)r   r
   kinds      r   _find_string_startz_RealFinder._find_string_start   sO    y 	9##D!V444 	 	 	11	s   + 
99c                    |                      |dz
            }|dk    r`| j        |         dvrQ| j        |         dvr|                     |          }|                      |dz
            }|dk    r| j        |         dvQ|S )Nr%   r   z[({z:,)r   r   _find_primary_startr6   s     r   rc   z_RealFinder._find_parens_start   s    //
;;k 	@di/u< 	@y , :11&9933FQJ??F k 	@di/u< 	@ r   c                    |}| j         |         dk    r|dz   S | j         |                                         r|                     |          }| j         |         dv r|                     |          S | j         |         dv r|                     |          S |                     |          r|                     |          S |S )Nr   r%   z'"z)]})r   r   r   r   rc   r}   r   )r   r
   
old_offsets      r   _find_atom_startz_RealFinder._find_atom_start   s    
9V$ 	A:9V$$&& 	<33F;;F9V% 	3**62229V% 	3**6222F## 	1((000r   c                    |}|                      |          }|dk    rQ| j        |         dv rB|                     |          }|                      |dz
            }|dk    r| j        |         dv B|dk    r| j        |         dv s|                     |          rn|                     |          }t          j        | j        ||dz                      r3|dz   t          | j                  k     r|                     |dz             r|S |S )zIt tries to find the undotted primary start

        It is different from `self._get_atom_start()` in that it
        follows function calls, too; such as in ``f(x)``.

        r   z)]r%   z"'})])r   r   rc   r}   r   keyword	iskeywordr   )r   r
   	last_atom
atom_starts       r   _find_primary_without_dot_startz+_RealFinder._find_primary_without_dot_start   s7    	//	::qj 	CTYv.$6 	C//77I33IMBBF qj 	CTYv.$6 	C Q; 	"DIf-9 	"T=M=Mf=U=U 	"..v66J$TYzFQJ/F%GHH "
S^^+"040@0@!0L0L" "!r   c                    |t          | j                  k    rt          | j                  dz
  }| j        |         dk    r|                     |          }n|dz   }|dk    r|                     |dz
            }|dk    s| j        |         dk    rnh|                     |dz
            }| j        |dz
  |dz            dk    r|}n4|                     |dz
            }|                     |          sn|dk    |S )Nr%   .r      from)r   r   r   r   r}   )r   r
   prevprev_word_ends       r   r   z_RealFinder._find_primary_start   s(   S^^# 	(^^a'F9V# 	 99&AAFFaZFqj 	11&1*==D{ dio4  !::4!8DDMy*]Q->>?6I 99$(CCF##F++  qj 	  r   c                     |                      |          }|                     |          \  }}| j        ||                                         S r   )r   r:   rz   stripr   r
   r1   ends       r   r4   z_RealFinder.get_primary_at   sI    ''//++F33
sxc	"((***r   c                 $   |dk    rdS |dz
  }|                      |          }|                     |          }| j        ||                                         dk    r|}| j        |                                         r|}| j        ||                                         dk    r|}||cxk    r|k    rn n|                     |          sdd|fS ||k    rd| j        ||         |fS | j        |         dk    r| j        ||         d|fS |}| j        |         dk    r|                     |dz
            }|                     |dz
            }| j        |                                         r|}| j        ||dz            | j        ||         |fS )z{returns expression, starting, starting_offset

        This function is used in `rope.codeassist.assist` function.
        r   ) r   r   r%   r   r   )r   r   r   r   r   r}   rz   r   )r   r
   r   
word_start
real_startlast_dot_positionlast_char_positions          r   r<   z'_RealFinder.get_splitted_primary_before   s   
 Q; 	;qj**3//
--c22
9Z&'--//25 	J9S>!!## 	J9Z
*+1133r9 	$#J 	$ 	$ 	$ 	$s 	$ 	$ 	$ 	$ 	$43C3CC3H3H 	$F### 	F!23Z@@y~$ >C0"f== *y$+ S$($B$B:PQ>$R$R!!%!?!?@QTU@U!V!Vy$,,.. $#
&81&<<=F*+ r   c                 d    	 | j                             dd|dz             S # t          $ r Y dS w xY w)Nr   r   r%   r   r6   s     r   _get_line_startz_RealFinder._get_line_start   sG    	9##D!VaZ888 	 	 	11	s   ! 
//c                     	 | j                             d|          S # t          $ r t          | j                   cY S w xY w)Nr   )r   indexr   r   r6   s     r   _get_line_endz_RealFinder._get_line_end&  sL    	"9??4000 	" 	" 	"ty>>!!!	"s    >>c                 ,   |                      |dz
            }|                     |          dz   }d| j        ||         v rdS |                     |          }| j        ||                                         }| o|                     |          dk    S )Nr%   r   F=)r   r   r   r   r   rm   )r   r
   r   word_end
line_startlines         r   r_   z*_RealFinder.is_name_assigned_in_class_body,  s    **6A:66
&&v..2$)Jx/00 	5))*55
yJ./5577xCD44V<<CCr   c                     |                      |dz
            }|                     |          }| j        ||                                         }|dv S )Nr%   )defclass)r   r   r   r   )r   r
   r   r   	prev_words        r   rC   z1_RealFinder.is_a_class_or_function_name_in_header5  sU    **6A:66
))*55
Ij34::<<	,,,r   c                 j   |t          | j                  k    rt          | j                  S |t          | j                  k     rn| j        |                                         rO| j        |         dk    r|S |dz  }|t          | j                  k     r| j        |                                         O|S )Nr   r%   )r   r   r   r6   s     r   _find_first_non_space_charz&_RealFinder._find_first_non_space_char;  s    S^^# 	"ty>>!s49~~% 	$)F*;*C*C*E*E 	y D( aKF s49~~% 	$)F*;*C*C*E*E 	 r   c                     |                      |          dz   }|                     |          }|t          | j                  k     o&| j        |         dk    o|                     |           S )Nr%   ()r   r   r   r   rC   )r   r
   r   	next_chars       r   r[   z&_RealFinder.is_a_function_being_calledD  sq    &&v..233H==	DI& G	)$+G>>vFFF	
r   c                 ,    |                      |          S r   )r   )r   r1   s     r   _find_import_endz_RealFinder._find_import_endM  s    !!%(((r   c                     	 | j                             dd|          }n# t          $ r Y dS w xY w|                     |          }|                     |dz             |k    o|                     |          |k    S )Nzimport r   F   )r   r   r   r   r   r   )r   r
   last_importr   s       r   rV   z_RealFinder.is_import_statementP  s    	)**9a@@KK 	 	 	55	))+66
!!+/22f< A%%j11[@	
s    
--c                     	 | j                             dd|          }| j                             d|          }|dz   }n# t          $ r Y dS w xY w|                     |          }|                     |          |k    S )Nfrom r    import    F)r   r   r   r   r   r   )r   r
   	last_fromfrom_import
from_namess        r   rQ   z_RealFinder.is_from_statement[  s    		((!V<<I)//*i@@K$qJJ 	 	 	55	44Z@@
$$Z00F::s   <? 
AAc                     |t          | j                  dz
  k    rdS |                     |          }|                     |          }| j        ||                                         }|dk    S )Nr%   Fr   )r   r   r   r   r   )r   r
   
stmt_startr   r   s        r   rE   z$_RealFinder.is_from_statement_modulee  so    S^^a'' 	5--f55
))*55
Ij34::<<	F""r   c                 L   |                      |          sdS 	 |                     |          }| j                            d||          }|dz   }n# t          $ r Y dS w xY w|dz
  |k    s|                     |          |k     rdS 	 |                     |          }|                     |          sdS t          | 	                    |dz             t          | j                            }|                     |          }| j        ||dz            dk    S # t          $ r Y dS w xY w)NFimportr   r%   as)rV   r   r   r   r   r   _find_import_main_part_end_has_enough_len_for_asminr   r   r   )r   r
   r   
import_idximported_namesr   as_endas_starts           r   rJ   z._RealFinder.is_import_statement_aliased_modulem  s]   ''// 	5	--f55J))(JGGJ'!^NN 	 	 	55	 Q'	$$^44v=	 5	11&99C..s33 u,,S1W55s49~~FFF,,V44H9X
23t;; 	 	 	55	s*   6A 
AA*D 2A"D 
D#"D#c                 B    t          | j                  |t          z   k    S r   )r   r   MINIMAL_LEN_FOR_AS)r   r   s     r   r   z"_RealFinder._has_enough_len_for_as  s    49~~&8 888r   c                    |                      |          }t          | j                  |dz   k    r[| j        |dz            dk    rG|                      |dz             }t          | j                  |dz   k    r| j        |dz            dk    G|S )N   r%   r   )r   r   r   )r   r
   r   s      r   r   z&_RealFinder._find_import_main_part_end  s    !!&))$)nnsQw& 	/49S1W+=+D 	/%%cAg..C $)nnsQw& 	/49S1W+=+D 	/
r   c                    	 t          | j                  |k    r*| j        |         dk    r|                     |dz
            }n|                     |          }| j                            d||          }| j                            d|          }|dz   }n# t
          $ r Y dS w xY w|dz
  |k    rdS |                     |          |k    S )Nr   r%   r   r   r   F)r   r   r   r   r   r   r   )r   r
   r   r   r   r   s         r   rN   z'_RealFinder.is_a_name_after_from_import  s    		49~~& :49V+<+D :!11&1*==

!11&99
	((*fEEI)//*i@@K$qJJ 	 	 	55	>F" 	5$$Z00F::s   BB 
B$#B$c                     	 | j                             dd|          }| j                             d|          }|                     |          }|                     |          S # t
          $ r Y d S w xY w)Nr   r   r   )r   r   r   r   r4   r   )r   r
   r   import_offsetr   s        r   ri   z_RealFinder.get_from_module  s~    		((!V<<I IOOJ	BBM00??C&&s+++ 	 	 	DD	s   A A# #
A10A1c                 D   |                      |          sdS 	 |                     |          }t          |                     |dz             t          | j                            }|                     |          }| j        ||dz            dk    S # t          $ r Y dS w xY w)NFr%   r   )rN   r   r   r   r   r   r   )r   r
   r   r   r   s        r   rG   z_RealFinder.is_from_aliased  s    //77 	5	%%f--C,,S1W55s49~~FFF,,V44H9X
23t;; 	 	 	55	s   A7B 
BBc                     	 |                      |          }|                      |dz             }|                      |dz             }|                     |          }| j        ||dz            S # t          $ r Y d S w xY wr   )r   r   rz   r   )r   r
   r   as_aliasr1   s         r   rS   z_RealFinder.get_from_aliased  s    	%%f--C%%cAg..C''a00E))%00E8EEAI-.. 	 	 	DD	s   A+A. .
A<;A<c                 ~   |                      |          }|dz   t          | j                  k    rdS |                     |dz             }| j        ||dz            }|dk    s|                    d          sdS |                     |          }|                     |dz
            }|dz
  dk    o| j        |         dv S )Nr%   Fr   ==r   r   z,()r   r   r   r   
startswithr   r   )r   r
   r   r   equalsr   	prev_chars          r   r@   z)_RealFinder.is_function_keyword_parameter  s    &&v..a<3ty>>) 	533HqLAA	9y1}45T> 	!2!23!7!7 	5**622
22:>BB	1}!Bdi	&:d&BBr   c                    |                      |          }|                     |          r|                     |          dz
  }|                     |          }||k    s| j        |         dvrdS |                     |          }||k     S )Nr%   (,F)r   r}   r   r   r   rL   )r   r
   stopparens_starts       r   ra   z'_RealFinder.is_on_function_call_keyword  s    ##F++F## 	7**622Q6F//77T> 	TYv.d: 	599&AAl""r   c                     |                      |          }||k    rC| j        |         dk    rn1| j        |         dk    r|                     |          }|dz  }||k    Ct          ||          S )Nr   ,r%   )r   r   r   r   )r   r
   r   s      r   rL   z)_RealFinder.find_parens_start_from_inside  s    ##F++tm 	y C' y C' :11&99aKF tm 	 4   r   c                 0    |                      |          d uS r   )rm   r6   s     r   rY   z_RealFinder.is_assigned_here  s    ''//t;;r   c                    |                      |          }|                     |dz             }| j        ||dz            }| j        ||dz            }| j        ||dz            }|dvr!|||fD ]}|                    d          r|c S d S d S )Nr%   r   r   )r   z<=z>=z!=r   )r   r   r   endswith)r   r
   r   r   singledoubletripleops           r   rm   z_RealFinder.get_assignment_type  s    &&v..33HqLAA	9y1}459y1}459y1}4511 	vv.  ;;s## III	 	 r   c                 d    |                      |          }|                     |          dz   }||fS r   )r   r   r   s       r   r:   z_RealFinder.get_primary_range  s7    ((00!!&))A-s|r   c                     t          d|          }|                     |          }|                     |          dz   }||fS r|   )r   r   r   r   s       r   r>   z_RealFinder.get_word_range  sD    Q%%f--!!&))A-s|r   r   )c                 N   |                      |          }| j                            ||          }|}d}|t          | j                  k     rV| j        |         |k    r|dz  }| j        |         |k    r|dz  }|dk    r||dz   fS |dz  }|t          | j                  k     V||fS r|   )r   r   r   r   )r   r
   openingclosingr   start_parensr   
open_counts           r   r]   z!_RealFinder.get_word_parens_range  s    !!&))yw44
c$)nn$ 	y7*  a
y7*  a
Q 1$eai00QJE c$)nn$ 	 e$$r   c                    g }g }|                      |dz
            }||k    r|}|                     |          }||k    r`| j        |         dvs| j        |dz
           dv r?|                      |dz
            }||k    r!| j        |         dv-| j        |dz
           dv ?| j        |dz   |dz                                            }| j        |         dk    r|dz
  }|dz  }||k    r<| j        |         dvr-|                      |dz
            }||k    r| j        |         dv-| j        |dz   |dz                                            }|                    |                     |          |f           n(|                    |                     |                     |                      |dz
            }||k    |                                 |                                 ||fS )Nr%   z=,z=!<>r   r   )r   r   r   rz   r   append_RealFinder__strip_type_hintreverse)	r   rf   rg   keywordsargscurrentprimary_startprimary
param_names	            r   re   z_RealFinder.get_parameters  sE   00::o 	B#M..w77GU" F	'"$.F26)GaK2HF2RF 881EE U" F	'"$.F26)GaK2HF2RF hw{]Q->>?EEGGGy!S( = '!1& J49W+=S+H J"<<Wq[IIG & J49W+=S+H J!XgkMA4E&EFLLNN
!7!7
!C!CW MNNNND227;;<<<44Wq[AAG# o 	B$ 	X~r   c                 :    |                     dd          d         S )N:r%   r   )split)r   r0   s     r   __strip_type_hintz_RealFinder.__strip_type_hint  s    zz#q!!!$$r   c                 P   |                      |          }|                     |          }|                     |          }|                     |          }|                     |dz
            }|                     |dz             }dx}}	||k    r| j        |         }	||k     r| j        |         }	 | j                            d||          }
n# t          $ r Y dS w xY w|	dvr|dvrdS | 	                    |          }||
k     o$| j        ||         
                                dk    S )Nr%   r   r   Fr   z,))r   r   r   r   r   r   r   r   r   rL   r   )r   r
   r1   r   r	  primary_endprev_char_offsetnext_char_offsetr   r   equals_offsetr   s               r   rk   z-_RealFinder.is_assigned_in_a_tuple_assignment"  s\   $$V,,  ((0088))&1199-!:KLL::;?KK ""	Iu$ 	4	"23Ic! 	4	"23I	 IOOC<<MM 	 	 	55	D  	Yd%: 	599&AA%U$)E,4F*G*M*M*O*OSU*UUs   0C 
CCc                     |                      |          }|                     |          \  }}| j        ||dz            S r   rs   r]   rz   r   r
   lparensrparenss       r   ro   z+_RealFinder.get_function_and_args_in_header9  sC    **62255f==x1,--r   def c                     	 | j                             ||          }|dk    s|                     |dz
            sn|dz  }@|dz   }|                     |          S )NTr   r%      )r   r   r}   r   )r   r
   
definitiondef_s       r   rs   z _RealFinder.find_function_offset>  sq    	Y__Z88F{ $"2"26A:">"> aKF		
 z..t444r   c                     |                      |d          }|                     |dd          \  }}| j        ||dz            S )Nzlambda )r   r  )r   r   r%   r  r  s       r   rq   z_RealFinder.get_lambda_and_argsG  sP    **6i*HH55fcSV5WWx1,--r   N)r   r   )r  )0rt   ru   rv   r   r   r   r   r   r   r}   r   rc   r   r   r   r4   r<   r   r   r_   rC   r   r[   r   rV   rQ   rE   rJ   r   r   rN   ri   rG   rS   r@   ra   rL   rY   rm   r:   r>   r]   re   r  rk   ro   rs   rq   r   r   r   r   r      s         " " "  
  Y Y Y  G G G        (  2+ + +
! ! !F  " " "D D D- - -  
 
 
) ) )	
 	
 	
; ; ;# # #  29 9 9  ; ; ;  	 	 	  
C 
C 
C# # #! ! !< < <
 
 
  
  % % % %  4% % %V V V.. . .
5 5 5 5. . . . .r   r   )r.   r   rope.base.simplifyr   r   r   r   r   r   r   r   <module>r"     s          + + +t= t= t= t= t= t= t= t=nD. D. D. D. D. D. D. D. D. D.r   