
    z%ic                         	 d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm	Z	  G d d      Z
d ZdZdZd	Z ej                  d
      ZdZdZd Zedk(  rd dlmZ  edd       yy)    N)	calltip_w)HyperParserc                   F    e Zd ZddZd Zd ZddZd Zd Zd Z	d	 Z
d
 Zy)CalltipNc                 x    |d | _         y || _         |j                  | _        d | _        | j                  | _        y N)editwintextactive_calltip_make_tk_calltip_window_calltip_window)selfr	   s     C/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/idlelib/calltip.py__init__zCalltip.__init__   s6    ?DL"DLDI"&D#'#?#?D     c                     d | _         y r   )r   r   s    r   closezCalltip.close   s
    #r   c                 @    t        j                  | j                        S r   )r   CalltipWindowr
   r   s    r   r   zCalltip._make_tk_calltip_window    s    &&tyy11r   c                 `    | j                   r"| j                   j                          d | _         y y r   )r   hidetipr   events     r   remove_calltip_windowzCalltip.remove_calltip_window$   s*    '')"&D r   c                 (    	 | j                  d       y)NTbreakopen_calltipr   s     r   force_open_calltip_eventz Calltip.force_open_calltip_event)   s    C$r   c                 (    	 | j                  d       y NFr   r   s     r   try_open_calltip_eventzCalltip.try_open_calltip_event.   s    	 	% r   c                 n    | j                   r)| j                   j                  r| j                  d       y y y r"   )r   	tipwindowr   r   s     r   refresh_calltip_eventzCalltip.refresh_calltip_event5   s0    4#6#6#@#@e$ $Ar   c                    	 t        | j                  d      }|j                  d      }|s| j                          y | j                  rWt        t        |d   j                  d            \  }}||f| j                  j                  | j                  j                  fk(  ry |j                  |d          	 |j                         }|sy | j                          |s|j                  d      dk7  ry | j                  |      }|sy | j                         | _        | j                  j!                  ||d   |d          y # t        $ r d }Y w xY w)Ninsert(r   .   )r   r	   get_surrounding_bracketsr   r   mapintsplit	parenlineparencol	set_indexget_expression
ValueErrorfind	fetch_tipr   showtip)r   	evalfuncshp	sur_parenopener_line
opener_col
expressionargspecs           r   r   zCalltip.open_calltip9   sI   	 x0//4	 &&( &)#y|/A/A#/F&G#Kj)$$..0C0C0L0LMN 
Yq\"	**,J   	""$ jooc2b8..,"224##GYq\9Q<H/  	J	s   4D; ;E	E	c                     	 	 | j                   j                  j                  j                  j                  }|r|j                  dd|fi       S t        t        |            S # t
        $ r d }Y 8w xY w)Nexecget_the_calltip)	r	   flistpyshellinterprpccltAttributeError
remotecallget_argspec
get_entity)r   r>   rF   s      r   r7   zCalltip.fetch_tipl   sy    		\\''//66==F $$V->&0]B8 8 z*566  	F	s   4A" "A0/A0r   )__name__
__module____qualname__r   r   r   r   r    r#   r&   r   r7    r   r   r   r      s2    @$2'

!%1If7r   r   c                     	 | r/i t         j                  t        j                  }	 t	        | |      S y # t
        $ r Y y w xY wr   )sysmodules__main____dict__evalBaseException)r>   	namespaces     r   rJ   rJ      sR     8s{{8h&7&78		
I..   	 	s   4 	A A U      z    z(?<=\()\w*\,?\s*zSee source or doczinvalid method signaturec                    	 	 | j                   }t        |t        j                        r|n| }	 t        t        j                  |            }t        |t              r|dk(  rt        }t        |      t        kD  r t        j                   |t        t"              n|r|gng }t        j$                  |       }|rh|j'                  dt(              d t(         D ]H  }|j+                         }|s n4t        |      t        kD  r|d t        dz
   dz   }|j-                  |       J dj/                  |      }|xs t        S # t        $ r Y yw xY w# t        $ r8}t        |      }|j                  t              rt        cY d }~S d}Y d }~9d }~ww xY w)N z())subsequent_indent
   z...)__call__rU   
isinstancetypes
MethodTypestrinspect	signature	Exception
startswith_invalid_methodtype_default_callable_argspeclen	_MAX_COLStextwrapwrap_INDENTgetdocr0   
_MAX_LINESstripappendjoin)	obob_callfobr?   errmsglinesdoclines	            r   rI   rI      s`   ++  )9)9:'Cg'',- #tD+ Gy( ]]7II;Bwi 
 ..
C
IIdJ/< 	D::<D4y9$Oi!m,u4LL	 iiG///E    #h>>/*""Gs4   D: E	 :	EE		F
%F7F
=FF
rR   )mainzidlelib.idle_test.test_calltip   )	verbosity)rR   rc   rerP   rl   r`   idlelibr   idlelib.hyperparserr   r   rJ   rk   rp   rn   compile_first_paramri   rg   rI   rK   unittestr|   rN   r   r   <module>r      s      	 
    +p7 p7f 	

rzz-./ ,.0b z	)Q7 r   