
    f6iC                     ,    d dl mZmZmZ  G d d      Zy)    )Environment
BaseLoaderTemplateErrorc                   *    e Zd ZdZd ZdededefdZy)TemplateRendererz0Jinja2-based template renderer with safe filtersc                 <    t        t               ddd      | _        y )NT)loader
autoescapetrim_blockslstrip_blocks)r   r   env)selfs    8/var/www/notifications/app/services/template_renderer.py__init__zTemplateRenderer.__init__   s    <	
    template_content	variablesreturnc                     	 | j                   j                  |      } |j                  di |S # t        $ r}t	        dt        |             d}~ww xY w)a  
        Render template with provided variables
        
        Args:
            template_content: Jinja2 template string (e.g., "Hello {{customer_name}}")
            variables: dict of values to substitute (e.g., {"customer_name": "John"})
        
        Returns:
            Rendered string
        
        Raises:
            TemplateError: if template syntax is invalid or variable missing
        zTemplate rendering failed: N )r   from_stringrenderr   
ValueErrorstr)r   r   r   templatees        r   r   zTemplateRenderer.render   sZ    	Exx++,<=H"8??/Y// 	E:3q6(CDD	Es   ,/ 	AAAN)__name__
__module____qualname____doc__r   r   dictr   r   r   r   r   r      s(    :
Es Et E Er   r   N)jinja2r   r   r   r   r   r   r   <module>r#      s    9 9E Er   