
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,a¹  ã                   @   s~   d dl Z d dlZd dlZdgZG dd„ dƒZdd„ Zzd dlZW n ek
rX   dZY n"X e 	eƒ j
¡ e  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   s6   |rt |tƒs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
   ú0/opt/alt/python38/lib64/python3.8/rlcompleter.pyÚ__init__'   s    zCompleter.__init__c                 C   s”   | j rtj| _| ¡ sB|dkr>tr8t d¡ t ¡  dS dS nd S |dkrld|kr`|  	|¡| _
n|  |¡| _
z| j
| W S  tk
rŽ   Y 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|ƒ}|jD ]J}|d |… |kr | |¡ |dkrP|d }n|dkr`|d }| |¡ q | jtjfD ]J}| ¡ D ]<\}}|d |… |kr„||kr„| |¡ | |  	||¡¡ q„qx|S )Nr   Ú__builtins__>   ÚtryÚfinallyú:>   ÚbreakÚTrueÚFalseÚpassÚNoneÚelseÚcontinueú )
Ú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   sh  dd l }| d|¡}|sg S | dd¡\}}zt|| jƒ}W n tk
rT   g  Y S X tt|ƒƒ}| d¡ t	|dƒr�| 
d¡ | t|jƒ¡ g }t|ƒ}	|dkrªd}
n|dkr¸d	}
nd }
|D ]t}|d |	… |krÀ|
rì|d |	d … |
ksÀd
||f }zt||ƒ}W n tk
�r   Y nX |  ||¡}| |¡ qÀ|�s\|
�sF�q\|
dk�rVd	}
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.   Úgetattrr    r1   Úsort)r	   r   r:   ÚmÚexprÚattrZ
thisobjectZwordsr   r5   Znoprefixr   r;   r   r
   r
   r   r   ‚   sR    



ÿÿ
zCompleter.attr_matches)N)Ú__name__Ú
__module__Ú__qualname__r   r   r    r   r   r
   r
   r
   r   r   &   s
   
c                 C   s.   t | ƒ}t| dƒr*| jD ]}|t|ƒ }q|S )NÚ	__bases__)r@   rB   rM   rD   )ÚklassZretÚbaser
   r
   r   rD   ¼   s
    

rD   Fc                   C   s
   t  d ¡S )N)r   Úset_completerr
   r
   r
   r   Ú<lambda>Ì   ó    rQ   T)Úatexitr2   r   Ú__all__r   rD   r   ÚImportErrorr   rP   r   Úregisterr
   r
   r
   r   Ú<module>    s    
