
    Je)                     b    d Z ddlmZ ddlmZ ddlmZmZmZm	Z	m
Z
mZmZ ddlmZ d Zd Zd Zy	)
z
Style for IPython Console
    )get_color_schemeStyle)NameKeywordCommentStringNumberPunctuationOperator)
dark_colorc                     d }d }t        |       } | d   \  }}}|}t        |      rd}d}nd}d}| d   }	d}
d	}d	}|}|	}d
}|j                  ||	|
||||||||      }|t        |      fS )a  Returns a QSS stylesheet with Spyder color scheme settings.

    The stylesheet can contain classes for:
        Qt: QPlainTextEdit, QFrame, QWidget, etc
       Pygments: .c, .k, .o, etc. (see PygmentsHighlighter)
        IPython: .error, .in-prompt, .out-prompt, etc
    c                 
    | ryy)Nboldnormal is_bolds    K/usr/lib/python3/dist-packages/spyder/plugins/ipythonconsole/utils/style.pygive_font_weightz*create_qss_style.<locals>.give_font_weight   s        c                 
    | ryy)Nitalicr   r   	is_italics    r   give_font_stylez)create_qss_style.<locals>.give_font_style%   s    r   r   navydarkredlimered
backgroundr   a  QPlainTextEdit, QTextEdit, ControlWidget {{
                                          color: {} ;
                                          background-color: {};
                                         }}
              .error {{ color: {}; }}
              .in-prompt {{ color: {}; }}
              .in-prompt-number {{ color: {}; font-weight: {}; }}
              .out-prompt {{ color: {}; }}
              .out-prompt-number {{ color: {}; font-weight: {}; }}
              .inverted {{ color: {}; background-color: {}; }}
              )r   r   format)color_schemer   r   fon_cfon_fwfon_fs
font_colorin_prompt_colorout_prompt_colorbackground_colorerror_colorin_prompt_number_font_weightout_prompt_number_font_weightinverted_background_colorinverted_font_colorsheetsheet_formatteds                    r   create_qss_styler2      s     $L1L(2E66J* $  #L1K#) $*! **
E ll:/?#.#2O#?#35E#@#6#<>O Z
344r   c                 (   d }d }t        |       }|d   \  }}}|} ||      } ||      }	|d   \  }
}}|
} ||      } ||      }|d   \  }}}|} ||      } ||      }|d   \  }}}|} ||      } ||      }|d   \  }}}|} ||      }  ||      }!|d   \  }"}#}$|"}% ||#      }& ||$      }'|d	   \  }(})}*|(}+ ||)      }, ||*      }-|d
   \  }.}/}0|.}1 ||/      }2 ||0      }3|	dz   |z   dz   |z   }4|-dz   |,z   dz   |+z   }5|dz   |z   dz   |z   }6|3dz   |2z   dz   |1z   }7|dz   |z   dz   |z   }8|'dz   |&z   dz   |%z   }9|dz   |z   dz   |z   }:|!dz   | z   dz   |z   };t        |4j                         t        j                  |5j                         t        j                  |5j                         t        j
                  |6j                         t        j
                  j                  |7j                         t        |8j                         t        j                  |6j                         t        |9j                         t        |:j                         t        |;j                         t        |4j                         t        j                  |8j                         i}<|<S )zX
    Create a dictionary that saves the given color scheme as a
    Pygments style.
    c                 
    | ryy)Nr    r   r   s    r   r   z.create_pygments_dict.<locals>.give_font_weightY   s    r   c                 
    | ryy)Nr   r5   r   r   s    r   r   z-create_pygments_dict.<locals>.give_font_style_   s    r   r   keywordbuiltinstringnumbercomment
definitioninstance )r   r   stripClassFunctionBuiltinPseudor   Typer   r	   r
   r   r   Word)=color_scheme_namer   r   r#   r$   r%   r&   r'   font_font_weightfont_font_stylekey_ckey_fwkey_fskeyword_colorkeyword_font_weightkeyword_font_stylebui_cbui_fwbui_fsbuiltin_colorbuiltin_font_weightbuiltin_font_stylestr_cstr_fwstr_fsstring_colorstring_font_weightstring_font_stylenum_cnum_fwnum_fsnumber_colornumber_font_weightnumber_font_stylecom_ccom_fwcom_fscomment_colorcomment_font_weightcomment_font_styledef_cdef_fwdef_fsdefinition_colordefinition_font_weightdefinition_font_styleins_cins_fwins_fsinstance_colorinstance_font_weightinstance_font_style
font_tokendefinition_tokenbuiltin_tokeninstance_tokenkeyword_tokencomment_tokenstring_tokennumber_tokensyntax_style_dics=                                                                r   create_pygments_dictr|   S   s<    $$56L(2E66J'/%f-O(3E66M*62(0(3E66M*62(0(2E66L)&1'/(2E66L)&1'/(3E66M*62(0(6E66-f5+F3(4E66N+F3)&1 3&)99C?*LJ-36LL./'#-0CCcI"#M)C/2FFL$%N'#-0CCcI"#M'#-0CCcI"#M%+.@@3F !L%+.@@3F !L j..0

$4$:$:$<'7'='='?m&9&9&;++^-A-A-C!4!4!6m&9&9&;!4!4!6 2 2 4 2 2 4#Z%5%5%7 }':':'<> r   c                 *      G  fddt               }|S )z:Create a Pygments Style class with the given color scheme.c                   $    e Zd ZdZ eW        Zy)&create_style_class.<locals>.StyleClassr5   N)__name__
__module____qualname__default_styler|   styles)rF   s   r   
StyleClassr      s    %&78r   r   r   )rF   r   s   ` r   create_style_classr      s    9U 9 r   N)__doc__spyder.config.guir   pygments.styler   pygments.tokenr   r   r   r	   r
   r   r   qtconsole.stylesr   r2   r|   r   r   r   r   <module>r      s:   
 / !3 3 3 (:5zRjr   