B
    .Kc                 @   s  U d Z ddlZddlZddlZddlZddlmZmZ yddlZW n e	k
rZ   dZY nX e
dZeed< i Zeeef ed< eeddd	Zed
ddZe Zeed< eedddZed
ddZdd
ddZdd
ddZd3eeeedddZeedddZeddddZd d!d"d#d$d%d&Zx"e D ]\ZZd'e ee< q:W d(d)d*d+d,d-d.d/gZx8e ed0D ]*\Z!\Z"Z#d1e! ee"< d1e!d2  ee#< qtW e$ Z%xeD ]Zee qW dS )4zFormat colored console output.    N)DictPatternz\[(\d\d;){0,2}\d\dm_ansi_recodes)sreturnc             C   s   |  dddS )z4Safely encode a string for printing to the terminal.asciibackslashreplace)encodedecode)r    r   2lib/python3.7/site-packages/sphinx/util/console.pyterminal_safe   s    r   )r   c               C   s   t  jd S )z,Return the width of the terminal in columns.   )shutilget_terminal_sizecolumnsr   r   r   r   get_terminal_width   s    r   _tw)textr   c             C   s6   t s| d S | tt|  ttd|  d S d S )N
 )r   ljustr   lenr   sub)r   r   r   r   term_width_line!   s    r   c              C   s   dt jkrdS tjdkr,td k	r,t  dS dt jkr:dS ttjdsJdS tj sXdS dt jkrfdS t j	dd	
 } | d
ksd| krdS dS )NZNO_COLORFwin32TZFORCE_COLORisattyZ	COLORTERMZTERMZdumb)ZxtermZlinuxZcolor)osenvironsysplatformcoloramaZinithasattrstdoutr   getlower)Ztermr   r   r   color_terminal*   s"    



r(   c               C   s&   t jdkrtd k	rt  t  d S )Nr   )r!   r"   r#   Zdeinitr   clearr   r   r   r   nocolor>   s    r*   c               C   s   t t d S )N)r   update_orig_codesr   r   r   r   coloronD   s    r-   F)namer   
input_moder   c                s(   t t d fdd}|| | |d S )N)r.   r   c                s2   t | d} r*|r*tjdkr*d| d S |S d S )Nr   r   )r   r&   r!   r"   )r.   escape)r/   r   r   escseqI   s    zcolorize.<locals>.escseqreset)str)r.   r   r/   r3   r   )r/   r   colorizeH   s    r6   c             C   s   t dd| S )Nz.*?mr   )recompiler   )r   r   r   r   strip_colorsX   s    r9   )r.   r   c                s"   t t d fdd}|t  < d S )N)r   r   c                s
   t  | S )N)r6   )r   )r.   r   r   inner]   s    z create_color_func.<locals>.inner)r5   globals)r.   r:   r   )r.   r   create_color_func\   s    r<   z	39;49;00mZ01mZ02mZ03mZ04mZ05m)r4   ZboldZfaintZstandoutZ	underlineZblinkz[)ZblackZdarkgray)ZdarkredZred)Z	darkgreenZgreen)ZbrownZyellow)ZdarkblueZblue)ZpurpleZfuchsia)Z	turquoiseZteal)Z	lightgrayZwhite   z[%im<   )F)&__doc__r   r7   r   r!   typingr   r   r#   ImportErrorr8   r   __annotations__r   r5   r   intr   r   r   boolr(   r*   r-   r6   r9   r<   Z_attrsitems_nameZ_valueZ_colors	enumerateiZdarkZlightcopyr,   r   r   r   r   <module>   sV   
	
