grthtrhthjhtyjytjytkergtrhtrjytjerhrfh3 \¹ã @s~ddlZddlZddlZdgZGdd„dƒZdd„Zy ddlZWnek rXdZYn"Xej eƒj ƒej dd„ƒd ZdS) éNÚ Completerc@s6eZdZd dd„Zdd„Zdd„Zdd „Zd d „ZdS) rNcCs8|rt|tƒ rtdƒ‚|dkr(d|_n d|_||_dS)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 Cs�|jrtj|_|jƒsB|dkr>tr8tjdƒtjƒdSdSndS|dkrld|kr`|j |ƒ|_ n |j |ƒ|_ y |j |St k rŠdSXdS)Nrú ÚÚ.) rÚ__main__Ú__dict__rÚstripÚ_readline_availableÚreadlineZ insert_textZ redisplayÚ attr_matchesÚmatchesÚglobal_matchesÚ IndexError)r ÚtextÚstater r r ÚcompleteBs$   zCompleter.completecCst|ƒr|d}|S)Nú()Úcallable)r ÚvalÚwordr r r Ú_callable_postfixaszCompleter._callable_postfixc CsÔddl}g}dh}t|ƒ}xT|jD]J}|d|…|kr"|j|ƒ|dkrR|d}n|dkrb|d }|j|ƒq"Wx^|jtjgD]N}xH|jƒD]<\}}|d|…|krŒ||krŒ|j|ƒ|j|j ||ƒƒqŒWq~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 rr-rÚseenÚnrZnspacerr r r rfs(    zCompleter.global_matchescCsnddl}|jd|ƒ}|sgS|jddƒ\}}yt||jƒ}Wntk rPgSXtt|ƒƒ}|jdƒt |dƒrŒ|j dƒ|j t |j ƒƒg}t|ƒ} |dkr¦d} n|dkr´d } nd} x¨x~|D]v} | d| …|koì| oê| d| d…| k rÀd || f} yt|| ƒ} Wntk �rYnX|j| | ƒ} |j| ƒqÀW|�sH| �rJP| dk�rZd } qºd} qºW|jƒ|S) Nrz(\w+(\.\w+)*)\.(\w*)rér!Ú __class__rÚ_Ú__z%s.%s)ÚreÚmatchÚgroupÚevalrÚ ExceptionÚsetÚdirÚdiscardÚhasattrr0ÚupdateÚget_class_membersr7r.Úgetattrr r1Úsort)r rr:ÚmÚexprÚattrZ thisobjectZwordsrr5Znoprefixrr;rr r r r‚sN          zCompleter.attr_matches)N)Ú__name__Ú __module__Ú __qualname__r rr rrr r r r r&s  cCs2t|ƒ}t|dƒr.x|jD]}|t|ƒ}qW|S)NÚ __bases__)r@rBrMrD)ÚklassZretÚbaser r r rD¼s   rDFcCs tjdƒS)N)rÚ set_completerr r r r ÚÌsrQT) Úatexitr2rÚ__all__rrDrÚ ImportErrorrrPrÚregisterr r r r Ú s