a
´ià ã @ 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
ú#/usr/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ÚFalseÚbreakÚNoneÚcontinueÚpassÚelseú )
Ú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
thisobjectÚwordsr 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 &