o
    ~¨ÊhQ  ã                   @   sJ   d dl mZ d dlmZ d dlmZ d dlmZmZ G dd„ deeƒZ	dS )é    )Únodes)Ú	Extension)ÚTemplateSyntaxError)ÚOUTPUT_FILEÚCompressorMixinc                   @   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 )ÚCompressorExtensionÚcompressc                 C   sä   t |jƒj}| ¡ }t|tjƒrt |j¡}|g}|d j	| j
vr.tdd | j
 ¡ ¡ |ƒ‚|j d¡rJ| ¡ }t|tjƒrIt |j¡}| |¡ n| t d¡¡ |jdgdd�}|j d	|j	 ¡ t |  d
|¡g g |¡ |¡S )Nr   zcompress kind may be one of: %sz, ÚcommaÚfilezname:endcompressT)Údrop_needlezname:Ú_compress_normal)ÚnextÚstreamÚlinenoÚparse_expressionÚ
isinstancer   ÚNameÚConstÚnameÚvalueÚcompressorsr   ÚjoinÚkeysÚskip_ifÚappendÚparse_statementsÚ	CallBlockÚcall_methodÚ
set_lineno)ÚselfÚparserr   ÚkindargÚargsÚmodeargÚbody© r%   úN/var/www/html/env/lib/python3.10/site-packages/compressor/contrib/jinja2ext.pyÚparse   s2   ÿþ
€ÿÿzCompressorExtension.parsec                 C   ó   |   |||d¡S )NT©Ú	_compress©r   ÚkindÚmodeÚcallerr%   r%   r&   Ú_compress_forced(   ó   z$CompressorExtension._compress_forcedc                 C   r(   )NFr)   r+   r%   r%   r&   r   +   r0   z$CompressorExtension._compress_normalc                 C   s(   |pt }|ƒ }d|i}| j||||d�S )NÚoriginal_content)Úforced)r   Úrender_compressed)r   r,   r-   r.   r2   r1   Úcontextr%   r%   r&   r*   .   s
   ÿzCompressorExtension._compressc                 C   s   |d S )Nr1   r%   )r   r4   r%   r%   r&   Úget_original_content6   s   z(CompressorExtension.get_original_contentN)
Ú__name__Ú
__module__Ú__qualname__ÚsetÚtagsr'   r/   r   r*   r5   r%   r%   r%   r&   r      s    
r   N)
Újinja2r   Ú
jinja2.extr   Újinja2.exceptionsr   Ú compressor.templatetags.compressr   r   r   r%   r%   r%   r&   Ú<module>   s
    