й¼]£ ã @ 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&