B
    …#YÙ  ã               @   s¬   d Z ddlmZ ddlmZ ddlmZ dZed Zee	ddd	d
 Z
dZed Zee	dddd
 ZdZee	ddd	d
 ZdZdd„ Zdd„ Zdd„ Zdd„ Zddd„ZdS )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; }
ZwhiteZblackz#ccc)ÚbgcolorÚfgcolorÚselectÚdefaultzo    .in-prompt,
    .in-prompt-number { color: lime; }
    .out-prompt,
    .out-prompt-number { color: red; }
z#555ZmonokaiZbwc             C   s¤   |   d¡r| dd… } t| ƒdkr6d dd„ | D ƒ¡} t| ƒdkrFd	S y:t| dd
… dƒ}t| d
d… dƒ}t| dd… dƒ}W n tk
r”   d	S X |||fS dS )z)Convert a hex color to rgb integer tuple.ú#é   Né   Ú c             S   s   g | ]}|d  ‘qS )é   © )Ú.0Úcr   r   ú/lib/python3.7/site-packages/qtconsole/styles.pyú
<listcomp>>   s    zhex_to_rgb.<locals>.<listcomp>é   Fr   é   é   )Ú
startswithÚlenÚjoinÚintÚ
ValueError)ÚcolorÚrÚgÚbr   r   r   Ú
hex_to_rgb9   s    
r   c             C   s$   t | ƒ}|rt|Ž d dk S dS dS )z]Check whether a color is 'dark'.

    Currently, this is simply whether the luminance is <50%r
   é€   FN)r   r   )r   Zrgbr   r   r   Ú
dark_colorJ   s    r!   c             C   s   t t| ƒjƒS )zUGuess whether the background of the style with name 'stylename'
    counts as 'dark'.)r!   r   Úbackground_color)Ú	stylenamer   r   r   Ú
dark_styleT   s    r$   c             C   sf   t | ƒ}| tj¡d pd}t|ƒdkrTyt|dƒ W n tk
rJ   Y n
X d| }t|j|j	|dS )zPConstruct the keys to be used building the base stylesheet
    from a templatee.r   r   )r   r   r   r	   )r   r   r   )
r   Zstyle_for_tokenr   ZTextr   r   Ú	TypeErrorÚdictr"   Zhighlight_color)r#   Zstyler   r   r   r   Ú
get_colorsY   s    r'   Úlightbgc             C   sL   |  ¡ }|dkrtt| ƒ S |dkr0tt| ƒ S |dkr<tS td| ƒ‚dS )z;Use one of the base templates, and set bg/fg/select colors.r(   ZlinuxZnocolorzNo such color scheme: %sN)ÚlowerÚdefault_light_style_templater'   Údefault_dark_style_templateÚdefault_bw_style_sheetÚKeyError)ÚnameZcolorsr   r   r   Úsheet_from_templatem   s    r/   N)r(   )Ú__doc__Zcolorsysr   Zpygments.stylesr   Zpygments.tokenr   Zdefault_templater*   r&   Zdefault_light_style_sheetZdefault_light_syntax_styler+   Zdefault_dark_style_sheetZdefault_dark_syntax_styler,   Zdefault_bw_syntax_styler   r!   r$   r'   r/   r   r   r   r   Ú<module>   s,   
