U ��.e�@sfdZddlZddlZz ddlZWnek r8dZYnXdd�ZGdd�dej�Zejfdd�Z dS) zONicer log formatting with colours. Code copied from Tornado, Apache licensed. �NcCsVd}trRttjd�rRtj��rRzt��t�d�dkr:d}Wntk rPYnX|S)NF�isattyZcolorsrT)�curses�hasattr�sys�stderrrZ setuptermZtigetnum� Exception)�color�r �?/usr/lib/python3.8/site-packages/pip/_vendor/pep517/colorlog.py�_stderr_supports_colorsr c@s>eZdZdZejdejdejdejdiZ d dd�Z d d �Z dS) � LogFormatterz&Log formatter with colour support ���TNcCs�tjj||d�i|_|r�t�r�t�d�p6t�d�p6d}dtjkrNdkr\nn t |d�}|j � �D] \}}t t� ||�d�|j|<qft t�d�d�|_ t��}|��d |_t��n d|_ d |_d S) aO :arg bool color: Enables color support. :arg string fmt: Log message format. It will be applied to the attributes dict of log records. The text between ``%(color)s`` and ``%(end_color)s`` will be colored depending on the level if color support is on. :arg dict colors: color mappings from logging level to terminal color code :arg string datefmt: Datetime format. Used for formatting ``(asctime)`` placeholder in ``prefix_fmt``. .. versionchanged:: 3.2 Added ``fmt`` and ``datefmt`` arguments. )�datefmtZsetafZsetf�)rr)rr r�asciiZsgr0r�FN)�logging� Formatter�__init__�_colorsr rZtigetstrr� version_info�str�DEFAULT_COLORS�itemsZtparm�_normalZinitscrZgetmaxyx� termwidthZendwin)�selfrrZfg_color�levelno�codeZscrr r r r2s*  ��  �  zLogFormatter.__init__cCs�t|j�}dj|jd|jd�}|t|�|jkrJd|j|t|�}nd}|j|jkrn|j|j}|j}nd}}|j||||S)Nz{initial}-{name}r)�initial�name� z r) �len�message�formatZ levelnamer"rrrr)r�recordZmlenZ right_textZspaceZ start_colorZ end_colorr r r � formatMessage]s  �  zLogFormatter.formatMessage)TN) �__name__� __module__� __qualname__�__doc__r�INFOZWARNINGZERRORZCRITICALrrr(r r r r r (s� +r cCs0t��}|�t��tj�|�tj�|�dS)N)rZ StreamHandlerZ setFormatterr �rootZ addHandlerZsetLevel)�levelZhandlerr r r �enable_colourful_outputos  r0) r,rrr� ImportErrorr rr r-r0r r r r �s   G