U e5d¹ã@s~ddlZddlZddlZdgZGdd„dƒZdd„Zz ddlZWnek rXdZYn"Xe  eƒj ¡e  dd„¡d ZdS) éNÚ Completerc@s6eZdZd dd„Zdd„Zdd„Zdd „Zd d „ZdS) rNcCs6|rt|tƒstdƒ‚|dkr&d|_n d|_||_dS)Nznamespace must be a dictionaryér)Ú isinstanceÚdictÚ TypeErrorÚ use_main_nsÚ namespace)Úselfr©r ú#/usr/lib64/python3.8/rlcompleter.pyÚ__init__'s zCompleter.__init__cCs”|jrtj|_| ¡sB|dkr>tr8t d¡t ¡dSdSndS|dkrld|kr`|  |¡|_ n |  |¡|_ z |j |WSt k rŽYdSXdS)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|ƒ}|jD]J}|d|…|kr | |¡|dkrP|d}n|dkr`|d}| |¡q |jtjfD]J}| ¡D]<\}}|d|…|kr„||kr„| |¡| |  ||¡¡q„qx|S)NrÚ __builtins__>ÚtryÚfinallyú:>ÚbreakÚNoneÚpassÚcontinueÚFalseÚTrueÚelseú ) ÚkeywordÚlenÚkwlistÚaddÚappendrÚbuiltinsrÚitemsr ) r rr-rÚseenÚnrZnspacerr r r rfs$     zCompleter.global_matchesc Cshddl}| d|¡}|sgS| dd¡\}}zt||jƒ}Wntk rTgYSXtt|ƒƒ}| d¡t |dƒr�|  d¡|  t |j ƒ¡g}t|ƒ} |dkrªd} n|dkr¸d } nd} |D]t} | d| …|krÀ| rì| d| d…| ksÀd || f} zt|| ƒ} Wntk �rYnX| | | ¡} | | ¡qÀ|�s\| �sF�q\| dk�rVd } q¼d} q¼| ¡|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‚sR       ÿÿ     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__)r@rBrMrD)ÚklassZretÚbaser r r rD¼s   rDFcCs t d¡S)N)rÚ set_completerr r r r ÚÌórQT) Úatexitr2rÚ__all__rrDrÚ ImportErrorrrPrÚregisterr r r r Ú s