й¼]£ ã @ s§ d d l Z d d l Z d d l Z d g Z Gd d „ d ƒ Z d d „ Z y d d l Z Wn e k
rv d Z Yn- Xe j e ƒ j
ƒ e j d d „ ƒ d Z d S)
é NÚ Completerc @ sO e Z d Z d d d „ Z d d „ Z d d „ Z d d „ Z d
d „ Z d S)r Nc C sP | r" t | t ƒ r" t d ƒ ‚ | d k r: d | _ n d | _ | | _ d S)Nznamespace must be a dictionaryé r )Ú
isinstanceÚdictÚ TypeErrorÚuse_main_nsÚ namespace)Úselfr © r
ú0/opt/alt/python35/lib64/python3.5/rlcompleter.pyÚ__init__' s zCompleter.__init__c C sÄ | j r t j | _ | j ƒ sY | d k rU t rN t j d ƒ t j ƒ d Sd Sn d S| d k r˜ d | k r† | j | ƒ | _
n | j | ƒ | _
y | j
| SWn t k
r¿ d SYn Xd S)Nr ú Ú Ú.)
r Ú__main__Ú__dict__r ÚstripÚ_readline_availableÚreadlineZinsert_textZ redisplayÚattr_matchesÚmatchesÚglobal_matchesÚ
IndexError)r ÚtextÚstater
r
r ÚcompleteB s$
zCompleter.completec C s t | ƒ r | d } | S)Nú()Úcallable)r ÚvalÚwordr
r
r Ú_callable_postfixa s
zCompleter._callable_postfixc C sñ d d l } g } d h } t | ƒ } xA | j D]6 } | d | … | k r1 | j | ƒ | j | ƒ q1 Wx | j t j g D]k } xb | j ƒ D]T \ } } | d | … | k r‘ | | k r‘ | j | ƒ | j | j | | ƒ ƒ q‘ Wq~ W| S)Nr Ú__builtins__)
ÚkeywordÚlenÚkwlistÚaddÚappendr Úbuiltinsr Úitemsr ) r r r" r ÚseenÚnr Znspacer r
r
r r f s
"
!zCompleter.global_matchesc C s[ d d l } | j d | ƒ } | s( g S| j d d ƒ \ } } y t | | j ƒ } Wn t k
rn g SYn Xt t | ƒ ƒ } | j d ƒ t | d ƒ rÀ | j
d ƒ | j t | j
ƒ ƒ g } t | ƒ } xx | D]p }
|
d | … | k rÙ y t | |
ƒ } Wn t k
rwÙ Yn X| j | d | |
f ƒ }
| j |
ƒ qÙ W| j ƒ | S)Nr z(\w+(\.\w+)*)\.(\w*)r é r! Ú __class__z%s.%s)ÚreÚmatchÚgroupÚevalr Ú ExceptionÚsetÚdirÚdiscardÚhasattrr% ÚupdateÚget_class_membersr, r# Úgetattrr r&