o
    a"<fc                     @   sP   d dl mZ d dlmZ d dlmZ d dlmZ dd ZG dd dej	eZ
d	S )
    )nodes)	Extension)TemplateSyntaxError)compressc                 C   s   t | tjrt| jS | S )N)
isinstancer   NameConstname)node r   S/var/www/html/kck/venv/lib/python3.10/site-packages/compressor/contrib/jinja2ext.pyconst	   s   r   c                   @   s>   e Zd ZedgZdd Zdd Zdd Zdd	 Zd
d Z	dS )CompressorExtensionr   c                 C   sD  |j jj}t|j  g }t| }|j| jv r|| nt	d| j
 |jf |j jj|j d td }td}|j jjdkrt| }|| |jtjkrd|j jjdkrct| }n|jtjksp|jtjkrqnt	dtj|jf |j jj|jdgdd}|j d	|j  t| d
|||gg g ||S )Nz(Compress kind may be one of: %r, got: %rcommafile	block_endz'Compress mode may be one of: %r, got %rzname:endcompressT)drop_needlezname:_compress_normal)streamcurrentlinenonextr   parse_expressionvaluecompressorsappendr   keysskip_ifr   r   typer   OUTPUT_FILEOUTPUT_INLINEOUTPUT_PRELOADOUTPUT_MODESparse_statements	CallBlockcall_method
set_lineno)selfparserr   argskindargnameargmodeargbodyr   r   r   parse   sL   




zCompressorExtension.parsec                 C      |  ||||dS )NT	_compressr'   kindmoder	   callerr   r   r   _compress_forcedG      z$CompressorExtension._compress_forcedc                 C   r/   )NFr0   r2   r   r   r   r   J   r7   z$CompressorExtension._compress_normalc                 C   s,   |pt j}| }d|i}| j|||||dS )Noriginal_content)forced)r   r   render_compressed)r'   r3   r4   r	   r5   r9   r8   contextr   r   r   r1   M   s
   
zCompressorExtension._compressc                 C   s   |d S )Nr8   r   )r'   r;   r   r   r   get_original_contentU   s   z(CompressorExtension.get_original_contentN)
__name__
__module____qualname__settagsr.   r6   r   r1   r<   r   r   r   r   r      s    
3r   N)jinja2r   
jinja2.extr   jinja2.exceptionsr   compressor.templatetagsr   r   CompressorMixinr   r   r   r   r   <module>   s    