
    V|h              	           S SK r S SKJr  SSKJrJr  SSSSS	.rS
SSSSSSSS.rS
SSS.rS r	 " S S5      r
 " S S\
5      r " S S\
5      r " S S\
5      r " S S\
5      rg)    N)Lock   )supports_terminal_sequenceswrite_string
z[Az[Kz[0m)DOWNUP
ERASE_LINERESET01234567)BLACKREDGREENYELLOWBLUEPURPLECYANWHITE)NORMALBOLD
UNDERLINEDc                    UR                  5       nUR                  5       R                  5       nSnSU;   a  US   S:X  a  [        SU< 35      eUS   [        ;  a  [        US    SU< S35      eS[        UR                  5           3nUS   S:X  a  S	US
S  3nUR                  5         US   S:w  a&  [        SUR                  SS
5      S
   < SU< 35      eSU S3nUR                  5         U(       d  SnOUS   [        ;  a  [        US    SU< S35      eS[        UR                  5           3nU(       a!  US   S:X  a  SUS
S  3nUR                  5         U(       a  US   [        ;   a  UR                  5       OSnS[        U    SU S3nU(       a"  [        SSR                  U5      < SU< 35      eU(       d  U(       a.  U R                  [        S   U U 35      n U U U  [        S    3$ U $ )z
@param f    String representation of formatting to apply in the form:
            [style] [light] font_color [on [light] bg_color]
            E.g. "red", "bold green on light blue"
 ONz%Empty background format specified in z in z must be a colorr   LIGHTz0;10r   NzInvalid format z ON z[mr   9r   ; r   )
upperstripsplitSyntaxError_COLORSpop_TEXT_STYLESjoinreplaceCONTROL_SEQUENCES)textftokensbg_colorfg_colorfg_styles         K/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/minicurses.pyformat_textr9   !   s    	
	AWWY__FHv~": EaUKLL":W$D5EFGGwvzz|,-.": hqrl^,HJJL":0B10E/HQERSS8*A&

	7	"VBZLQE1ABCCwvzz|,-.fRjG+8AB<.)HJJL#)fRjL.H6::<h<12!H:Q?0@/C4uMNN8||-g68*XJ8OPH:dV,=g,F+GHH    c                   B    \ rS rSrSS jrS rS rS rS rS r	S	 r
S
rg)MultilinePrinterBaseN   Nc                 D    Xl         US-
  U l        [        U5      U l        g Nr   )streammaximumr   _HAVE_FULLCAP)selfr@   liness      r8   __init__MultilinePrinterBase.__init__O   s    qy8@r:   c                     U $ N rC   s    r8   	__enter__MultilinePrinterBase.__enter__T   s    r:   c                 $    U R                  5         g rH   )end)rC   argss     r8   __exit__MultilinePrinterBase.__exit__W   s    
r:   c                     g rH   rI   rC   r2   poss      r8   print_at_line"MultilinePrinterBase.print_at_lineZ       r:   c                     g rH   rI   rJ   s    r8   rN   MultilinePrinterBase.end]   rW   r:   c                 <    U R                   (       a
  US-    SU 3$ U$ )Nr   z: )rA   )rC   r2   lines      r8   _add_line_number%MultilinePrinterBase._add_line_number`   s#    <<QhZr$((r:   c                 N    [        SR                  U5      U R                  5        g Nr    )r   r/   r@   rC   r2   s     r8   writeMultilinePrinterBase.writee   s    RWWT]DKK0r:   )rB   rA   r@   r?   )__name__
__module____qualname____firstlineno__rE   rK   rP   rU   rN   r\   ra   __static_attributes__rI   r:   r8   r<   r<   N   s&    A

1r:   r<   c                       \ rS rSrSrg)QuietMultilinePrinteri   rI   N)rc   rd   re   rf   rg   rI   r:   r8   ri   ri   i   s    r:   ri   c                        \ rS rSrS rS rSrg)MultilineLoggerm   c                 X    U R                   R                  SR                  U5      5        g r_   )r@   debugr/   r`   s     r8   ra   MultilineLogger.writen   s    "''$-(r:   c                 D    U R                  U R                  X5      5        g rH   ra   r\   rS   s      r8   rU   MultilineLogger.print_at_lineq   s    

4((34r:   rI   N)rc   rd   re   rf   ra   rU   rg   rI   r:   r8   rl   rl   m   s    )5r:   rl   c                       \ rS rSrS rSrg)BreaklineStatusPrinterv   c                 F    U R                  U R                  X5      S5        g )Nr   rr   rS   s      r8   rU   $BreaklineStatusPrinter.print_at_linew   s    

4((3T:r:   rI   N)rc   rd   re   rf   rU   rg   rI   r:   r8   ru   ru   v   s    ;r:   ru   c                   X   ^  \ rS rSrSU 4S jjrS rS r\S 5       r\S 5       rSr	U =r
$ )	MultilinePrinter{   c                 j   > [         TU ]  X5        X0l        S=U l        U l        [        5       U l        g )Nr   )superrE   preserve_output	_lastline_lastlengthr   	_movelock)rC   r@   rD   r~   	__class__s       r8   rE   MultilinePrinter.__init__|   s.    '.,--)r:   c                 F   ^  [         R                  " T 5      U 4S j5       nU$ )Nc                 j   > U R                      T" U /UQ70 UD6sS S S 5        $ ! , (       d  f       g = frH   )r   )rC   rO   kwargsfuncs      r8   wrapper&MultilinePrinter.lock.<locals>.wrapper   s&    D24262  s   $
2)	functoolswraps)r   r   s   ` r8   lockMultilinePrinter.lock   s%    			3 
	3 r:   c              #      #    [        U R                  U R                  5      nSv   X-
  nUS:  a  [        S   U* -  v   OUS:  a  [        S   U-  v   Xl        g 7f)Nr   r	   r   )minr   rA   r1   )rC   destcurrentdistances       r8   _move_cursorMultilinePrinter._move_cursor   sZ     dnndll3
>a<#D)XI55\#F+h66s   AAc                 r   U R                   (       a-  U R                  " / U R                  U5      Q[        S   PUP76   g U R	                  X5      n[        U5      nU R                  U:X  a.  SnU R                  U:  a  USU R                  U-
  -  -  nX0l        OSnX0l        U R                  XA5        X l        g )Nr
   r   r'   r   )rB   ra   r   r1   r\   lenr   r   )rC   r2   rT   textlenprefixs        r8   rU   MultilinePrinter.print_at_line   s    JJV))#.V0A,0OVQUV$$T/d)>>S F')t//'9::& F&

6 r:   c                    U R                   (       a  U R                  U R                  5      O/ nU R                  (       a  U R                  " / UQSP76   g U R                   (       a=  U R                  " / UQ[
        S   P[
        S    [
        S    3U R                  -  P76   g U R	                  SSU R                  -  S5        g )Nr   r
   r	   r   r'   )rB   r   rA   r~   ra   r1   r   r`   s     r8   rN   MultilinePrinter.end   s     372D2Dt  ."JJ##d#JJ ^^(6^$T*+,=l,K+LMPTP\P\\^ JJtS4#3#33T:r:   )r   r   r   r~   )Nr   T)rc   rd   re   rf   rE   r   r   rU   rN   rg   __classcell__)r   s   @r8   rz   rz   {   s:      
 
( 
; 
;r:   rz   )r   	threadingr   utilsr   r   r1   r,   r.   r9   r<   ri   rl   ru   rz   rI   r:   r8   <module>r      s      < 
	  	 *Z1 16	0 	5* 5;1 ;
;;+ ;;r:   