ϪfdZddlZddlmZeZGddZGddZdjedjejZ iZ ejD]Z e D]Z e e e < [ y) zGModule to parse ANSI escape sequences Maintainer: Jean-Paul Calderone N)LoggercjeZdZdZdZedeDZeee\Z Z Z Z Z ZZZdZdZy) ColorTextzb Represents an element of text along with the texts colors and additional attributes. )brgylmcwc#<K|]}|jywN)upper).0xs 7/usr/lib/python3/dist-packages/twisted/conch/ui/ansi.py zColorText.s2a 2s)BlackRedGreenYellowBlueMagentaCyanWhitec |||c|_|_|_||_||_||_||_||_|jr$|j|jc|_|_yyr)textfgbgdisplaybold underlineflashreverse) selfrrr r!r"r#r$r%s r__init__zColorText.__init__)s_&*B# 47DG  "  <<#ww DGTW N)__name__ __module__ __qualname____doc__COLORStuple BOLD_COLORSrangelenBLACKREDGREENYELLOWBLUEMAGENTACYANWHITE COLOR_NAMESr'r(rrrsI 6F2622KH; 4:t~t|  r(cd}d}d}t|}||krL|dk(r||tvrd}n.|r,|jd|}|dk(r|||dzS||||z}|}d}|dz}||krL|S)zF Remove all ANSI color escapes from the given string. rQrPrN)r1_setsfind)r&stringresultshowiLns r stripEscapeszAnsiParser.stripEscapesQs  K!eqyVAY%/FKK*7!F12J..#fQqk1FADAA!e r(cyrr;)r&colorstrs r writeStringzAnsiParser.writeStringg r(c|jr|j|z}d|_|jd}t|dk(r$|j|j |dy|j|j |d|ddD]<}t|}d}d}||kr$||t j dzvrn |dz }||kr$|s d|_y|ddk7r'|j|j ||dzdv|dd}|dz}||dz k(r d|_ytj||d}||tjk(rA|j|d|dz||dzd}|j|j ||tjk(rC|d|dz||dzd}}|j||j|j |W|tjk(rC|d|dz||dzd}}|j||j|j ||tj k(r*||dzd}|j|j |||k(r d|z|_t"j%d || ||dzd}|j|j |?y) zK Turn a string input into a list of L{ColorText} elements. rQrXrPrNz[;?[z+Unhandled ANSI control type: {control_type}) control_type)rVsplitr1re formatTextr\digits_setmapgetr= COLOR_SET parseColor CURSOR_SET parseCursor ERASE_SET parseEraseMODE_SET_logwarn) r&strpartsrEr`r_typecursorerases r parseStringzAnsiParser.parseStringjs <<,,$CDL &! u:?   T__U1X6 7   T__U1X6 712Y/ 9F!et6==5#88FA!e#)DLQ43;$$T__Qq1uwZ%@A!"AFAA:#*DL{{1Q4.<:///OOAgAJ/!a%' A$$T__Q%78Z222 !'AE Aa!egJAF$$V,$$T__Q%78Z111 1q5z1QUW:1EOOE*$$T__Q%78Z000!a%' A$$T__Q%78!V#*Q;DLIIETUVWTX!a%' A$$T__Q%78_/ 9r(c|dd}|sd} tt|jd}|D]K}|dk(rF|j |jc|_|_ d\|_ |_ |_ |_ d |_O|d k(rd |_ \d |cxkrd krnn |d z |_ud |cxkrd krnn |d z |_ |dk(r|j |_|dk(r|j|_ |dk(rd |_ |dk(rd |_ |dk(rd |_ |dk(rd|_|dk(rd|_ |dk(r d|_  |dk(r d|_|dk(r d|_ '|dk(r d |_5tj d|Ny#t$r=tj d||j |jc|_|_ YywxYw)z5 Handle a single ANSI color sequence NrY0;z)Invalid ANSI color sequence: {sequence!r})sequencerrOrP%(/'1z*Unrecognised ANSI color command: {command})command)mapintrj ValueErrorrverrorrRrSrTrUr"r$r#r%r!blink)r&rxryrs rrpzAnsiParser.parseColors #2hC SYYs^,E " TAAv15.FPC 4:t~t|  a qB!"RqB!"Rb!%b!%a!"a a  a  b b!"b b  b   GQR SE" T   JJBSJ Q-1^^T^^ *DNDN  sE<>1 - NN4>>1 - LL II NN JJ LL  r(N)r)r*r+r,rqrsru ASSIGN_SETroSETSr'rbrer}rprrrtrr/rrkr;r(rr=r=4sw IJ IHJI  8Z CD, =9~3Tj  +4*?*?H  r(r=rQ)r,r\twisted.loggerrrvrr=joinrrrZrmrErr;r(rrs  " x00D@ @ F BGGZ__-.  A  r(