a XC?h� � @ s| d dl Z d dlZd dlZdgZG dd� d�Zdd� Zzd dlZW n eyV dZY n"0 e� e� j � e �dd� � d ZdS ) � N� Completerc @ s6 e Zd Zddd�Zdd� Zdd� Zdd � Zd d� ZdS ) r Nc C s6 |rt |t�std��|d u r&d| _nd| _|| _d S )Nznamespace must be a dictionary� r )� isinstance�dict� TypeError�use_main_ns� namespace)�selfr � r �0/opt/alt/python39/lib64/python3.9/rlcompleter.py�__init__' s zCompleter.__init__c C s� | j rtj| _|�� sB|dkr>tr8t�d� t�� dS dS nd S |dkrld|v r`| � |�| _ n| �|�| _ z| j | W S ty� Y d S 0 d S )Nr � � �.) r �__main__�__dict__r �strip�_readline_available�readlineZinsert_textZ redisplay�attr_matches�matches�global_matches� IndexError)r �text�stater r r �completeB s$ zCompleter.completec C s t |�r|d }|S )N�()�callable)r �val�wordr r r �_callable_postfixa s zCompleter._callable_postfixc C s� dd l }g }dh}t|�}|jD ]J}|d |� |kr |�|� |dv rP|d }n|dvr`|d }|�|� q | jtjfD ]J}|�� D ]<\}}|d |� |kr�||vr�|�|� |�| � ||�� q�qx|S )Nr �__builtins__> �try�finally�:> �True�pass�continue�False�None�else�break� ) �keyword�len�kwlist�add�appendr �builtinsr �itemsr ) r r r- r �seen�nr Znspacer r r r r f s$ zCompleter.global_matchesc C s� dd l }|�d|�}|sg S |�dd�\}}zt|| j�}W n tyR g Y S 0 tt|��}|�d� t |d�r�|� d� |�t|j �� g }t|�} |dkr�d} n|dkr�d } nd } |D ]�}|d | � |kr�| r�|d | d � | ks�d ||f }ttt|�|d �t��r|�|� q�t||d � } d u�rD|�| �| |�� q�|�|� q�|�sv| �s`�qv| dk�rpd } q�d } q�|�� |S )Nr z(\w+(\.\w+)*)\.(\w*)r � r! � __class__r �_�__z%s.%s)�re�match�group�evalr � Exception�set�dir�discard�hasattrr0 �update�get_class_membersr7 r. r �getattr�type�propertyr1 r �sort)r r r: �m�expr�attrZ thisobjectZwordsr r5 Znoprefixr r; �valuer r r r � sV ��� zCompleter.attr_matches)N)�__name__� __module__�__qualname__r r r r r r r r r r &