3
_A·fo  ã               @   s‚   d dl Z d dlZd dlZddd dddddddd	œ
Zddddddd
œZdZdd„ Zdd„ Zddd„Zda	dd„ Z
G dd„ deƒZdS )é    Né   é   é   é   é   é   é   )
NZnormalZblackZredZgreenZyellowZblueZmagentaZcyanZwhite)NZboldZdimZulZblinkÚreversez[mc             C   s   | t kS )N)ÚCOLORS)Ús© r   ú7/home/qytech/356xLinux510-101server/.repo/repo/color.pyÚis_color+   s    r   c             C   s   | t kS )N)ÚATTRS)r   r   r   r   Úis_attr/   s    r   c             C   sê   t |  } t | }t| }|dks0| dks0|dkrâd}d}|dkrX|ttdƒ| ƒ7 }d}| dkrš|rl|d7 }d}| dk rŽ|dtdƒ|   7 }n|d	|  7 }|dkrØ|r®|d7 }|dk rÌ|d
tdƒ|  7 }n|d| 7 }|d7 }nd}|S )Nr   Fz[Ú0Tú;é   z3%cz38;5;%dz4%cz48;5;%dÚmÚ )r
   r   ÚchrÚord)ÚfgÚbgÚattrZneed_sepÚcoder   r   r   Ú_Color3   s2    
r   c             C   s@   | dkrdS | j ƒ } | dkr"| an| dkr0dan| dkr<dadS )zjSet coloring behavior to |state|.

  This is useful for overriding config options via the command line.
  NÚautoÚalwaysÚyesÚtrueTÚneverÚnoÚfalseF)r   )r   r   r    T)r!   r"   r#   F)ÚlowerÚDEFAULT)Ústater   r   r   ÚSetDefaultColoring[   s    r'   c               @   sp   e Zd Zdd„ Zdd„ Zedd„ ƒZdd„ Zd	d
„ Zdd„ Z	ddd„Z
ddd„Zddd„Zddd„Zdd„ ZdS )ÚColoringc             C   sˆ   d| | _ || _tj| _t}|d krF| jj| j ƒ}|d krF| jjdƒ}|dkrntjs^t	j
dƒrfd| _q„d| _n|d	kr~d| _nd| _d S )
Nzcolor.%szcolor.uir   r   TFr    r   )r    r   )Ú_sectionÚ_configÚsysÚstdoutÚ_outr%   Ú	GetStringÚpagerZactiveÚosÚisattyÚ_on)ÚselfÚconfigZsection_typeZonr   r   r   Ú__init__o   s    
zColoring.__init__c             C   s
   || _ d S )N)r-   )r3   Úoutr   r   r   Úredirect„   s    zColoring.redirectc             C   s   | j S )N)r2   )r3   r   r   r   Úis_on‡   s    zColoring.is_onc             G   s   | j j|| ƒ d S )N)r-   Úwrite)r3   ÚfmtÚargsr   r   r   r9   ‹   s    zColoring.writec             C   s   | j jƒ  d S )N)r-   Úflush)r3   r   r   r   r<   Ž   s    zColoring.flushc             C   s   | j jdƒ d S )NÚ
)r-   r9   )r3   r   r   r   Únl‘   s    zColoring.nlNc                s&   | ‰| j ||||ƒ‰ ‡ ‡fdd„}|S )Nc                s   ˆj jˆ | f|žŽ ƒ d S )N)r-   r9   )r:   r;   )Úcr   r   r   Úf˜   s    zColoring.printer.<locals>.f)Úcolorer)r3   Úoptr   r   r   r@   r   )r?   r   r   Úprinter”   s    zColoring.printerc                s&   | ‰| j ||||ƒ‰ ‡ ‡fdd„}|S )Nc                s   ˆj jˆ | ƒƒ d S )N)r-   r9   )r:   )r?   r   r   r   r@       s    z!Coloring.nofmt_printer.<locals>.f)Únofmt_colorer)r3   rB   r   r   r   r@   r   )r?   r   r   Únofmt_printerœ   s    zColoring.nofmt_printerc                s6   | j r&| j||||ƒ‰ ‡ fdd„}|S dd„ }|S d S )Nc                s   | | }dj ˆ |tgƒS )Nr   )ÚjoinÚRESET)r:   r;   Úoutput)r?   r   r   r@   ¨   s    zColoring.colorer.<locals>.fc             W   s   | | S )Nr   )r:   r;   r   r   r   r@   ®   s    )r2   Ú_parse)r3   rB   r   r   r   r@   r   )r?   r   rA   ¤   s    zColoring.colorerc                s6   | j r&| j||||ƒ‰ ‡ fdd„}|S dd„ }|S d S )Nc                s   dj ˆ | tgƒS )Nr   )rF   rG   )r:   )r?   r   r   r@   ¶   s    z!Coloring.nofmt_colorer.<locals>.fc             S   s   | S )Nr   )r:   r   r   r   r@   º   s    )r2   rI   )r3   rB   r   r   r   r@   r   )r?   r   rD   ²   s    zColoring.nofmt_colorerc             C   s®   |st |||ƒS | jjd| j|f ƒ}|d kr:t |||ƒS |jƒ jƒ }|dkrRtS |dkrft |||ƒS d}x6|jdƒD ](}t|ƒr’|rŒ|}qž|}qvt	|ƒrv|}qvW t |||ƒS )Nz%s.%sÚresetr   Fú )
r   r*   r.   r)   Ústripr$   rG   Úsplitr   r   )r3   rB   r   r   r   ÚvZhave_fgÚar   r   r   rI   ¾   s&    zColoring._parse)NNNN)NNNN)NNNN)NNNN)Ú__name__Ú
__module__Ú__qualname__r5   r7   Úpropertyr8   r9   r<   r>   rC   rE   rA   rD   rI   r   r   r   r   r(   n   s   



r(   éÿÿÿÿrT   rT   )NNN)r0   r+   r/   r
   r   rG   r   r   r   r%   r'   Úobjectr(   r   r   r   r   Ú<module>   s2   
%