
    A6i                      
   d Z ddlmZ ddlZddlZddlZddlZddlZej                  j                  ej                  j                  ej                  j                  e                   ddlmZ ddlmZ ddlmZ dZd Zd	 Zy)
z
.. module:: lesscpy.scripts.compiler
    CSS/LESSCSS run script

    http://lesscss.org/#docs

    Copyright (c)
    See LICENSE for details
.. moduleauthor:: Johann T. Mariusson <jtm@robot.is>
    )print_functionN)parser)lexer)	formatterzLesscpy compiler 0.9hc           
         |j                   rdnd}|st        j                  d       njt        j                  j                  |      sK|j                  rt        d|z  t        j                         |j                  st        j                  |       t        j                  t        j                  j                  | d            }t        j                  |      }|D ]  }t        j                  j                  t        j                  j!                  |            }|j"                  rdnd}	|d	|d
   |	d}|j$                  s_t        j                  j'                  |      r@t        j                  j)                  |      t        j                  j)                  |      k  }
nd}
|
rt        |d|       t+        j,                  |j                   d|j                    |||j                        }|j/                  |d
       |j1                  |      }|j                  sQt3        |d      5 }|j5                  |       ddd       n*|j                  rt        d|z  t        j                         t        j6                  j9                           |j:                  rt        j<                  |       D cg c]  }t        j                  j                  t        j                  j                  | |            r`|j?                  d      sO||k(  sJtA        t        j                  j                  | |      t        j                  j                  ||      ||       c} yy# 1 sw Y   xY wc c}w )zCompile all *.less files in directory
    Args:
        inpath (str): Path to compile
        outpath (str): Output directory
        args (object): Argparse Object
        scope (Scope): Scope object or None
    yacctabNz%Compile directory option needs -o ...zCreating '%s'filez*.lessz.min /r   z.cssTz -> )
yacc_debuglex_optimizeyacc_optimizescopetabfileverbosefilename
debuglevelwzskipping %s, not modified.)!debugsysexitospathisdirr   printstderrdry_runmkdirglobjoinr   	Formattersplitextbasename
min_endingforceexistsgetmtimer   
LessParserparseformatopenwritestdoutflushrecurselistdir
startswith
ldirectory)inpathoutpathargsr   r   lessflfoutfminx	recompilepcssoutfilenames                  [/home/azureuser/techstart-app/venv/lib/python3.12/site-packages/lesscpy/scripts/compiler.pyr5   r5      sr     ::i4G89ww}}W%||o/cjjA<<!99RWW\\&(34DD!A ww 0 0 45vb 'a$7zzbggnnT2((.1A1A"1EEIID)*!! JJ!#'::~&A GGRAG.((1+C<<$_ 'MM#&' '\\-2D

12 || $&::f#5	
  ww}}RWW\\&$78OOC(	 VT*BGGLL$,G	
 ' '	
s   /M!8B$M-!M*	c                     t        j                  dd      } | j                  dddt               | j                  dd	d
t        d       | j                  ddddd       | j                  ddddd       | j                  d      }|j                  ddddd       |j                  ddddd       |j                  dddd        |j                  d!d"d#d$%       | j                  d&d'      }|j                  d(d)d
d*+       |j                  d,d-dd.+       |j                  d/d0dd1+       |j                  d2d3ddd4       |j                  d5d6ddd7       | j                  d8      }|j                  d9d:ddd;       |j                  d<d=ddd>       |j                  d?d@dddA       |j                  dBdCdddD       | j                  dEdFG       | j                  dHdIdJK       | j                         }	 |j                  rt        j                         }|j                  |j                        }	 |j                         }|sn:t        |dM      r"t        |dN|j                  j                         nt        |       Mt        dO       t!        j"                          |j$                  rdPndQ}dQ}	|j&                  r|j&                  j)                  dR      D ]  }
t*        j,                  j/                  |
      rt1        j2                  |j$                  dL|j$                   ||j4                  S      }|j7                  |
|j$                  T       |	s|j8                  }	n4|	j;                  |j8                         nt!        j"                  dU|
z         t         j<                  j?                           dQ}tA        jB                  |      }t*        j,                  j/                  |j                        s"t!        j"                  dV|j                  z         t*        j,                  jE                  |j                        rKtG        |j                  |jH                  ||	       |jJ                  rt        dWt         jL                  X       yQt1        j2                  |j$                  dL|j$                   tO        jP                  |	      |j4                  Y      }|j7                  |j                  |j$                  T       |jR                  rdL|_*        |jS                          |jT                  s|r|jW                  |      }|jX                  r|jZ                  st*        j,                  j/                  t*        j,                  j]                  |jX                              s=	 t+        j^                  t*        j,                  j]                  |jX                               tg        |jX                  dZ      5 }|ji                  |       dQdQdQ       yQt        |       yQyQyQyQ# t`        $ r(}|jb                  tb        jd                  k7  r Y dQ}~ldQ}~ww xY w# 1 sw Y   yQxY w# tj        tl        tn        f$ r t!        j"                  d[       Y yQw xY w)\zRun compiler
    zLessCss Compilerz<< jtm@robot.is @_o >>)descriptionepilogz-vz	--versionversion)actionrG   z-Iz	--includestorez%Included less-files (comma separated))rH   typehelpz-Vz	--verbose
store_trueFzVerbose mode)rH   defaultrK   z-Cz--dont_create_dirsz?Creates directories when outputing files (lessc non-compatible)zFormatting optionsz-xz--minifyzMinify outputz-Xz	--xminifyz'Minify output, no end of block newlinesz-tz--tabszUse tabs)rK   rH   z-sz--spacesz&Number of startline spaces (default 2)   )rK   rM   zDirectory optionszVCompiles all *.less files in directory that have a newer timestamp than it's css file.z-oz--outzOutput directory)rH   rK   z-rz	--recursezRecursive into subdirectorysz-fz--forcezForce recompile on all filesz-mz--min-endingz1Add '.min' into output filename. eg, name.min.cssz-Dz	--dry-runzDry run, do not write files	Debuggingz-gz--debugzDebugging informationz-Sz
--scopemapScopemapz-Lz
--lex-onlyzRun lexer on targetz-Nz--no-csszNo css outputtargetzless file or directory)rK   output?zoutput file path)nargsrK   Tr   zState:EOFr   N,)r   r   r   r   r   r   z included file `%s` not found ...zTarget not found '%s' ...zDry run, nothing done.r	   )r   r   r   r   r   r   z
Aborting...)8argparseArgumentParseradd_argumentVERSION_STRstradd_argument_group
parse_argslex_onlyr   	LessLexerr
   rQ   tokenhasattrr   lexstater   r   r   includesplitr   r   r)   r   r+   r   r,   r   updater0   r1   r   r$   r   r5   outr    r   copydeepcopyscopemapno_cssr-   rR   dont_create_dirsdirnamemakedirsOSErrorerrnoEEXISTr.   r/   KeyboardInterrupt
SystemExitIOError)aparsefgroupdgroupgroupr8   lexlltokr   r   ur?   r:   rf   excs                  rC   runr}   S   s    $$&/GIF
k)[  B
4  6    N  P &&';<F
   6  8 hZM
5	  
 && 67F gg<NO
+	  -
 +	  -
 @  B *  , %%k2E	$  & 
   
"  $ 
   '?@
2DEDJ" ==//#C$++&Bhhj3"$#x););<#J  %LHHJ  $zz)t<<\\'', #77>>!$))$(JJ%)+/::~ ' $.A GGQ4::G>  !QWW-HH?!CD

  "#  %ww~~dkk*HH04;;>?77==%t{{DHHdE:||.SZZ@!! JJ!#'::~mmE*&A GGT[[TZZG@}}"

;;1hhqk;;00GGOODKK8::&KK(DE dkk3/ %1% % #J $%; (  ' &"yyELL8 %  9&% % z73 "!"sh   <JY DY "<X Y 4YY Y 	Y'Y
Y 
YY YY Y )Z
	Z
)__doc__
__future__r   r   r   r"   rg   rW   r   appendabspathrl   __file__lesscpy.lesscr   r   r   rZ   r5   r}        rC   <module>r      sb   	 & 	 
     9: ;    #%3
ll"r   