bgdZddlZddlZddlZddlmZddlmZddlmZddlm Z ddl m Z d e fd Z d ed efd Ze Gd dZdS)z4Helper functions for writing to terminals and files.N)Optional)Sequence)TextIO)wcswidth)finalreturncFtjd\}}|dkrd}|S)N)P)fallback(r )shutilget_terminal_size)width_s k/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/_pytest/_io/terminalwriter.pyget_terminal_widthrs.':::HE1 rzz LfilecdtjddkrdStjddkrdSdtjvrdSdtjvrdSt|do6|o"tjd d kS) N PY_COLORS1T0FNO_COLOR FORCE_COLORisattyTERMdumb)osenvirongethasattrr)rs rshould_do_markupr$s z~~k""c))t z~~k""c))uRZu ""thVDKKMMVbjnnV6L6LPV6Vrc eZdZedAiddddddddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(ZdGd*eed+d)fd,Zed+e fd-Z e j d.e d+d)fd/Z ed+e fd0Z d1e d2ed+e fd3Z dHd4e d5ee d6ee d2ed+d)f d7Zd8d9d:e d;ed2ed+d)fd<ZdId>e d2ed+d)fd?ZdJd@ZdKdBee dCee d+d)fdDZdEe d+e fdFZd)S)LTerminalWriterblackredgreen yellow!blue"purple#cyan$white%BlackrRed)Green*Yellow+Blue,Purple-Cyan.White/boldrlightblinkinvertNrr cR| tj}t|drX|rDtjdkr4 ddl}||j}|Jn#t$rYnwxYw||_ t||_ d|_ d|_ d|_dS)Nrwin32rT)sysstdoutr#rplatformcolorama AnsiToWin32stream ImportError_filer$ hasmarkup _current_line_terminal_widthcode_highlight)selfrrSs r__init__zTerminalWriter.__init__As <:D 4 " " (t{{}} (9P9P ( ++D118''''       )$//.2"sA'' A43A4c:|j|jStSN)rZrr\s r fullwidthzTerminalWriter.fullwidthRs   +' '!###rvaluec||_dSr_)rZ)r\rbs rrazTerminalWriter.fullwidthXs$rc*t|jS)z;Return an estimate of the width so far in the current line.)rrYr`s rwidth_of_current_linez$TerminalWriter.width_of_current_line\s*+++rtextmarkupc |D]}|jvrtd|jrGfd|D}|r%dd|D|zdz}|S)Nzunknown markup: c4g|]\}}|j|S) _esctable).0nameonr\s r z)TerminalWriter.markup..fs)MMMHD""M4>$'MMMrrOc3 K|] }d|zV dS)z[%smNrj)rlcods r z(TerminalWriter.markup..hs'??CzC/??????rz)rk ValueErrorrXitemsjoin)r\rfrgrmescs` rrgzTerminalWriter.markupas > >D4>)) ! SMMMM MMMC Sww??3?????$FR rsepchartitlerac ||j}tjdkr|dz}|Ft|t |z dz dt |zzd}||z}|d|d|}n||t |zz}t |t |z|kr||z }|j|fi|dS)NrNrrH )rarPrRmaxlenrstripline)r\rwrxrargNfillr~s rsepzTerminalWriter.sepks  I <7 " " NI   YU+a/QW5EFJJAQ;D++U++T++DDi3w<<78D t99s7>>++,, , 9 9 GNN$$ $D $!!&!!!!!rF)flushmsgrc |r|ddd}d|vr||_n|xj|z c_|j|fi|} |j|nR#t $rE|dd}|j|YnwxYw|r|dSdSdS)N rzunicode-escapeascii) rsplitrYrgrWwriteUnicodeEncodeErrorencodedecoder)r\rrrg current_lines rrzTerminalWriter.writes   ::dA..r2Ls{{%1""""l2""$+c,,V,,C &   %%%%% & & &jj!12299'BB   %%%%% &  -  *  s A%%A B43B4rOsc L|j|fi||ddS)Nr)r)r\rrgs rr~zTerminalWriter.lines4 1 4rc8|jdSr_)rWrr`s rrzTerminalWriter.flushs rrjlinesindentsc|r]t|t|kr=tdt|t||sdgt|z}d|}||}t ||D]\}}|||zdS)aIWrite lines of source code possibly highlighted. Keeping this private for now because the API is clunky. We should discuss how to evolve the terminal writer so we can have more precise color support, for example being able to write part of a line in one color and the rest in another, and so on. z5indents size ({}) should have same size as lines ({})rOrN)r|rsformatru _highlight splitlineszipr~)r\rrsource new_linesindentnew_lines r _write_sourcezTerminalWriter._write_sources  s7||s5zz11GNNLL#e**   (dSZZ'G5!!OOF++6688 #GY 7 7 ) ) FH IIfx' ( ( ( ( ) )rrc ddlm}|jr|js|S ddlm}ddlm}ddlm }ddl } ||||tj ddtj d  }|S#|j j$r1|d tj d |j j$r1|d tj dwxYw#t"$r|cYSwxYw) z:Highlight the given source code if we have markup support.r) UsageError)TerminalFormatter) PythonLexer) highlightNPYTEST_THEME_MODEdark PYTEST_THEME)bgstylezdPYTEST_THEME environment variable had an invalid value: '{}'. Only valid pygment styles are allowed.zrPYTEST_THEME_MODE environment variable had an invalid value: '{}'. The only allowed values are 'dark' and 'light'.)_pytest.config.exceptionsrrXr[pygments.formatters.terminalrpygments.lexers.pythonrpygmentsr pygments.utilr getenvutil ClassNotFoundr OptionErrorrV)r\rrrrrr highlighteds rrzTerminalWriter._highlights888888~ T%8 M  F F F F F F : : : : : : * * * * * *  #,9KMM%%9%8&AA i77$$ #"=.    j==CV .11>> =,    jFFLf "566GG )   MMM sC7AA66A>C47 DDr_)NN)rO)r N)rj)__name__ __module__ __qualname__dictrkrrr]propertyintrasetterrestrboolrgrrr~rrrrrjrrr&r&(sb Bbr  R  r Rbb BbrRrR b!"Q#$a%&a'(q)I.##Xf-#####"$3$$$X$ %s%t%%%%,s,,,X,3$3 $#' #"#"#"}#"C= #"  #"  #"#"#"#"J052c$4))8C=)8C=)RV))))(%%%%%%%%rr&)__doc__r rrPtypingrrrwcwidthr_pytest.compatrrrrr$r&rjrrrs::  C 6 d    @@@@@@@@@@r