
    h                         S r SSKrSSKJr  \" 5       r " S S5      r " S S5      rSR                  \" SR                  \R                  5      5      r
0 r\R                   H  r\ H  r\\\'   M
     M     Cg)	zGModule to parse ANSI escape sequences

Maintainer: Jean-Paul Calderone
    N)Loggerc                   r    \ rS rSrSrSr\" S \ 5       5      r\" \	" \5      5      u  r
rrrrrrrSrS rSrg)		ColorText   zV
Represents an element of text along with the texts colors and
additional attributes.
)brgylmcwc              #   @   #    U  H  oR                  5       v   M     g 7fN)upper).0xs     \/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/twisted/conch/ui/ansi.py	<genexpr>ColorText.<genexpr>   s     26a		6s   )BlackRedGreenYellowBlueMagentaCyanWhitec	                     XUsU l         U l        U l        X@l        XPl        X`l        Xpl        Xl        U R                  (       a$  U R                  U R                  sU l        U l        g g r   )textfgbgdisplaybold	underlineflashreverse)	selfr    r!   r"   r#   r$   r%   r&   r'   s	            r   __init__ColorText.__init__)   sS    &*#	47DG	"
<<#wwDGTW     )r"   r$   r#   r!   r&   r'   r    r%   N)__name__
__module____qualname____firstlineno____doc__COLORStupleBOLD_COLORSrangelenBLACKREDGREENYELLOWBLUEMAGENTACYANWHITECOLOR_NAMESr)   __static_attributes__ r+   r   r   r      sI     6F2622K<A#f+<N9E3vtWdE	K0r+   r   c                       \ rS rSrSrSrSrSrSrSr	\\\\\	4r
S rS	 rS
 rS rS rS rS r\R&                  4S jrS rSrg)
AnsiParser4   z
Parser class for ANSI codes.
)HfABCDRsudG)JKP)hr   )p)r   c                     XsU l         U l        U R                   U R                  sU l        U l        Su  U l        U l        U l        U l        SU l        SU l	        g )Nr   r   r   r       )
	defaultFG	defaultBG	currentFG	currentBGr$   r&   r%   r'   r#   prepend)r(   rX   rY   s      r   r)   AnsiParser.__init__J   sL    )2&)-&>H;	4:t~t|r+   c                     SnSnSn[        U5      nXE:  aR  US:X  a  X   [        ;   a  SnO1U(       a*  UR                  " SU5      nUS:X  a  X!US -   $ X!XF -   nUnSnUS-   nXE:  a  MR  U$ )z6
Remove all ANSI color escapes from the given string.
rW   rV   r   N)r5   _setsfind)r(   stringresultshowiLns          r   stripEscapesAnsiParser.stripEscapesQ   s     KeqyVY%/KK*7!12J..#Qk1FADAA e r+   c                     g r   r@   )r(   colorstrs     r   writeStringAnsiParser.writeStringg       r+   c                    U R                   (       a  U R                   U-   nSU l         UR                  S5      n[        U5      S:X  a$  U R                  U R	                  US   5      5        gU R                  U R	                  US   5      5        USS  GHD  n[        U5      nSnSnXT:  a&  X5   [
        R                  S-   ;  a  OUS-  nXT:  a  M&  U(       d	  SU l           gUS   S:w  a'  U R                  U R	                  X5S-   S 5      5        M~  USS nUS-  nXTS-
  :X  a	  SU l           g[        R                  X5   S5      nUc  M  U[        R                  :X  aA  U R                  USUS-    5        X5S-   S nU R                  U R	                  U5      5        GM  U[        R                  :X  aB  USUS-    X5S-   S p7U R                  U5        U R                  U R	                  U5      5        GMa  U[        R                  :X  aB  USUS-    X5S-   S p8U R                  U5        U R                  U R	                  U5      5        GM  U[        R                   :X  a*  X5S-   S nU R                  U R	                  U5      5        GM  XT:X  a  SU-   U l         GM  ["        R%                  S	X5   S
9  X5S-   S nU R                  U R	                  U5      5        GMG     g)z;
Turn a string input into a list of L{ColorText} elements.
rW   r_   rV   r   Nz[;?[z[z+Unhandled ANSI control type: {control_type})control_type)r\   splitr5   rm   
formatTextrc   digits_setmapgetrB   	COLOR_SET
parseColor
CURSOR_SETparseCursor	ERASE_SET
parseEraseMODE_SET_logwarn)	r(   strpartsrK   rg   rf   typecursorerases	            r   parseStringAnsiParser.parseStringj   s   
 <<,,$CDL		&!u:?T__U1X67T__U1X6712YFet6==5#88FA e #)DLQ43;$$T__Q1uwZ%@A!"AFAA:#*DL{{14.<:///OOAgAJ/a%'
A$$T__Q%78Z222 !'AE
A!egJA$$V,$$T__Q%78Z111 1q5z1UW:1OOE*$$T__Q%78Z000a%'
A$$T__Q%78V#*Q;DLIIETUTX   a%'
A$$T__Q%78_ r+   c                    USS nU(       d  Sn [        [        UR                  S5      5      nU GHk  nUS:X  aG  U R                  U R                  sU l        U l	        Su  U l
        U l        U l        U l        S	U l        MQ  US	:X  a	  S	U l
        M`  S
Us=::  a  S::  a  O  OUS
-
  U l        M|  SUs=::  a  S::  a  O  OUS-
  U l	        M  US:X  a  U R                  U l        M  US:X  a  U R                  U l	        M  US:X  a	  S	U l        M  US:X  a	  S	U l        M  US:X  a	  S	U l        M  US:X  a
  SU l        GM  US:X  a
  SU l
        GM  US:X  a
  SU l        GM'  US:X  a
  SU l        GM7  US:X  a
  SU l        GMG  US:X  a
  S	U l        GMW  [        R                  SUS9  GMn     g! [         a:    [        R                  SUS9  U R                  U R                  sU l        U l	         gf = f)z%
Handle a single ANSI color sequence
Nr`   0;z)Invalid ANSI color sequence: {sequence!r})sequencer   rU   rV      %   (   /   '   1                              z*Unrecognised ANSI color command: {command})command)mapintrs   
ValueErrorr   errorrX   rY   rZ   r[   r$   r&   r%   r'   r#   blink)r(   r   r   r   s       r   ry   AnsiParser.parseColor   s   
 #2hC	SYYs^,E AAv15.FPC	4:t~t| a	qB!"RqB!"Rb!%b!%a!"a
a a b	b!"b
b b 

GQR
SE   	JJBSJQ-1^^T^^*DNDN	s   F" "AG&%G&c                     g r   r@   )r(   r   s     r   r{   AnsiParser.parseCursor   ro   r+   c                     g r   r@   )r(   r   s     r   r}   AnsiParser.parseErase   ro   r+   c                     U(       a  [         R                  U   $ U R                  =(       a    X1   =(       d    [         R                  U   $ r   )r   r1   r$   )r(   valuemodeBOLDs       r   	pickColorAnsiParser.pickColor   s7    ##E**99,G	0@0@0GGr+   c           
          [        UU R                  U R                  S5      U R                  U R                  S5      U R                  U R
                  U R                  U R                  U R                  5      $ )Nr   rV   )	r   r   rZ   r[   r#   r$   r%   r&   r'   )r(   r    s     r   rt   AnsiParser.formatText   sY    NN4>>1-NN4>>1-LLIINNJJLL	
 		
r+   )r   r$   r[   rZ   rY   rX   r#   r&   r\   r'   r%   N)r,   r-   r.   r/   r0   rz   r|   r~   
ASSIGN_SETrx   SETSr)   ri   rm   r   ry   r{   r}   r   r3   r   rt   r?   r@   r+   r   rB   rB   4   sw    
 IJ  I H J I	8ZCD,=9~3Tj +4*?*? H

r+   rB   rW   )r0   rc   twisted.loggerr   r   r   rB   joinr   r   ra   rv   rK   r   r@   r+   r   <module>r      s}   

  "x0 0D@
 @
F 	BGGZ__-.
	A
  
 r+   