
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \:  ã               @   s<   d dl Z d dlZdgZdZe je j d ZG dd„ dƒZdS )é    NÚCmdz(Cmd) Ú_c               @   sÎ   e Zd ZeZeZdZdZdZ	dZ
dZdZdZdZdZd/d
d„Zd0dd„Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Z d1d-d.„Z!dS )2r   ú=Ú Nz(Documented commands (type help <topic>):zMiscellaneous help topics:zUndocumented commands:z*** No help on %sé   Útabc             C   s@   |d k	r|| _ ntj | _ |d k	r(|| _ntj| _g | _|| _d S )N)ÚstdinÚsysÚstdoutÚcmdqueueÚcompletekey)Úselfr   r   r
   © r   ú/usr/lib64/python3.6/cmd.pyÚ__init__L   s    zCmd.__init__c             C   sŠ  | j ƒ  | jr\| jr\y2dd l}|jƒ | _|j| jƒ |j| jd ƒ W n t	k
rZ   Y nX zæ|d k	rl|| _
| j
rˆ| jjt| j
ƒd ƒ d }xª|�s6| jr¨| jjdƒ}nl| jrØyt| jƒ}W n tk
rÔ   d}Y nX n<| jj| jƒ | jjƒ  | jjƒ }t|ƒ�s
d}n
|jdƒ}| j|ƒ}| j|ƒ}| j||ƒ}qŽW | jƒ  W d | j�r„| j�r„ydd l}|j| jƒ W n t	k
�r‚   Y nX X d S )Nr   z
: completeÚ
ÚEOFz
)ÚpreloopÚuse_rawinputr   ÚreadlineZget_completerZold_completerZset_completerÚcompleteÚparse_and_bindÚImportErrorÚintror
   ÚwriteÚstrr   ÚpopÚinputÚpromptÚEOFErrorÚflushr   ÚlenÚrstripÚprecmdÚonecmdÚpostcmdÚpostloop)r   r   r   ÚstopÚliner   r   r   Úcmdloopb   sN    






zCmd.cmdloopc             C   s   |S )Nr   )r   r(   r   r   r   r#   –   s    z
Cmd.precmdc             C   s   |S )Nr   )r   r'   r(   r   r   r   r%   �   s    zCmd.postcmdc             C   s   d S )Nr   )r   r   r   r   r   ¡   s    zCmd.preloopc             C   s   d S )Nr   )r   r   r   r   r&   ¥   s    zCmd.postloopc             C   sÀ   |j ƒ }|sd d |fS |d dkr4d|dd …  }n2|d dkrft| dƒr\d|dd …  }n
d d |fS dt|ƒ }}x"||k r–|| | jkr–|d }qvW |d |… ||d … j ƒ  }}|||fS )Nr   ú?zhelp r   ú!Zdo_shellzshell )ÚstripÚhasattrr!   Ú
identchars)r   r(   ÚiÚnÚcmdÚargr   r   r   Ú	parseline¬   s    


 zCmd.parselinec             C   sŽ   | j |ƒ\}}}|s| jƒ S |d kr.| j|ƒS || _|dkrBd| _|dkrT| j|ƒS yt| d| ƒ}W n tk
r€   | j|ƒS X ||ƒS d S )Nr   r   Údo_)r3   Ú	emptylineÚdefaultÚlastcmdÚgetattrÚAttributeError)r   r(   r1   r2   Úfuncr   r   r   r$   À   s    


z
Cmd.onecmdc             C   s   | j r| j| j ƒS d S )N)r7   r$   )r   r   r   r   r5   Û   s    zCmd.emptylinec             C   s   | j jd| ƒ d S )Nz*** Unknown syntax: %s
)r
   r   )r   r(   r   r   r   r6   å   s    zCmd.defaultc             G   s   g S )Nr   )r   Úignoredr   r   r   Úcompletedefaultî   s    zCmd.completedefaultc                s   d| ‰ ‡ fdd„| j ƒ D ƒS )Nr4   c                s"   g | ]}|j ˆ ƒr|d d… ‘qS )é   N)Ú
startswith)Ú.0Úa)Údotextr   r   ú
<listcomp>ù   s    z%Cmd.completenames.<locals>.<listcomp>)Ú	get_names)r   Útextr;   r   )rA   r   Úcompletenames÷   s    zCmd.completenamesc             C   sÚ   |dkr¶dd l }|jƒ }|jƒ }t|ƒt|ƒ }|jƒ | }|jƒ | }|dkr | j|ƒ\}	}
}|	dkrp| j}q¦yt| d|	 ƒ}W q¦ t	k
rœ   | j}Y q¦X n| j
}|||||ƒ| _y
| j| S  tk
rÔ   d S X d S )Nr   r   Z	complete_)r   Zget_line_bufferÚlstripr!   Z
get_begidxZ
get_endidxr3   r<   r8   r9   rE   Zcompletion_matchesÚ
IndexError)r   rD   Ústater   Zorigliner(   ÚstrippedZbegidxZendidxr1   ÚargsZfooZcompfuncr   r   r   r   û   s*    
zCmd.completec             C   s
   t | jƒS )N)ÚdirÚ	__class__)r   r   r   r   rC     s    zCmd.get_namesc                s4   t | jˆ Ž ƒ}t ‡ fdd„| jƒ D ƒƒ}t||B ƒS )Nc             3   s,   | ]$}|j d ˆ d  ƒr|dd… V  qdS )Úhelp_r   é   N)r>   )r?   r@   )rJ   r   r   ú	<genexpr>   s    z$Cmd.complete_help.<locals>.<genexpr>)ÚsetrE   rC   Úlist)r   rJ   ZcommandsZtopicsr   )rJ   r   Úcomplete_help  s    zCmd.complete_helpc             C   s¸  |r˜yt | d| ƒ}W nv tk
rŒ   y0t | d| ƒj}|rT| jjdt|ƒ ƒ d S W n tk
rj   Y nX | jjdt| j|f ƒ ƒ d S X |ƒ  �n| jƒ }g }g }i }x,|D ]$}|d d… dkr²d||dd … < q²W |jƒ  d}	xx|D ]p}|d d… dkrì||	k�rqì|}	|dd … }
|
|k�r8|j	|
ƒ ||
= qìt | |ƒj�rR|j	|
ƒ qì|j	|
ƒ qìW | jjdt| j
ƒ ƒ | j| j|dd	ƒ | j| jt|jƒ ƒdd	ƒ | j| j|dd	ƒ d S )
NrM   r4   z%s
rN   r   r   r=   é   éP   )r8   r9   Ú__doc__r
   r   r   ÚnohelprC   ÚsortÚappendÚ
doc_leaderÚprint_topicsÚ
doc_headerÚmisc_headerrQ   ÚkeysÚundoc_header)r   r2   r:   ÚdocÚnamesZcmds_docZ
cmds_undocÚhelpÚnameZprevnamer1   r   r   r   Údo_help$  sN    





zCmd.do_helpc             C   s\   |rX| j jdt|ƒ ƒ | jr<| j jdt| jt|ƒ ƒ ƒ | j||d ƒ | j jdƒ d S )Nz%s
r   r   )r
   r   r   Úrulerr!   Ú	columnize)r   ÚheaderZcmdsZcmdlenZmaxcolr   r   r   rZ   R  s    zCmd.print_topicsrT   c                sü  ˆ s| j jdƒ d S ‡ fdd„ttˆ ƒƒD ƒ}|rJtddjtt|ƒƒ ƒ‚tˆ ƒ}|dkrv| j jdtˆ d ƒ ƒ d S x¾tdtˆ ƒƒD ]š}|| d | }g }d}xrt|ƒD ]f}	d}
x<t|ƒD ]0}|||	  }||krØP ˆ | }t|
t|ƒƒ}
q¾W |j	|
ƒ ||
d	 7 }||kr¬P q¬W ||kr†P q†W tˆ ƒ}d}dg}xÀt|ƒD ]´}g }x@t|ƒD ]4}	|||	  }||k�rrd
}nˆ | }|j	|ƒ �qRW x|�r¨|d  �r¨|d= �qŒW x,tt|ƒƒD ]}	||	 j
||	 ƒ||	< �q¸W | j jdtdj|ƒƒ ƒ �q@W d S )Nz<empty>
c                s   g | ]}t ˆ | tƒs|‘qS r   )Ú
isinstancer   )r?   r/   )rQ   r   r   rB   d  s    z!Cmd.columnize.<locals>.<listcomp>z list[i] not a string for i in %sz, r   z%s
r   é   r   z  éþÿÿÿéÿÿÿÿrj   )r
   r   Úranger!   Ú	TypeErrorÚjoinÚmapr   ÚmaxrX   Úljust)r   rQ   ZdisplaywidthZ
nonstringsÚsizeZnrowsZncolsZ	colwidthsZtotwidthÚcolZcolwidthÚrowr/   ÚxZtextsr   )rQ   r   re   Z  sZ    

zCmd.columnize)r   NN)N)rT   )"Ú__name__Ú
__module__Ú__qualname__ÚPROMPTr   Ú
IDENTCHARSr.   rd   r7   r   rY   r[   r\   r^   rV   r   r   r)   r#   r%   r   r&   r3   r$   r5   r6   r<   rE   r   rC   rR   rc   rZ   re   r   r   r   r   r   4   s:   

4
		.)Ústringr	   Ú__all__rx   Zascii_lettersZdigitsry   r   r   r   r   r   Ú<module>-   s   