] :@sRddlZddlZdgZdZejejdZGdddZdS)NCmdz(Cmd) _c@s9eZdZeZeZdZdZdZ dZ dZ dZ dZ dZdZd ddd d Zdd d ZddZddZddZddZddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Z d,d-d.Z!dS)/r=Nz(Documented commands (type help ):zMiscellaneous help topics:zUndocumented commands:z*** No help on %sZtabcCs^|dk r||_n tj|_|dk r<||_n tj|_g|_||_dS)N)stdinsysstdoutcmdqueue completekey)selfr rr r (/opt/alt/python35/lib64/python3.5/cmd.py__init__Ls       z Cmd.__init__cCs|j|jrt|jrtyCddl}|j|_|j|j|j|jdWnt k rsYnXz7|dk r||_ |j r|j j t |j dd}x|s|jr|jjd}n|jryt|j}Wqltk rd}YqlXnS|j j |j|j j|jj}t|s]d}n|jd}|j|}|j|}|j||}qW|jWd|jr|jry ddl}|j|jWnt k rYnXXdS)Nrz : complete EOFz )preloop use_rawinputr readlineZ get_completerZ old_completerZ set_completercompleteparse_and_bind ImportErrorintror writestrr popinputpromptEOFErrorflushrlenrstripprecmdonecmdpostcmdpostloop)r rrstopliner r rcmdloopbsN               z Cmd.cmdloopcCs|S)Nr )r r'r r rr"sz Cmd.precmdcCs|S)Nr )r r&r'r r rr$sz Cmd.postcmdcCsdS)Nr )r r r rrsz Cmd.preloopcCsdS)Nr )r r r rr%sz Cmd.postloopcCs|j}|sdd|fS|ddkrFd|dd}nC|ddkrt|dr|d|dd}n dd|fSdt|}}x-||kr|||jkr|d}qW|d|||dj}}|||fS)Nr?zhelp r!Zdo_shellzshell )striphasattrr identchars)r r'incmdargr r r parselines   "'z Cmd.parselinec Cs|j|\}}}|s(|jS|dkrA|j|S||_|dkr_d|_|dkrx|j|Syt|d|}Wntk r|j|SYnX||SdS)Nrrdo_)r2 emptylinedefaultlastcmdgetattrAttributeError)r r'r0r1funcr r rr#s          z Cmd.onecmdcCs|jr|j|jSdS)N)r6r#)r r r rr4s z Cmd.emptylinecCs|jjd|dS)Nz*** Unknown syntax: %s )r r)r r'r r rr5sz Cmd.defaultcGsgS)Nr )r ignoredr r rcompletedefaultszCmd.completedefaultcs'd|fdd|jDS)Nr3cs/g|]%}|jr|ddqS)N) startswith).0a)dotextr r s z%Cmd.completenames..) get_names)r textr:r )r@r completenamess zCmd.completenamesc Cs'|dkrddl}|j}|j}t|t|}|j|}|j|}|dkr|j|\} } } | dkr|j} qyt|d| } Wqt k r|j} YqXn |j } | |||||_ y|j |SWnt k r"dSYnXdS)NrrZ complete_) rZget_line_bufferlstripr Z get_begidxZ get_endidxr2r;r7r8rDZcompletion_matches IndexError) r rCstaterZorigliner'strippedZbegidxZendidxr0argsZfooZcompfuncr r rrs*          z Cmd.completecCs t|jS)N)dir __class__)r r r rrBsz Cmd.get_namescsHt|j}tfdd|jD}t||BS)Nc3s6|],}|jddr|ddVqdS)help_rN)r=)r>r?)rIr r sz$Cmd.complete_help..)setrDrBlist)r rIcommandsZtopicsr )rIr complete_helps%zCmd.complete_helpc Cs6|ryt|d|}Wntk ry>t|d|j}|rj|jjdt|dSWntk rYnX|jjdt|j|fdSYnX|n{|j}g}g}i}x8|D]0}|dddkrd||dd cs)g|]}t|ts|qSr ) isinstancer)r>r.)rPr rrAds z!Cmd.columnize..z list[i] not a string for i in %sz, rz%s rrz rj) r rranger TypeErrorjoinmaprmaxrXljust)r rPZ displaywidthZ nonstringssizeZnrowsZncolsZ colwidthsZtotwidthcolZcolwidthrowr.xZtextsr )rPrreZsZ%             z Cmd.columnize)"__name__ __module__ __qualname__PROMPTr IDENTCHARSr-rdr6rrYr[r\r^rVrrr(r"r$rr%r2r#r4r5r;rDrrBrRrcrZrer r r rr4s: 4           . )stringr__all__rx ascii_lettersdigitsryrr r r r-s