File: //opt/alt/python27/lib/python2.7/site-packages/mako/codegen.pyo
�
�ǚPc           @   s  d  Z  d d l Z d d l Z d d l m Z d d l m Z m Z m Z m	 Z	 m
 Z
 d Z e d d d g � Z
 e e e e e e e e e f  d	 �
 Z d
 e f d �  �  YZ d e f d
 �  �  YZ d e f d �  �  YZ e j d � Z d �  Z d e f d �  �  YZ d S(   sV   provides functionality for rendering a parsetree constructing into module
source code.i����N(   t
   PythonPrinter(   t   utilt   astt	   parsetreet   filterst
   exceptionsi   t   contextt   loopt	   UNDEFINEDc         C   s�   t  j r+ t | t � r+ | j | � } n  t  j �  } t | � }
 t |
 t | | | | | | | | |	 |
 | � |  � | j	 �  S(   s[   Generate module source code given a parsetree node,
      uri, and optional source filename(
   R   t   py3kt
   isinstancet   unicodet   encodet   FastEncodingBufferR    t   _GenerateRenderMethodt   _CompileContextt   getvalue(   t   nodet   urit   filenamet   default_filterst   buffer_filterst   importst   source_encodingt   generate_magic_commentt   disable_unicodet   strict_undefinedt   enable_loopt   reserved_namest   buft   printer(    (    s=   /opt/alt/python27/lib/python2.7/site-packages/mako/codegen.pyt   compile   s$    R   c           B   s   e  Z d  �  Z RS(   c         C   sg   | |  _  | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ |	 |  _ |
 |  _	 | |  _
 d  S(   N(   R   R   R   R   R   R   R   R   R   R   R   (   t   selfR   R   R   R   R   R   R   R   R   R   R   (    (    s=   /opt/alt/python27/lib/python2.7/site-packages/mako/codegen.pyt   __init__A   s    										(   t   __name__t
   __module__R!   (    (    (    s=   /opt/alt/python27/lib/python2.7/site-packages/mako/codegen.pyR   @   s   R   c           B   s  e  Z d  Z d �  Z e d �  � Z d �  Z d �  Z d �  Z d �  Z	 d �  Z
 e d d � Z
 d	 �  Z d
 �  Z d �  Z e d � Z e e d
 � Z d �  Z d �  Z d �  Z d �  Z d �  Z d �  Z d �  Z d �  Z d �  Z d �  Z d �  Z d �  Z RS(   s]   A template visitor object which generates the
       full module source for a template.
    c      	   C   s7  | |  _  d |  _ | |  _ | |  _ d  g |  _ t | t j t j	 f � |  _
 |  j
 r� d | j } | j �  } t
 | j j � d k } t | j j d d � � } t | j j d d � � } d  }	 d  }
 | j r�| j r�| d g 7} q�n� |  j �  }	 |  j j }
 d } |
 d  k	 r�|
 j j �  } |
 j j sE| d g 7} n  t |
 j j d d � � } |  j j p�t |
 j j d	 d � � |  j _ n d g } t } t } } | d  k r�d
 g } n  g  d
 g | D] } | ^ q�} |  j |
 p�| | | | | | � |	 d  k	 r3x! |	 D] } t | | | � qWn  d  S(   Ni����s	   render_%si    t   bufferedt   Falset   cacheds
   **pageargst   render_bodyR   R   (   R   t   last_source_linet   compilerR   t   Nonet   identifier_stackR
   R   t   DefTagt   BlockTagt   in_deft   funcnamet   get_argument_expressionst   lent   filter_argst   argst   evalt
   attributest   gett   is_blockt   is_anonymoust   write_toplevelt   pagetagt	   body_declt   kwargsR   R%   t   write_render_callableR   (   R    R   R)   R   t   nameR3   t   filteredR$   R&