o
    [h                     @   s6   d dl mZ d dl mZ d dl mZ G dd dZdS )   )compiler)context)nodesc                   @   s6   e Zd Z	ddefddZdd Zdd	 Zd
d ZdS )TemplateUNIDENTIFIED template_typec                 C   s   |dv }t j|||d| _| jj}|r;|r;t|d tjs;d| d}t dd| d|d	}| jjdtj|d
 | 	| ji | _
d S )N)ZPageZWaitPage)is_page_template    zotree/z.htmlZINSTRUCTIONz	extends ""r   )token)r   compile	root_nodechildren
isinstancer   ZExtendsNodeTokeninsert_register_blocksZblock_registry)selfZtemplate_stringZtemplate_idr   r	   r   Zextendsr    r   /home/ubuntu/experiments/live_experiments/Pythonexperiments/Otree/venv/lib/python3.10/site-packages/otree/templating/template.py__init__   s"   zTemplate.__init__c                 C   s
   t | jS N)strr   )r   r   r   r   __str__   s   
zTemplate.__str__c                 O   s$   |r|d n|}| j t|| S )Nr
   )r   renderr   Context)r   ZpargskwargsZ	data_dictr   r   r   r   "   s   zTemplate.renderc                 C   s<   t |tjr||jg | |jD ]}| || q|S r   )r   r   Z	BlockNode
setdefaulttitleappendr   r   )r   noderegistrychildr   r   r   r   &   s
   
zTemplate._register_blocksN)r   r   )__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r      s    
r   N)r   r   r   r   r   r   r   r   r   <module>   s    