template_engine.cpython-312.pyc•14.4 kB
�
awh�5 � � � d Z ddlmZmZmZmZmZmZ ddlZddl Z ddl
Z
ddlZddlm
Z
e j d� Z ddlmZmZmZmZ dZej- d� G d� d� Z e� Zy# e$ r d Zej1 d
� Y �,w xY w)
u�
NetBrain MCP 模板引擎模块
此模块提供了一个灵活、强大的模板引擎,支持条件、循环、过滤器等高级功能。
基于Jinja2实现,用于生成提示和其他文本内容。
� )�Dict�List�Any�Optional�Callable�UnionN)�Path�template_engine)�Environment�FileSystemLoader�select_autoescape�TemplateTu* Jinja2已加载,使用高级模板功能Fu* Jinja2未安装,使用基本模板系统c �� � e Zd ZdZddeeee f fd�Zd� Zdede fd�Z
dedefd �Zddededee defd
�Z
dedeeef defd�Zddedeeef dedefd�Zddee deeeef fd�Zdedee fd�Zy
)�TemplateEngineu- NetBrain MCP模板引擎,基于Jinja2实现�
templates_dirc �x � t |t � r|n|g| _ i | _ i | _ | j D ] }t j |d�� � t rBt t | j � t ddg� dd�� | _ | j � t j d| j � �� y)u�
初始化模板引擎
Args:
templates_dir: 模板目录路径,可以是单个目录或目录列表
T��exist_ok�html�xml)�loader�
autoescape�trim_blocks�
lstrip_blocksu, 模板引擎初始化完成,模板目录: N)�
isinstance�listr �in_memory_templates�filters�os�makedirs�JINJA2_AVAILABLEr r r
�env�_register_default_filters�logger�info)�selfr �dir_paths �!F:\NetBrainMCP\template_engine.py�__init__zTemplateEngine.__init__ s� � � /9���.M�]�Ta�Sb���#%�� ���� �*�*�H��K�K��4�0� +� �"�'��(:�(:�;�,�f�e�_�=� �"� �D�H�
�*�*�,����B�4�CU�CU�BV�W�X� c � � t syd
d�}dd�}d� }d� }| j d|� | j d|� | j d|� | j d |� y)u 注册默认过滤器Nc � � t | t � r t j | � } t j | d|�� S # Y �xY w)NF)�ensure_ascii�indent)r �str�json�loads�dumps)�valuer. s r( �format_jsonz=TemplateEngine._register_default_filters.<locals>.format_jsonA s>