
    g                         d Z ddlmZ ddlmZ ddlmZ dZedz   Ze e	ddd	
      z  Z
dZedz   Ze e	ddd
      z  ZdZe e	ddd	
      z  ZdZd Zd Zd Zd ZddZy)zK Style utilities, templates, and defaults for syntax highlighting widgets.
    )
rgb_to_hls)get_style_by_name)Tokena      QPlainTextEdit, QTextEdit {
        background-color: %(bgcolor)s;
        background-clip: padding;
        color: %(fgcolor)s;
        selection-background-color: %(select)s;
    }
    .inverted {
        background-color: %(fgcolor)s;
        color: %(bgcolor)s;
    }
    .error { color: red; }
    .in-prompt-number { font-weight: bold; }
    .out-prompt-number { font-weight: bold; }
zD    .in-prompt { color: navy; }
    .out-prompt { color: darkred; }
whiteblackz#ccc)bgcolorfgcolorselectdefaultzo    .in-prompt,
    .in-prompt-number { color: lime; }
    .out-prompt,
    .out-prompt-number { color: red; }
z#555monokaibwc                 :   | j                  d      r| dd } t        |       dk(  r"dj                  | D cg c]  }|dz  	 c}      } t        |       dk7  ry	 t        | dd d	      }t        | dd
 d	      }t        | d
d d	      }|||fS c c}w # t        $ r Y yw xY w)z)Convert a hex color to rgb integer tuple.#   N          F      )
startswithlenjoinint
ValueError)colorcrgbs        0lib/python3.12/site-packages/qtconsole/styles.py
hex_to_rgbr"   9   s    ab	
5zQe,e1e,-
5zQbq	"a
2ab	" 1u -  s   B	-B 	BBc                 :    t        |       }|rt        | d   dk  S y)z]Check whether a color is 'dark'.

    Currently, this is simply whether the luminance is <50%r      F)r"   r   )r   rgbs     r!   
dark_colorr&   J   s)     U
C
3"S((    c                 >    t        t        |       j                        S )zUGuess whether the background of the style with name 'stylename'
    counts as 'dark'.)r&   r   background_color)	stylenames    r!   
dark_styler+   T   s     '	2CCDDr'   c                    t        |       }|j                  t        j                        d   xs d}t	        |      dv r	 t        |d       d|z   }t        |j                  |j                  |      S # t        $ r Y -w xY w)zPConstruct the keys to be used building the base stylesheet
    from a templatee.r   r   )r   r   r   r   )r   r
   r	   )
r   style_for_tokenr   Textr   r   	TypeErrordictr)   highlight_color)r*   styler	   s      r!   
get_colorsr3   Y   s     i(E##EJJ/8>BG
7|u	" 'kG((&&   		s    A3 3	A?>A?c                     |j                         }|dk(  rt        t        |       z  S |dk(  rt        t        |       z  S |dk(  rt        S t        d|z        )z;Use one of the base templates, and set bg/fg/select colors.lightbglinuxnocolorzNo such color scheme: %s)lowerdefault_light_style_templater3   default_dark_style_templatedefault_bw_style_sheetKeyError)namecolorss     r!   sheet_from_templater?   m   s[    \\^Fy+Jt,<<<	*:d+;;;		%%1&899r'   N)r5   )__doc__colorsysr   pygments.stylesr   pygments.tokenr   default_templater9   r0   default_light_style_sheetdefault_light_syntax_styler:   default_dark_style_sheetdefault_dark_syntax_styler;   default_bw_syntax_styler"   r&   r+   r3   r?    r'   r!   <module>rK      s      -   "  0 3    9:A A &  / 2   7t8A A %  *$+A A  "E
(
:r'   