3 \� � @ s~ d dl Z d dlZd dlZdgZG dd� d�Zdd� Zyd dlZW n ek rX dZY n"X ej e� j � e jdd� � d ZdS ) � N� Completerc @ s6 e Zd Zddd�Zdd� Zdd� Zdd � Zd d� ZdS ) r Nc C s8 |rt |t� rtd��|d kr(d| _nd| _|| _d S )Nznamespace must be a dictionary� r )� isinstance�dict� TypeError�use_main_ns� namespace)�selfr � r �#/usr/lib64/python3.6/rlcompleter.py�__init__' s zCompleter.__init__c C s� | j rtj| _|j� sB|dkr>tr8tjd� tj� dS dS nd S |dkrld|kr`| j |�| _ n| j|�| _ y | j | S tk r� d S X 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|�}xT|jD ]J}|d |� |kr"|j|� |dkrR|d }n|dkrb|d }|j|� q"W x^| jtjgD ]N}xH|j� D ]<\}}|d |� |kr�||kr�|j|� |j| j ||�� q�W q~W |S )Nr �__builtins__�finally�try�:�False�None�True�break�continue�pass�else� > r" r# > r% r&