B Y" @ s~ d dl Z d dlZd dlZdgZG dd dZdd Zyd dlZW n ek rX dZY n"X e e j e dd d ZdS ) N Completerc @ s6 e Zd ZdddZdd Zdd Zdd Zd d ZdS ) r Nc C s6 |rt |tstd|d kr&d| _nd| _|| _d S )Nznamespace must be a dictionary r ) isinstancedict TypeErroruse_main_ns namespace)selfr r 0/opt/alt/python37/lib64/python3.7/rlcompleter.py__init__' s zCompleter.__init__c C s | j rtj| _| sB|dkr>tr8td t dS dS nd S |dkrld|kr`| || _ n| || _ y | j | S tk r d S X d S )Nr .) r __main____dict__r strip_readline_availablereadlineZinsert_textZ redisplayattr_matchesmatchesglobal_matches IndexError)r textstater r r completeB s$ zCompleter.completec C s t |r|d }|S )N()callable)r valwordr r r _callable_postfixa s zCompleter._callable_postfixc C s dd l }g }dh}t|}xT|jD ]J}|d | |kr"|| |dkrR|d }n|dkrb|d }|| q"W x^| jtjgD ]N}xH| D ]<\}}|d | |kr||kr|| || || qW q~W |S )Nr __builtins__> tryfinally:> elseTruecontinueFalsepassNonebreak ) keywordlenkwlistaddappendr builtinsr itemsr ) r r r- r seennr Znspacer r r r r f s$ zCompleter.global_matchesc C sj dd l }|d|}|sg S |dd\}}yt|| j}W n tk rP g S X tt|}|d t |dr| d |t|j g }t|} |dkrd} n|dkrd } nd } xx||D ]t}|d | |kr| r|d | d | ksd ||f }yt||} W n tk r Y nX | | |}|| qW |sD| sFP | dkrVd } qd } qW | |S )Nr z(\w+(\.\w+)*)\.(\w*)r r! __class__r ___z%s.%s)rematchgroupevalr Exceptionsetdirdiscardhasattrr0 updateget_class_membersr7 r. getattrr r1 sort)r r r: mexprattrZ thisobjectZwordsr r5 Znoprefixr r; r r r r r sN zCompleter.attr_matches)N)__name__ __module____qualname__r r r r r r r r r r &