a [f@sddZddlZddlZz ddlZWney6dZYn0ddZGdddejZejfddZ dS) zONicer log formatting with colours. Code copied from Tornado, Apache licensed. NcCsTd}trPttjdrPtjrPzttddkr:d}WntyNYn0|S)NFisattyZcolorsrT)curseshasattrsysstderrrZ setuptermZtigetnum Exception)colorr ?/usr/lib/python3.9/site-packages/pip/_vendor/pep517/colorlog.py_stderr_supports_colors r c@s>eZdZdZejdejdejdejdiZ d ddZ d d Z dS) LogFormatterz&Log formatter with colour support TNcCstjj||di|_|rtrtdp6tdp6d}dtjkrNdkr\nn t |d}|j D] \}}t t ||d|j|<qft tdd|_ t}|d |_tn 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 rasciiZsgr0rFN)logging Formatter__init___colorsr rZtigetstrr version_infostrDEFAULT_COLORSitemsZtparm_normalZinitscrZgetmaxyx termwidthZendwin)selfrrZfg_colorlevelnocodeZscrr r r r2s(     zLogFormatter.__init__cCst|j}dj|jd|jd}|t||jkrJd|j|t|}nd}|j|jvrn|j|j}|j}nd}}|j||||S)Nz{initial}-{name}r)initialname z r) lenmessageformatZ levelnamer"rrrr)rrecordmlenZ right_textspaceZ start_colorZ end_colorr r r formatMessage]s    zLogFormatter.formatMessage)TN) __name__ __module__ __qualname____doc__rINFOZWARNINGZERRORZCRITICALrrr*r r r r r (s +r cCs0t}|ttj|tj|dS)N)rZ StreamHandlerZ setFormatterr rootZ addHandlerZsetLevel)levelZhandlerr r r enable_colourful_outputos  r2) r.rrr ImportErrorr rr r/r2r r r r s    G