B
    \(                 @   s>  d Z ddlZddlZddlZyddlZW n ek
r@   dZY nX edZi Zdd Z	e	 Z
dd Zdd	 Zd
d Zdd Zd(ddZdd Zdd ZdddddddZx e D ]\ZZde ee< qW dddd d!d"d#d$gZx8eeD ],\Z\ZZd%ed&  ee< d'ed&  ee< qW e ZxeD ]Zee q(W dS ))z
    sphinx.util.console
    ~~~~~~~~~~~~~~~~~~~

    Format colored console output.

    :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    Nz\[(\d\d;){0,2}\d\dmc              C   s   yVddl } ddl}ddl}|d| j|ddddd}|d|dd \}}|}W n* tk
r   tt	j
ddd }Y nX |S )zBorrowed from the py lib.r   NZhhhh   ZCOLUMNSZ80   )termiosfcntlstructZioctlZ
TIOCGWINSZZpackZunpack	Exceptionintosenvironget)r   r   r   ZcallZheightwidthZterminal_width r   2lib/python3.7/site-packages/sphinx/util/console.pyget_terminal_width   s    
r   c             C   s6   t s| d S | tt|  ttd|  d S d S )N
 )codesljust_twlen_ansi_resub)textr   r   r   term_width_line3   s    r   c              C   st   t jdkrtd k	rt  dS tt jds.dS t j s<dS dtjkrJdS tj	dd
 } | dksld	| krpdS dS )
Nwin32TisattyFZ	COLORTERMZTERMZdumb)ZxtermZlinuxZcolor)sysplatformcoloramaZinithasattrstdoutr   r	   r
   r   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   nocolorN   s    r%   c               C   s   t t d S )N)r   update_orig_codesr   r   r   r   coloronU   s    r(   Fc                s     fdd}|| | |d S )Nc                s2   t | d} r*|r*tjdkr*d| d S |S d S )Nr   r   )r   r   r   r   )nameescape)
input_moder   r   escseq\   s    zcolorize.<locals>.escseqresetr   )r+   r   r-   r.   r   )r-   r   colorizeZ   s    r0   c             C   s   t dd| S )Nz.*?mr   )recompiler   )sr   r   r   strip_colorsk   s    r4   c                s    fdd}|t   < d S )Nc                s
   t  | S )N)r0   )r   )r+   r   r   innerr   s    z create_color_func.<locals>.inner)globals)r+   r5   r   )r+   r   create_color_funcp   s    r7   z	39;49;00mZ01mZ02mZ03mZ04mZ05m)r/   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whitez[%im   z[%i;01m)F)__doc__r	   r1   r   r   ImportErrorr2   r   r   r   r   r   r#   r%   r(   r0   r4   r7   Z_attrsitems_nameZ_valueZ_colors	enumerateiZdarkZlightcopyr'   r   r   r   r   <module>
   sP   



	
