o ­=?h‰ã@sˆ ddlZddlZddlZddlZdgZGdd„dƒZdd„ZzddlZWn ey1dZ YdSwe  eƒj ¡e  dd„¡d Z dS) éNÚ Completerc@s6eZdZd dd„Zdd„Zdd„Zdd „Zd d „ZdS) rNcCs: |r t|tƒs tdƒ‚|durd|_dSd|_||_dS)Nznamespace must be a dictionaryér)Ú isinstanceÚdictÚ TypeErrorÚ use_main_nsÚ namespace)Úselfr©r ú2/opt/alt/python310/lib64/python3.10/rlcompleter.pyÚ__init__(s  zCompleter.__init__cCsŽ |jrtj|_| ¡s!|dkrtrt d¡t ¡dSdSdS|dkr6d|vr0|  |¡|_ n|  |¡|_ z|j |WSt yFYdSw)Nrú ÚÚ.) rÚ__main__Ú__dict__rÚstripÚ_readline_availableÚreadlineZ insert_textZ redisplayÚ attr_matchesÚmatchesÚglobal_matchesÚ IndexError)r ÚtextÚstater r r ÚcompleteCs(    ÿzCompleter.completecCsJt|ƒr#|d7}zt |¡js|d7}W|SW|Sty"Y|Sw|S)Nú(ú))ÚcallableÚinspectZ signatureZ parametersÚ ValueError)r ÚvalÚwordr r r Ú_callable_postfixbs  û ýýzCompleter._callable_postfixc CsÊ ddl}g}dh}t|ƒ}|jD]%}|d|…|kr6| |¡|dvr)|d}n|dvr1|d}| |¡q|jtjfD]%}| ¡D]\}}|d|…|kra||vra| |¡| |  ||¡¡qCq=|S)NrÚ __builtins__>ÚtryÚfinallyú:>ÚbreakÚNoneÚFalseÚTrueÚpassÚcontinueÚelseú ) ÚkeywordÚlenÚkwlistÚaddÚappendrÚbuiltinsrÚitemsr#) r rr0rÚseenÚnr"Znspacer!r r r rms,    € €ýzCompleter.global_matchescCsz ddl}| d|¡}|sgS| dd¡\}}zt||jƒ}Wn ty*gYSwtt|ƒƒ}| d¡t |dƒrH|  d¡|  t |j ƒ¡g}t|ƒ} |dkrUd} n |dkr\d } nd} |D]F} | d| …|kr§| rw| d| d…| ks§d || f} ttt|ƒ| dƒtƒrŽ| | ¡qat|| dƒ} dur¢| | | | ¡¡qa| | ¡qa|s¬| s­n | dkr´d } nd} q_| ¡|S) Nrz(\w+(\.\w+)*)\.(\w*)rér$Ú __class__rÚ_Ú__Tz%s.%s)ÚreÚmatchÚgroupÚevalrÚ ExceptionÚsetÚdirÚdiscardÚhasattrr3ÚupdateÚget_class_membersr:r1rÚgetattrÚtypeÚpropertyr4r#Úsort)r rr=ÚmÚexprÚattrZ thisobjectZwordsrr8Znoprefixr"r>Úvaluer r r r‰s^  ÿ    ÿ ÿ  €èzCompleter.attr_matches©N)Ú__name__Ú __module__Ú __qualname__r rr#rrr r r r r's   cCs.t|ƒ}t|dƒr|jD]}|t|ƒ}q |S)NÚ __bases__)rCrErTrG)ÚklassZretÚbaser r r rGÊs   rGFcCs t d¡SrP)rÚ set_completerr r r r ÚÚs rXT) Úatexitr5rrÚ__all__rrGrÚ ImportErrorrrWrÚregisterr r r r Ús"$   ÿ