File: //proc/self/root/opt/python38/lib/python3.8/idlelib/__pycache__/calltip.cpython-38.opt-2.pyc
U
�i�_� � @ s� d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm Z G dd� d�Z
dd� ZdZd Z
d
Ze�d�ZdZd
ZdZdd� Zedkr�d dlmZ eddd� dS )� N)� calltip_w)�HyperParserc @ sX e Zd Zddd�Zdd� Zdd� Zddd �Zd
d� Zdd
� Zdd� Z dd� Z
dd� ZdS )�CalltipNc C s0 |d krd | _ n|| _ |j| _d | _| j| _d S �N)�editwin�text�active_calltip�_make_tk_calltip_window�_calltip_window)�selfr � r �./opt/python38/lib/python3.8/idlelib/calltip.py�__init__ s zCalltip.__init__c C s
d | _ d S r )r
�r r r r
�close s z
Calltip.closec C s t �| j�S r )r Z
CalltipWindowr r r r r
r s zCalltip._make_tk_calltip_windowc C s | j r| j �� d | _ d S r )r Zhidetip�r �eventr r r
�remove_calltip_window$ s
zCalltip.remove_calltip_windowc C s | � d� dS )NT�break��open_calltipr r r r
�force_open_calltip_event) s
z Calltip.force_open_calltip_eventc C s | � d� d S �NFr r r r r
�try_open_calltip_event. s zCalltip.try_open_calltip_eventc C s | j r| j jr| �d� d S r )r Z tipwindowr r r r r
�refresh_calltip_event5 s zCalltip.refresh_calltip_eventc C s� | � � t| jd�}|�d�}|s&d S |�|d � |�� }|sDd S |sZ|�d�dkrZd S | �|�}|sld S | �� | _ | j �
||d |d � d S )N�insert�(r ���� )r r r Zget_surrounding_bracketsZ set_indexZget_expression�find� fetch_tipr
r Zshowtip)r Z evalfuncsZhpZ sur_paren�
expression�argspecr r r
r 9 s
zCalltip.open_calltipc C sR z| j jjjj}W n tk
r* d }Y nX |rB|�dd|fi �S tt|��S d S )N�execZget_the_calltip) r �flistZpyshellZinterp�rpcclt�AttributeErrorZ
remotecall�get_argspec�
get_entity)r r! r% r r r
r L s
�zCalltip.fetch_tip)N)N)�__name__�
__module__�__qualname__r r r r r r r r r r r r r
r s
r c C s8 | r4t jtj�}zt| |�W S tk
r2 Y d S X d S r )�sys�modules�__main__�__dict__�eval�
BaseException)r! � namespacer r r
r( e s r( �U � z z(?<=\()\w*\,?\s*zSee source or doczinvalid method signaturez0 # '/' marks preceding args as positional-only.c
C s� z
| j }W n tk
r Y dS X t|tj�r2|n| }ztt�|��}W nD tk
r� } z&t|�}|� t
�rxt
W Y �
S d}W 5 d }~X Y nX d|kr�t|�ttt
� k r�|t
7 }t|t�r�|dkr�t}t|�tkr�tj|ttd�n|r�|gng }t|tj��r|j}nt| dd�}|�rv|�dt�d t� D ]F}|�� }|�sF �qvt|�tk�rh|d td � d }|�|� �q.d�|�}|�p�tS ) N� �/z())�subsequent_indent�__doc__�
� z...)�__call__r1 �
isinstance�types�
MethodType�str�inspectZ signature� Exception�
startswith�_invalid_method�len� _MAX_COLS�_argument_positional�type�_default_callable_argspec�textwrap�wrap�_INDENTr8 �getattr�split�
_MAX_LINES�strip�append�join) �obZob_callZfobr"