
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \¹  ã               @   s~   d dl Z d dlZd dlZdgZG dd„ dƒZdd„ Zyd dlZW n ek
rX   dZY n"X ej	eƒ j
ƒ e jdd„ ƒ d	ZdS )
é    NÚ	Completerc               @   s6   e Zd Zddd„Zdd„ Zdd„ Zdd	„ Zd
d„ ZdS )r   Nc             C   s8   |rt |tƒ rtdƒ‚|d kr(d| _nd| _|| _d S )Nznamespace must be a dictionaryé   r   )Ú
isinstanceÚdictÚ	TypeErrorÚuse_main_nsÚ	namespace)Úselfr   © r
   ú#/usr/lib64/python3.6/rlcompleter.pyÚ__init__'   s    zCompleter.__init__c             C   s�   | j rtj| _|jƒ sB|dkr>tr8tjdƒ tjƒ  dS dS nd S |dkrld|kr`| j	|ƒ| _
n| j|ƒ| _
y
| j
| S  tk
rŠ   d S X d S )Nr   ú	Ú Ú.)r   Ú__main__Ú__dict__r   ÚstripÚ_readline_availableÚreadlineZinsert_textZ	redisplayÚattr_matchesÚmatchesÚglobal_matchesÚ
IndexError)r	   ÚtextÚstater
   r
   r   ÚcompleteB   s$    

zCompleter.completec             C   s   t |ƒr|d }|S )Nú()Úcallable)r	   ÚvalÚwordr
   r
   r   Ú_callable_postfixa   s    zCompleter._callable_postfixc       	   	   C   sÔ   dd l }g }dh}t|ƒ}xT|jD ]J}|d |… |kr"|j|ƒ |dkrR|d }n|dkrb|d }|j|ƒ q"W x^| jtjgD ]N}xH|jƒ D ]<\}}|d |… |krŒ||krŒ|j|ƒ |j| j	||ƒƒ qŒW q~W |S )Nr   Ú__builtins__ÚfinallyÚtryú:ÚFalseÚNoneÚTrueÚbreakÚcontinueÚpassÚelseú >   r"   r#   >   r%   r(   r'   r)   r&   r+   r*   )
ÚkeywordÚlenÚkwlistÚaddÚappendr   Úbuiltinsr   Úitemsr    )	r	   r   r-   r   ÚseenÚnr   Znspacer   r
   r
   r   r   f   s(    

 
zCompleter.global_matchesc             C   sn  dd l }|jd|ƒ}|sg S |jddƒ\}}yt|| jƒ}W n tk
rP   g S X tt|ƒƒ}|jdƒ t	|dƒrŒ|j
dƒ |jt|jƒƒ g }t|ƒ}	|dkr¦d}
n|dkr´d	}
nd }
x¨x~|D ]v}|d |	… |koì|
oê|d |	d … |
k rÀd
||f }yt||ƒ}W n tk
�r   Y nX | j||ƒ}|j|ƒ qÀW |�sH|
 �rJP |
dk�rZd	}
qºd }
qºW |jƒ  |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.   Úgetattrr    r1   Úsort)r	   r   r:   ÚmÚexprÚattrZ
thisobjectZwordsr   r5   Znoprefixr   r;   r   r
   r
   r   r   ‚   sN    




zCompleter.attr_matches)N)Ú__name__Ú
__module__Ú__qualname__r   r   r    r   r   r
   r
   r
   r   r   &   s
   
c             C   s2   t | ƒ}t| dƒr.x| jD ]}|t|ƒ }qW |S )NÚ	__bases__)r@   rB   rM   rD   )ÚklassZretÚbaser
   r
   r   rD   ¼   s
    
rD   Fc               C   s
   t jd ƒS )N)r   Úset_completerr
   r
   r
   r   Ú<lambda>Ì   s    rQ   T)Úatexitr2   r   Ú__all__r   rD   r   ÚImportErrorr   rP   r   Úregisterr
   r
   r
   r   Ú<module>    s    
