
    \g`"                     P   d Z ddlZddlZddlZddlZddlZddlZddlZddlm	Z	m
Z
mZmZmZmZmZmZmZ ddlmZ ddlmZmZ ej        d         dk    ZdZdZ ej        e          Zd	 Zd
 ZefdZ efdZ!ddZ"d Z#d Z$d Z%d Z&edk    r e$dddddddddddd          Z'dS dS ) z#Utilities for compiling SASS files.    N)	MAIN_SCSS_FILEMAIN_SCSS_FILEPATHPACKAGE_PATHQSS_FILEQSS_FILEPATHQSS_PATHRC_PATHVARIABLES_SCSS_FILEVARIABLES_SCSS_FILEPATH)Palette)create_imagescreate_palette_image2aj  // ---------------------------------------------------------------------------
//
//    WARNING! File created programmatically. All changes made in this file will be lost!
//
//    Created by the qtsass compiler v{}
//
//    The definitions are in the "qdarkstyle.palette" module
//
//----------------------------------------------------------------------------
ae  /* ---------------------------------------------------------------------------

    WARNING! File created programmatically. All changes made in this file will be lost!

    Created by the qtsass compiler v{}

    The definitions are in the "qdarkstyle.qss._styles.scss" module

--------------------------------------------------------------------------- */
c                     g }d}|                                  D ]0\  }}|                    ||          }|                    |           1d                    |          S )z+Create a scss variables string from a dict.z${}: {};
)itemsformatappendjoin)datalinestemplatekeyvaluelines         5lib/python3.11/site-packages/qdarkstyle/utils/scss.py_dict_to_scssr   3   sa    EHjjll  
UsE**T99U    c                    i }|                      d          }|D ]}|                                }|r|                    d          r||                     d          \  }}|dd                                         }|                    dd          }|                     d          d	                                         }|||<   |S )
z"Parse variables and return a dict.r   $:   N-_;r   )splitstrip
startswithreplace)stringr   r   r   r   r   s         r   _scss_to_dictr+   >   s    DLLE 	 	zz|| 	DOOC(( 	CJCabb'--//C++c3''CKK$$Q'--//EDIKr   c                    t          |                                          }|                    t          j                  |z   dz   }t          | d          5 }|                    |           ddd           dS # 1 swxY w Y   dS )zCreate a scss variables file.r   wN)r   to_dictr   qtsass__version__openwrite)variables_scss_filepathpaletteheaderscssr   fs         r   _create_scss_variablesr8   Q   s     **++D==+,,t3d:D	%s	+	+ q	                 s   A::A>A>c                 n   d}t          j        | |d           t          |d          5 }|                                }ddd           n# 1 swxY w Y   |                    t           j                  |z   }t          |d          5 }|                    |           ddd           n# 1 swxY w Y   |S )z%Create a styles.qss file from qtsass. expanded)output_stylerNr-   )r/   compile_filenamer1   readr   r0   r2   )main_scss_pathqss_filepathr5   r   r7   s        r   _create_qssrB   [   s,   D
NL)35 5 5 5 
lC	 	  Avvxx               ==+,,t3D	lC	 	  A	               Ks#   AAAB**B.1B.c                    | #t          d           t          j        d           | j        #t          d           t          j        d           t          j                            t          | j                  }t          j                            |t                    }t          j                            |t                    }t          j                            |t                    }t          ||            t          ||          }|S )z2Create variables files and run qtsass compilation.Nz;Please pass a palette class in order to create its qrc filer"   z$A QDarkStyle palette requires an ID!)printsysexitIDospathr   r   r
   r   r   r8   rB   )r4   palette_pathr3   main_scss_filepathrA   
stylesheets         r   
create_qssrM   m   s       	 	 	z45557<<gj99L gll<9LMMlNCC7<<h77L2G<<</>>Jr   c                     t           rT| t          j        v}t          j        dt          j                  }t          |                    |                     }|o|}n|                                 }|S )z9Check that `name` string is a valid identifier in Python.z^[a-z_][a-z0-9_]*$)	PY2keywordkwlistrecompileIboolmatchisidentifier)nameis_not_keywordpatternmatches_patternchecks        r   is_identifierr]      se    
 $W^3*2BD99w}}T22332?!!##Lr   c                    d}t          |           r1| d                                         r| n|                                 } nt          d          t          j                            t                    }t          j                            t                    }t          j        	                    || 
                                          }t          j        	                    ||          }t          j                            |          rt          j        |           t          j        t          |           t          j        	                    ||          }t          j                            |          rt	          j        |           t          j        t          |           t!          | t"          fi           }||_        ||_        ||_        ||_        ||_        ||_        ||_        |	|_        |
|_        ||_        d                    |          |_        t=          ||           t?          ||           t          j        	                    |t@                    }t          j        	                    |tB                    }t          j        	                    |tD                    }tG          ||||          }tI          |d          5 }|%                                }d	d	d	           n# 1 swxY w Y   t#          j&                    '                                D ]]\  }}|&                                |         (                                }|)                    ||          }|)                    ||          }^tI          |d
          5 }|*                    |           d	d	d	           n# 1 swxY w Y   tI          |d
          5 }|*                    |           d	d	d	           n# 1 swxY w Y   |S )a6  
    Create a custom palette based on the parameters defined.

    The `name` must be a valid Python identifier and will be stored
    as a lowercased folder (even if the identifier had uppercase letters).

    This fuction returns the custom stylesheet pointing to resources stored at
    .../path/name/.
    r:   r   z:The custom palette name must be a valid Python identifier!z'{}')rc_pathr4   )rI   r4   )rA   rK   r3   r4   r=   Nr-   )+r]   isupper
capitalize	ExceptionrH   rI   basenamer	   r   r   lowerisdirshutilrmtreecopytree
removedirstyper   COLOR_BACKGROUND_LIGHTCOLOR_BACKGROUND_NORMALCOLOR_BACKGROUND_DARKCOLOR_FOREGROUND_LIGHTCOLOR_FOREGROUND_NORMALCOLOR_FOREGROUND_DARKCOLOR_SELECTION_LIGHTCOLOR_SELECTION_NORMALCOLOR_SELECTION_DARKSIZE_BORDER_RADIUSr   PATH_RESOURCESr   r   r
   r   r   rM   r1   r?   color_paletter   upperr)   r2   )rX   rI   color_background_lightcolor_background_normalcolor_background_darkcolor_foreground_lightcolor_foreground_normalcolor_foreground_darkcolor_selection_lightcolor_selection_normalcolor_selection_darkborder_radiusrL   rc_locqss_loctheme_root_paththeme_rc_paththeme_qss_pathcustom_paletter3   theme_main_scss_filepaththeme_qss_filepathfhr   r   colorcustom_colors                              r   create_custom_qssr      s   . J T 'Aw((?ttdoo.?.? & ' ' 	' Wg&&Fgx((Ggll466OGLL&99M	w}}_%% 'o&&&
OG]+++ W\\/7;;N	w}}^$$ &
n%%%
OHn--- $R00N,BN)-DN*+@N(,BN)-DN*+@N(+@N(,BN)*>N'(5N%$*MM/$B$BN! -@@@@o~FFFF !gll>;NOO!w||NNKKox@@'3 7	  J 
&	,	, wwyy               +--3355 = =
U%3355c:@@BB||E<00''|<<

	&	,	, 
               
 #	&	& "
               s6   K22K69K6N22N69N6O//O36O3c                     | ||j         d}|                    |                                           t          di |}|S )z;
    Create a custom palette based on a palette class.
    rX   rI   r    )rt   updaterv   r   )rX   rI   r4   kwargsrL   s        r   create_custom_qss_from_paletter      sU    
  3 F
 MM'''))***",,V,,Jr   c                 |    | ||                     dd          d}|                    |           t          di |}|S )z@
    Create a custom palette based on a palette dictionary.
    rt   4pxr   r   )getr   r   )rX   rI   palette_dictr   rL   s        r   create_custom_qss_from_dictr     sW    
 %))*>FF F
 MM,",,V,,Jr   __main__MyAwesomePalettez /Users/gpena-castellanos/Desktopz#ff0000z#cc0000z#aa0000z#00ff00z#00cc00z#00aa00z#0000ffz#0000ccz#0000aa0px)N)(__doc__rP   loggingrH   rR   rf   rE   r/   
qdarkstyler   r   r   r   r   r   r	   r
   r   qdarkstyle.paletter   qdarkstyle.utils.imagesr   r   versionrO   HEADER_SCSS
HEADER_QSS	getLogger__name___loggerr   r+   r8   rB   rM   r]   r   r   r   qssr   r   r   <module>r      s*   * )   				 				  



 F F F F F F F F F F F F F F F F F F F F F F ' & & & & & G G G G G G G G 
k!n		
 '
H
%
%    ( #.    6@    $   .
 
 
_ _ _D     z 
* CCC	 r   