o
    e                  	   @   s  d dl mZmZmZ d dlZd dlZd dlZedZedZ	G dd de
ZedddZd	d
dddddddZG dd de
ZdddZdddZedkrd dlZejZdZeee eee dZeee eee dZeee eee dZeee eee edkrd dlZd dlZejZe Zed ed e eed edkrd dlZejZdZeee dS dS )     )absolute_importprint_functionunicode_literalsNz(?\[[0-9;]*m?)z?\[([0-9;]*)m?c                	   @   sv   e Zd Z					dddZdddd	d
ddddZeee e Z	dd Z
dd Zee
eZdd Zdd ZdS )	AnsiStateFwhiteblackc                 C   s"   || _ || _|| _|| _|| _d S N)boldinversecolor
backgroundbackgroundbold)selfr	   r
   r   r   r    r   HD:\Projects\ConvertPro\env\Lib\site-packages\pyreadline3/console/ansi.py__init__   s
   
zAnsiState.__init__r                        )r   redgreenyellowbluemagentacyanr   c                 C   sV   d}| j r	|dO }| jr|dO }| jr|dO }|| j| j O }|| j| j d> O }|S )Nr          @  r   )r	   r   r
   trtabler   r   r   attrr   r   r   get_winattr   s   zAnsiState.get_winattrc                 C   sR   t |d@ | _t |d@ | _t |d@ | _| j|d@  | _| j|d@ d?  | _d S )Nr   r    r!   r   p   r   )boolr	   r   r
   revtabler   r   r#   r   r   r   set_winattr*   s
   zAnsiState.set_winattrc                 C   s(   d| j | jd| j d| j | j| jf S )NzNAnsiState(bold=%s,inverse=%s,color=%9s,background=%9s,backgroundbold=%s)# 0x%xz"%s")r	   r
   r   r   r   winattr)r   r   r   r   __repr__3   s   zAnsiState.__repr__c                 C   s2   t  }| j|_| j|_| j|_| j|_| j|_|S r   )r   r	   r
   r   r   r   )r   xr   r   r   copy:   s   zAnsiState.copyN)FFr   r   F)__name__
__module____qualname__r   r"   dictzipvalueskeysr(   r%   r)   propertyr*   r+   r-   r   r   r   r   r      s     

r   Fr   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   c                   @   s,   e Zd ZefddZdddZdddZdS )	
AnsiWriterc                 C   s(   t ttr
|| _d S t | _t| j_d S r   )
isinstancedefaultstater   r*   )r   defaultr   r   r   r   K   s   

zAnsiWriter.__init__Nc                 C   sn  t |tr|}n|du r| j }nt }||_|}t|}d}g }|D ]}t|}|r|	dd}	t
|	dkrH|	d dkrH| j }q%|	D ]V}
|
dkrY| j }d|_qJ|
dkrad|_qJ|
d	krid|_qJt
|
d
krd|
  krydkrn n
tt|
d  |_qJt
|
d
krd|
  krdkrn qJtt|
d  |_qJq%|t
|7 }	 || |f q%||fS )z}write text at current cursor position and interpret color escapes.

        return the number of characters written.
        Nr   r   ;0F7T1r   3037   4047(   )r7   r   r8   r-   r*   terminal_escapesplitescape_partsmatchgrouplenr	   r
   r"   intr   Zbackgroundcolorappend)r   textr$   r8   chunksnreschunkmpartspartr   r   r   write_colorR   sF   




$$zAnsiWriter.write_colorc                 C   s"   |  ||\}}|dd |D fS )Nc                 S   s   g | ]\}}|j qS r   )r*   ).0r$   rL   r   r   r   
<listcomp>~   s    z*AnsiWriter.parse_color.<locals>.<listcomp>)rT   )r   rL   r$   rN   rO   r   r   r   parse_color|   s   zAnsiWriter.parse_colorr   )r.   r/   r0   r8   r   rT   rW   r   r   r   r   r6   J   s    
*r6   c                 C   s   t t}|| |S r   )r6   r8   rT   )rL   r$   ar   r   r   rT      s   rT   c                 C   sZ  g }t | }d}|du rd}|D ]}t|}|r|ddD ]u}|dkr+d}n|dkr3|dO }|d	kr<|d
O }q"t|dkrid|  krLdkrin nt|d }|d@ |d@ d> B |d@ B |d@ d? B }q"t|dkrd|  krydkrn q"t|d }|d@ |d@ d> B |d@ d> B |d@ d> B }q"q|t|7 }|r|d| |f q|S )zuwrite text at current cursor position and interpret color escapes.

    return the number of characters written.
    r   N   r   r:   r;   r<   r!   r=   r   r   r>   r?   r@   ir   rA   rB   rC   ir   z0x%x)rD   rE   rF   rG   rH   rI   rJ   rK   )rL   r$   rO   rM   rN   rP   rQ   rS   r   r   r   write_color_old   sP   


$

$


rZ   Z	__main__xzW[0;31mred[0;32mgreen[0;33myellow[0;34mblue[0;35mmagenta[0;36mcyan[0;37mwhite[0mzW[1;31mred[1;32mgreen[1;33myellow[1;34mblue[1;35mmagenta[1;36mcyan[1;37mwhite[0mze[0;7;31mred[0;7;32mgreen[0;7;33myellow[0;7;34mblue[0;7;35mmagenta[0;7;36mcyan[0;7;37mwhite[0mze[1;7;31mred[1;7;32mgreen[1;7;33myellow[1;7;34mblue[1;7;35mmagenta[1;7;36mcyan[1;7;37mwhite[0m__main__Zdhsjdhsz[0;32mIn [[1;32m1[0;32m]:r   )
__future__r   r   r   osresyscompilerD   rF   objectr   r8   r"   r6   rT   rZ   r.   pprintsconsoleConsolecprintr   r   r   r   <module>   sX   

8
7
/

