3 Re @sfdZddlZddlZy ddlZWnek r8dZYnXddZGdddejZejfddZ dS) zONicer log formatting with colours. Code copied from Tornado, Apache licensed. Nc CsVd}trRttjdrRtjjrRytjtjddkr:d}Wntk rPYnX|S)NFisattycolorsrT)curseshasattrsysstderrrZ setuptermZtigetnum Exception)colorr /builddir/build/BUILDROOT/alt-python36-pip-20.2.4-5.el8.x86_64/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/pep517/colorlog.py_stderr_supports_colorsr c@s>eZdZdZejdejdejdejdiZ d ddZ d d Z dS) LogFormatterz&Log formatter with colour support TNcCstjj||di|_|rtrtjdp6tjdp6d}d tjkoLdknr\t |d}x.|j j D] \}}t tj ||d|j|<qhWt tjd d|_ tj}|jd |_tjn 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. )datefmtZsetafZsetfrrrasciiZsgr0rFN)rr)rrr)logging Formatter__init___colorsr rZtigetstrr version_infostrDEFAULT_COLORSitemsZtparm_normalZinitscrZgetmaxyx termwidthZendwin)selfr rZfg_colorlevelnocodeZscrr r r r2s     zLogFormatter.__init__cCst|j}dj|jd|jd}|t||jkrJd|j|t|}nd}|j|jkrn|j|j}|j}nd}}|j||||S)Nz{initial}-{name}r)initialname z r) lenmessageformat levelnamer#rr rr)rrecordmlenZ right_textspaceZ start_colorZ end_colorr r r formatMessage]s     zLogFormatter.formatMessage)TN) __name__ __module__ __qualname____doc__rINFOWARNINGERRORCRITICALrrr,r r r r r (s  +r cCs0tj}|jttjj|tjj|dS)N)r StreamHandler setFormatterr root addHandlersetLevel)levelhandlerr r r enable_colourful_outputos  r<) r0rrr ImportErrorr rr r1r<r r r r s   G