U e5d@s~ddlZddlZddlZdgZGdddZddZz ddlZWnek rXdZYn"Xe ej e ddd ZdS) N Completerc@s6eZdZd ddZddZddZdd Zd d ZdS) rNcCs6|rt|tstd|dkr&d|_n d|_||_dS)Nznamespace must be a dictionaryr) isinstancedict TypeError use_main_ns namespace)selfrr #/usr/lib64/python3.8/rlcompleter.py__init__'s zCompleter.__init__cCs|jrtj|_|sB|dkr>tr8tdtdSdSndS|dkrld|kr`| ||_ n | ||_ z |j |WSt k rYdSXdS)Nr .) r__main____dict__rstrip_readline_availablereadlineZ insert_textZ redisplay attr_matchesmatchesglobal_matches IndexError)r textstater r r completeBs$   zCompleter.completecCst|r|d}|S)N()callable)r valwordr r r _callable_postfixaszCompleter._callable_postfixc Csddl}g}dh}t|}|jD]J}|d||kr |||dkrP|d}n|dkr`|d}||q |jtjfD]J}|D]<\}}|d||kr||kr|||| ||qqx|S)Nr __builtins__>tryfinally:>breakNonepasscontinueFalseTrueelse ) keywordlenkwlistaddappendrbuiltinsritemsr ) r rr-rseennrZnspacerr r r rfs$     zCompleter.global_matchesc Cshddl}|d|}|sgS|dd\}}zt||j}Wntk rTgYSXtt|}|dt |dr| d| t |j g}t|} |dkrd} n|dkrd } nd} |D]t} | d| |kr| r| d| d| ksd || f} zt|| } Wntk rYnX|| | } || q|s\| sFq\| dkrVd } qd} q||S) Nrz(\w+(\.\w+)*)\.(\w*)rr! __class__r___z%s.%s)rematchgroupevalr Exceptionsetdirdiscardhasattrr0updateget_class_membersr7r.getattrr r1sort)r rr:mexprattrZ thisobjectZwordsrr5Znoprefixrr;rr r r rsR            zCompleter.attr_matches)N)__name__ __module__ __qualname__r rr rrr r r r r&s  cCs.t|}t|dr*|jD]}|t|}q|S)N __bases__)r@rBrMrD)klassZretbaser r r rDs   rDFcCs tdS)N)r set_completerr r r r rQT) atexitr2r__all__rrDr ImportErrorrrPrregisterr r r r  s