
    )Vh                       U d Z ddlmZ ddlZddlZddlZddlmZ dZerddl	m
Z
 ddlmZ dd	d
dddddZded<   i dddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2Zded3<   i d4d5d6d5d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTZdedU<   dVZedddW	 	 	 	 	 d[dX       Z	 	 	 d\dddW	 	 	 	 	 	 	 	 	 	 	 	 	 d]dYZ	 	 	 d\dddW	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d^dZZy)_z-ANSI color formatting for output in terminal.    )annotationsN)cacheF)Iterable)Any                  	   )bolddark	underlineblinkreverse	concealedstrikezdict[str, int]
ATTRIBUTESon_black(   on_greyon_red)   on_green*   	on_yellow+   on_blue,   
on_magenta-   on_cyan.   on_light_grey/   on_dark_greyd   on_light_rede   on_light_greenf   on_light_yellowg   on_light_blueh   on_light_magentai   on_light_cyanj   on_whitek   
HIGHLIGHTSblack   greyred   green    yellow!   blue"   magenta#   cyan$   
light_grey%   	dark_greyZ   	light_red[   light_green\   light_yellow]   
light_blue^   light_magenta_   
light_cyan`   whitea   COLORSz[0mno_colorforce_colorc                $   | | ry||ryt         j                  j                  d      ryt         j                  j                  d      ryt         j                  j                  d      ryt         j                  j                  d      dk(  ryt        t        j
                  d      sy	 t        j                  t        j
                  j                               S # t        j                  $ r! t        j
                  j                         cY S w xY w)	z(Check env vars and for tty/dumb terminalFTANSI_COLORS_DISABLEDNO_COLORFORCE_COLORTERMdumbfileno)
osenvirongethasattrsysstdoutisattyrc   ioUnsupportedOperationrZ   s     C/home/dcms/DCMS/lib/python3.12/site-packages/termcolor/termcolor.py_can_do_colourrn   \   s     ; 
zz~~,-	zz~~j!	zz~~m$ 
zz~~f'3::x(#yy**,--"" #zz  ""#s   *0C 1DDc                  t        |       }t        ||      s|S d}d}d}	|At        |t               r|t        |   |fz  }n"t        |t              r||d   |d   |d   |fz  }|At        |t               r|t
        |   |fz  }n"t        |t              r|	|d   |d   |d   |fz  }||D ]  }
|t        |
   |fz  } |t        z  }|S )at  Colorize text.

    Available text colors:
        black, red, green, yellow, blue, magenta, cyan, white,
        light_grey, dark_grey, light_red, light_green, light_yellow, light_blue,
        light_magenta, light_cyan.

    Available text highlights:
        on_black, on_red, on_green, on_yellow, on_blue, on_magenta, on_cyan, on_white,
        on_light_grey, on_dark_grey, on_light_red, on_light_green, on_light_yellow,
        on_light_blue, on_light_magenta, on_light_cyan.

    Alternatively, both text colors (color) and highlights (on_color) may
    be specified via a tuple of 0-255 ints (R, G, B).

    Available attributes:
        bold, dark, underline, blink, reverse, concealed.

    Example:
        colored('Hello, World!', 'red', 'on_black', ['bold', 'blink'])
        colored('Hello, World!', 'green')
        colored('Hello, World!', (255, 0, 255))  # Purple
    rZ   z[%dm%sz[38;2;%d;%d;%dm%sz[48;2;%d;%d;%dm%sr   r   r   )strrn   
isinstancerY   tupler7   r   RESET)textcoloron_colorattrsr[   r\   resultfmt_strrgb_fore_fmt_strrgb_back_fmt_strattrs              rm   coloredr}      s   @ YF8EG..eS!uv66Fu%%q58U1Xv(NNFh$
8 4f==F%(%!hqk8A;PV(WWF 	:D
4 0&99F	: eOFM    c          
     :    t        t        | |||||      fi | y)zGPrint colorized text.

    It accepts arguments of print function.
    rZ   N)printr}   )rt   ru   rv   rw   r[   r\   kwargss          rm   cprintr      s0     
!' r~   )r[   bool | Noner\   r   returnbool)NNN)rt   objectru   !str | tuple[int, int, int] | Nonerv   r   rw   Iterable[str] | Noner[   r   r\   r   r   rp   )rt   r   ru   r   rv   r   rw   r   r[   r   r\   r   r   r   r   None)__doc__
__future__r   rk   rd   rh   	functoolsr   TYPE_CHECKINGcollections.abcr   typingr   r   __annotations__r7   rY   rs   rn   r}   r    r~   rm   <module>r      s  . 4 " 	 	 
 ( 
N r b 	
  r " r R C C c s S   S!" #
N (R
B 
2 R	
 b B r B "   2 B " R  "!" R# * 	 # # #2= #	 #  #J 0426"&	9 !#9
9,9 09  	9 9 9 	9| 0426"&	 !#
, 0  	    
r~   