%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /proc/self/root/opt/alt/python27/lib/python2.7/site-packages/tempita/
Upload File :
Create Path :
Current File : //proc/self/root/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyo

�
�>Mc@sdZddlZddlZddlZddlmZddlZddlZddl	m
Z
ddlmZddl
mZmZmZmZmZddd	d
ddd
gZejd�Zejdej�Zdefd��YZdefd��YZdefd��YZd�Zdefd��YZed�Z ed�Z!d
e"fd��YZ#defd��YZ$e%d�Z&d�Z'd�Z(d
efd��YZ)d�Z*d efd!��YZ+d"efd#��YZ,d$efd%��YZ-d&efd'��YZ.e.�Z/[.ee%d(ed)�Z0ejd*�Z1d+d,d-d.d/d0gZ2ejd1�Z3ejd2�Z4d3�Z5d4�Z6ed(ed5�Z7fd6�Z8d7�Z9d8�Z:d9�Z;d:�Z<d;�Z=d<�Z>d=�Z?d>�Z@d?ZAed@�ZBeCdAkreB�ndS(Bs�
A small templating language

This implements a small templating language.  This language implements
if/elif/else, for/continue/break, expressions, and blocks of Python
code.  The syntax is::

  {{any expression (function calls etc)}}
  {{any expression | filter}}
  {{for x in y}}...{{endfor}}
  {{if x}}x{{elif y}}y{{else}}z{{endif}}
  {{py:x=1}}
  {{py:
  def foo(bar):
      return 'baz'
  }}
  {{default var = default_value}}
  {{# comment}}

You use this with the ``Template`` class or the ``sub`` shortcut.
The ``Template`` class takes the template string and the name of
the template (for errors) and a default namespace.  Then (like
``string.Template``) you can call the ``tmpl.substitute(**kw)``
method to make a substitution (or ``tmpl.substitute(a_dict)``).

``sub(content, **kw)`` substitutes the template immediately.  You
can use ``__name='tmpl.html'`` to set the name of the template.

If there are syntax errors ``TemplateError`` will be raised.
i����N(tquote(tStringIO(tlooper(tbytestbasestring_tnextt
is_unicodetcoerce_textt
TemplateErrortTemplatetsubtHTMLTemplatetsub_htmlthtmltbunchs\s+in\s+s^[a-z_][a-z0-9_]*$cBs#eZdZdd�Zd�ZRS(s.Exception raised while parsing a template
    cCs&tj||�||_||_dS(N(t	Exceptiont__init__tpositiontname(tselftmessageRR((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR5s	cCs`dj|j�}|jr?d||jd|jdf}n|jr\|d|j7}n|S(Nt s%s at line %s column %siis in %s(tjointargsRR(Rtmsg((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyt__str__:s	!	N(t__name__t
__module__t__doc__tNoneRR(((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR1st_TemplateContinuecBseZRS((RR(((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyRDst_TemplateBreakcBseZRS((RR(((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyRHscCsFtjjtjj|j�|�}|jj|d|jd|j�S(Nt	namespacetget_template(	tostpathRtdirnameRt	__class__t
from_filenameR R!(Rt
from_templateR#((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pytget_file_templateLs$	cBs�eZidd6dd6ed6ZdZdZdddddddd�Zddded�Z	e
e	�Z	d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(s{{tstart_bracess}}t
end_bracesRtutf8ic	
Cs�||_|dkr2|jd|jdf}n7|jjj�|_|d|jd<|d|jd<||_t|�|_|dkrO|dk	rOytj	|�}	Wnt
k
r�qOX|	j}
|	j}d|
kr|
d}|j
d�s|j
d�r5|d }q5nd	|
kr/|
d	}nd
}|rO|d|7}qOn||_t|d|d
|d|j�|_|dkr�i}n||_||_|dk	r�||_ndS(NR)R*iit__file__s.pycs.pyoi����Rs<string>s:%sRtline_offsett
delimeters(tcontentRtdefault_namespaceR%tcopyR.Rt_unicodetsyst	_getframet
ValueErrort	f_globalstf_linenotendswithRtparset_parsedR R!tdefault_inherit(RR/RR t
stacklevelR!R;R-R.tcallertglobalstlineno((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR^sB	
	
		

	$			cCsbt|d�}|j�}|j�|r=|j|�}n|d|d|d|d|d|�S(NtrbR/RR R;R!(topentreadtclosetdecode(tclstfilenameR tencodingR;R!tftc((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR&�s
cCs*d|jjtt|��d|jfS(Ns<%s %s name=%r>i(R%RthextidR(R((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyt__repr__�s	cOs�|rv|rtd��nt|�dkr<td��nt|dd�sitd|df��n|d}n|}|j|d<|jr�|j|j�n|j|�\}}}|s�|j}n|r�|j||||�}n|S(Ns3You can only give positional *or* keyword argumentsis)You can only give one positional argumentititemssqIf you pass in a single argument, you must pass in a dictionary-like object (with a .items() method); you gave %rt__template_name__(	t	TypeErrortlenthasattrRR tupdatet
_interpretR;t_interpret_inherit(RRtkwtnstresulttdefstinherit((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyt
substitute�s,

	cCskt}g}i}|j|j|d|d|�d|krO|jd�}nd}dj|�||fS(NtoutRXt__inherit__t(tTruet_interpret_codesR:tpopRR(RRVt__traceback_hide__tpartsRXRY((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyRS�sc
Cs�t}|js-tdddd|j��n|j||�}t|j�}x*|j�D]\}}	t|||	�q[W||_|j	�}||d<|j
|�S(Ns:You cannot use inheritance without passing in get_templateRRR(R^R!RRRtTemplateObjectt	iteritemstsetattrtbodyR1RZ(
RRfRXtinherit_templateRVRattempltself_Rtvalue((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyRT�s		
cCsPt}xC|D];}t|t�r2|j|�q
|j||||�q
WdS(N(R^t
isinstanceRtappendt_interpret_code(RtcodesRVR[RXRatitem((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR_�s

c
Cs�t}|d|d}}|dkrA|j|d||�n@|dkrYt��n(|dkrqt��n|dkr�|d|d|d	}}	}
|j|	||�}	|j||	|
|||�n�|d
kr|d}|j||||�n�|dkr�|djd�}|j|d||�}x3|dD]'}
|j|
||�}||�}qCW|j|j	||��n�|d
kr�|d|d}}	||kr�|j|	||�}|||<q�n�|dkr|d}	|j|	||�}||d<nm|dkrq|d}|d}|d	}t
|||d|d|d|�||<||<n|dkr�dSdS(Niitpyitcontinuetbreaktforiitcondtexprt|tdefaultRYR\tdefRfRVtpostcomment(R^t_execRRt_evalt_interpret_fort
_interpret_iftsplitRlt_reprtTemplateDef(RtcodeRVR[RXRaRRytvarsRuR/RbtbasetparttfunctvarRWRjt	signature((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyRm�sP 





cCs�t}x�|D]�}t|�dkr6|||d<ngt|�t|�krstdt|�t|�f��nx't||�D]\}	}
|
||	<q�Wy|j||||�Wq
tk
r�q
q
tk
r�Pq
Xq
WdS(Niis&Need %i items to unpack (got %i items)(R^RPR5tzipR_RR(RR�RuR/RVR[RXRaRoRRj((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR}s 


c
Cs�t}xu|D]m}|d|d}}|dkr=t}	n|j|d||�}	|	r
|j|d|||�Pq
q
WdS(Niitelseii(R^R|R_(
RRbRVR[RXRaR�RRyRW((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR~s
	c	Cs�t}yGyt||j|�}Wn#tk
rG}td|��nX|SWnwtj�}|d}t|dd�r�|jd}nt	|�}|j
||�f|_|d||d�nXdS(Ns invalid syntax in expression: %siRii(R^tevalR0tSyntaxErrorR3texc_infotgetattrRRRt_add_line_info(	RR�RVRyRaRjteR�targ0((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR|"s 
cBs�e}y||j|UWntej�}|d}|jr^|j|jd|�f|_n|jd|�f|_|d||d�nXdS(Niii(R^R0R3R�RR�R(RR�RVRyRaR�R�((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR{5s
	"c
Cs�t}y�|dkrdS|jrUyt|�}Wq�tk
rQt|�}q�XnHt|t�sst|�}nt	|�r�|j
r�|j|j
�}nWnPtj
�}|d}|j|jd|�f|_|d||d�n�X|jr�t|t�r�|j
s%td|��ny|j|j
�}Wq�tk
r}t|j|j|j|j|jd|��q�XnG|jr�t	|�r�|j
s�td|��n|j|j
�}n|SdS(NR]iiisHCannot decode bytes value %r into unicode (no default_encoding provided)s
 in string %rsHCannot encode unicode value %r into bytes (no default_encoding provided)(R^RR2tunicodetUnicodeDecodeErrorRRkRRRtdefault_encodingtencodeR3R�R�RRDRGtobjecttstarttendtreasontUnicodeEncodeError(RRjRyRaR�R�((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR�BsP	
	
	
	
cCs<d||d|df}|jr8|d|j7}n|S(Ns%s at line %s column %siis in file %s(R(RRRy((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR�ns
	N(RRRR0R�RR;RR(R&tclassmethodRLRZRSRTR_RmR}R~R|R{R�R�(((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR	Ss0
		+							+				
	,cKs4|jd�}t|d|d|�}|j|�S(Nt__nameRR.(tgetR	RZ(R/R.RURttmpl((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR
vscCst|d|�}|j|�S(NR(R	RZ(R/R�RFR�((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pytpaste_script_template_renderer|scBs5eZd�Zd�Zd�Zd�Zd�ZRS(cKs1x*|j�D]\}}t|||�q
WdS(N(RdRe(RRURRj((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR�scCs|||<dS(N((RRRj((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyt__setattr__�scCs0y||SWntk
r+t|��nXdS(N(tKeyErrortAttributeError(RR((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyt__getattr__�s
cCsXd|krDytj||�SWqTtk
r@tj|d�SXntj||�SdS(NRw(tdictt__getitem__R�(Rtkey((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR��s
cCsug|j�D]\}}||f^q
}|j�d|jjdjg|D]\}}d||f^qN�fS(Ns<%s %s>Rs%s=%r(RdtsortR%RR(RtktvRM((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyRL�s
+
	(RRRR�R�R�RL(((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR�s
					cBs,eZd�Zd�Zd�Zd�ZRS(cCs
||_dS(N(Rj(RRj((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR�scCs|jS(N(Rj(R((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR�scCs|jS(N(Rj(R((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyt__html__�scCsd|jj|jfS(Ns<%s %r>(R%RRj(R((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyRL�s(RRRRR�RL(((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR
�s			cCs�|r t|d�r |j�S|dkr0dSt|t�sNt|�}ntjdkr�t|t�r�t	j
|jd�d�}|jd�}nt	j
|d�}tjdkr�t
|�r�|jdd�}q�n|S(NR�R]t3tlatin1itasciitxmlcharrefreplace(RQR�RRkRRR3tversionRtcgitescapeRDR�R(Rjtforce((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyt
html_quote�s
cCs4t|�}t|�r*|jd�}nt|�S(NR+(RRR�t	url_quote(R�((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyturl�scKs�t|j��}|j�g}xe|D]]\}}|dkrGq)n|jd�rc|d }n|jdt|�t|�f�q)Wtdj|��S(Nt_i����s%s="%s"R(	tlistRdR�RR8RlR�R
R(RURbRRj((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pytattr�s

'c
BsHeZejj�Zejededede	de
��d�ZRS(R
R�R�R�cCsWt|d�r$|j�}t}nt}tj|||�}|rOt|�S|SdS(NR�(RQR�tFalseR^R	R�R�(RRjRyRtplain((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR��s	
(RRR	R0R1RRR�R
R�R�R�R�(((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR�s
cKs.|jd�}t|d|�}|j|�S(NR�R(R�RRZ(R/RURR�((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR�sR�cBsDeZdd�Zd�Zd�Zd�Zdd�Zd�ZRS(cCsC||_||_||_||_||_||_||_dS(N(t	_templatet
_func_namet_func_signaturet_bodyt_nst_post_bound_self(Rttemplatet	func_nametfunc_signatureRfRVRyt
bound_self((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR�s						cCs#d|j|j|jj|jfS(Ns"<tempita function %s(%s) at %s:%s>(R�R�R�RR�(R((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyRLscCs|�S(N((R((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR	scOs�|j||�}|jj�}|j|�|jdk	rM|j|d<ng}i}|jj|j|||�dj	|�S(NRR](
t_parse_signatureR�R1RRR�RR�R_R�R(RRRUtvaluesRVR[tsubdefs((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyt__call__s
c	CsD|dkr|S|j|j|j|j|j|j|jd|�S(NR�(RR%R�R�R�R�R�R�(Rtobjttype((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyt__get__s
cCs�i}|j\}}}}i}xc|j�D]U\}	}
|r`|	|kr`td|	��n|	|kry|
||<q.|
||	<q.Wt|�}t|�}x�|r=x'|r�|d|kr�|jd�q�W|r�|jd�}	|jd�||	<q�|rt|�||<Pq�tddjd�|D����q�WxK|j�D]=\}	}|	|krK|jj||j	|j
�||	<qKqKWx-|D]%}	|	|kr�td|	��q�q�W|r�|||<n|S(NsUnexpected argument %sisExtra position arguments: %ss, css|]}t|�VqdS(N(trepr(t.0R�((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pys	<genexpr>8ssMissing argument: %s(R�RdROR�R`ttupleRR�R|R�R�(RRRUR�tsig_argstvar_argstvar_kwtdefaultstextra_kwRRjt
value_expr((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR�sF
	!	 

N(	RRRRRLRR�R�R�(((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR��s				RccBseZd�Zd�ZRS(cCs||_t|�|_dS(N(t_TemplateObject__nametTemplateObjectGetterR�(RR((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyRHs	cCsd|jj|jfS(Ns<%s %s>(R%RR�(R((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyRLLs(RRRRL(((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyRcFs	R�cBs#eZd�Zd�Zd�ZRS(cCs
||_dS(N(t#_TemplateObjectGetter__template_obj(Rttemplate_obj((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyRRscCst|j|t�S(N(R�R�tEmpty(RR�((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR�UscCsd|jj|jfS(Ns<%s around %r>(R%RR�(R((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyRLXs(RRRR�RL(((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR�Ps		t_EmptycBsVeZd�Zd�Zd�Zd�Zd�Zd�Zej	dkrTeZ
nRS(cOs|S(N((RRRU((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR�]scCsdS(NR]((R((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR`scCsdS(NR�((R((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyRLcscCsdS(Nu((R((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyt__unicode__fscCs
td�S(N((titer(R((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyt__iter__iscCstS(N(R�(R((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyt__bool__lsR�(RRR�RRLR�R�R�R3R�t__nonzero__(((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR�\s						ic	Cs|dkr)tjdtjdf}nt}g}d}d}tjdtj|d�tj|d�f�}	x+|	j|�D]}
|
jd�}t	||
j
�|�}||dkr�|r�td|dd|d|��n:||dkr$|r$td	|dd|d|��n||dkrf|||
j�!}
|
r]|j
|
�nt}n&|j
|||
j�!|f�t}|
j
�}|}q�W|r�td
|dd|d|��n||}
|
r�|j
|
�n|rt|�}n|S(
sY
    Lex a string into chunks:

        >>> lex('hey')
        ['hey']
        >>> lex('hey {{you}}')
        ['hey ', ('you', (1, 7))]
        >>> lex('hey {{')
        Traceback (most recent call last):
            ...
        TemplateError: No }} to finish last expression at line 1 column 7
        >>> lex('hey }}')
        Traceback (most recent call last):
            ...
        TemplateError: }} outside expression at line 1 column 7
        >>> lex('hey {{ {{')
        Traceback (most recent call last):
            ...
        TemplateError: {{ inside expression at line 1 column 10

    R)R*iis%s|%ss%s inside expressionRRs%s outside expressionsNo %s to finish last expressionN(ii(RR	R0R�tretcompileR�tfinditertgroupt
find_positionR�RR�RlR^ttrim_lex(tsRttrim_whitespaceR-R.tin_exprtchunkstlasttlast_posttoken_retmatchRuRyR�((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pytlexzsL
	 

s.^(?:if |elif |for |def |inherit |default |py:)R�tendiftendfortenddefRqRrs\n\r?[\t ]*$s	^[\t ]*\nc	Csrd}xett|��D]Q}||}t||t�rBqn|d}tj|�rn|tkrnqn|s}d}n||d}|dt|�kr�d}n||d}t|t�st|t�r�qn|p�tj|�}|dkr|j	�rt
}n|dk	rH|d|krH|j	�rHd}n|r|s�tj|�s�|t|�dkr|j	�r|r�|dkr�|j	�s�|dkr�d||d<q�tj|�}||j�d }|||d<n|rj|}|t|�dkr7|j	�r7d||d<qgtj|�}||j
�}|||d<qjqqW|S(sa
    Takes a lexed set of tokens, and removes whitespace when there is
    a directive on a line by itself:

       >>> tokens = lex('{{if x}}\nx\n{{endif}}\ny', trim_whitespace=False)
       >>> tokens
       [('if x', (1, 3)), '\nx\n', ('endif', (3, 3)), '\ny']
       >>> trim_lex(tokens)
       [('if x', (1, 3)), 'x\n', ('endif', (3, 3)), 'y']
    iR]iiR�N(RtrangeRPRkRtstatement_retsearchtsingle_statementsttrail_whitespace_retstripR^tlead_whitespace_reR�R�(	ttokenst	last_trimtitcurrentRotprevt
next_chunktprev_oktm((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR��sP

			)	##cCs2|| j�}t|�|t|d�dfS(s/Given a string and index, return (line, column)i����i(t
splitlinesRP(tstringtindexR-tleading((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR��scCs�|dkr)tjdtjdf}nt|d|d|d|�}g}x,|r{t||�\}}|j|�qPW|S(s�
    Parses a string into a kind of AST

        >>> parse('{{x}}')
        [('expr', (1, 3), 'x')]
        >>> parse('foo')
        ['foo']
        >>> parse('{{if x}}test{{endif}}')
        [('cond', (1, 3), ('if', (1, 3), 'x', ['test']))]
        >>> parse('series->{{for x in y}}x={{x}}{{endfor}}')
        ['series->', ('for', (1, 11), ('x',), 'y', ['x=', ('expr', (1, 27), 'x')])]
        >>> parse('{{for x, y in z:}}{{continue}}{{endfor}}')
        [('for', (1, 3), ('x', 'y'), 'z', [('continue', (1, 21))])]
        >>> parse('{{py:x=1}}')
        [('py', (1, 3), 'x=1')]
        >>> parse('{{if x}}a{{elif y}}b{{else}}c{{endif}}')
        [('cond', (1, 3), ('if', (1, 3), 'x', ['a']), ('elif', (1, 12), 'y', ['b']), ('else', (1, 23), None, ['c']))]

    Some exceptions::

        >>> parse('{{continue}}')
        Traceback (most recent call last):
            ...
        TemplateError: continue outside of for loop at line 1 column 3
        >>> parse('{{if x}}foo')
        Traceback (most recent call last):
            ...
        TemplateError: No {{endif}} at line 1 column 3
        >>> parse('{{else}}')
        Traceback (most recent call last):
            ...
        TemplateError: else outside of an if block at line 1 column 3
        >>> parse('{{if x}}{{for x in y}}{{endif}}{{endfor}}')
        Traceback (most recent call last):
            ...
        TemplateError: Unexpected endif at line 1 column 25
        >>> parse('{{if}}{{endif}}')
        Traceback (most recent call last):
            ...
        TemplateError: if with no expression at line 1 column 3
        >>> parse('{{for x y}}{{endfor}}')
        Traceback (most recent call last):
            ...
        TemplateError: Bad for (no "in") in 'x y' at line 1 column 3
        >>> parse('{{py:x=1\ny=2}}')
        Traceback (most recent call last):
            ...
        TemplateError: Multi-line py blocks must start with a newline at line 1 column 3
    R)R*RR-R.N(RR	R0R�t
parse_exprRl(R�RR-R.R�RWR�((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR9�s2
	cCs�t|dt�r%|d|dfS|d\}}|j�}|jd�r|djd�}|jd�s�|jd�r�|jd�}d|kr�|jdd�}|jdd	�}n|d7}n'd|kr�td
d|d|��nd
||f|dfS|d$krUd|krAtdd|d|��n||f|dfS|jd�rtt|||�S|jd�s�|dkr�td|j�dd|d|��n|d%kr�td|d|d|��n�|d&krtd|d|d|��n�|jd�r-t	|||�S|jd�rLt
|||�S|jd�rkt|||�S|jd �r�t|||�S|jd!�r�d"||ddf|dfSd#||ddf|dfS('Niispy:is 	s
s
s
R]s.Multi-line py blocks must start with a newlineRRRpRqRrRsscontinue outside of for loopsif selif R�s%s outside of an if blocktiftelifs%s with no expressionR�R�R�s
Unexpected %ssfor sdefault sinherit sdef t#RzRu(scontinuesbreak(RRsfor(R�R�R�(
RkRR�t
startswithtlstriptreplaceRt
parse_condRt	parse_fort
parse_defaultt
parse_inheritt	parse_def(R�RtcontextRuRy((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR<sb


cCs�|dd}g}|d	}x�|sBtdd|d|��nt|dt�r�|dddkr�d|ft|�|dfSt|||�\}}|j|�q!dS(
NiiRsMissing {{endif}}RRR�Rt(sif(RRkR�tparse_one_condRl(R�RRR�tpiecesR�((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR
qs
cCsf|d|d\}}}g}|jd�r=|d }n|jd�rkd||dj�|f}nO|jd�r�d	||d
j�|f}n!|dkr�d|d|f}nx�|s�tdd
|d|��nt|dt�r:|dddks0|ddjd�s0|dddkr:||fSt|||�\}}|j|�q�dS(Niit:i����sif Riselif RiR�sNo {{endif}}RRR�(	R8R
RRRRkR�RRl(R�RRtfirstRyR/R�R�((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR�s,

cCs�|d\}}|d}d|}g}|jd�rF|d }n|dj�}tj|�}|s�td|d|d	|��n||j� }d
|kr�td|d|d	|��ntg||j� jd�D]}|j�r�|j�^q��}||j�}	x�|s=td
d|d	|��nt	|dt�r�|dddkr�d|||	|f|dfSt
|||�\}
}|j|
�qdS(NiiRsRi����isBad for (no "in") in %rRRt(s=You cannot have () in the variable section of a for loop (%r)t,s
No {{endfor}}R�(sfor(R8R�tin_reR�RR�R�RR�RkRRl(R�RRRRyR/R�R�R�RuR�((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR�s>



 !cCs�|d\}}|jdd�d}|jdd�}t|�dkritd|d|d|��n|dj�}d|kr�tdd|d|��ntj|�s�td	|d|d|��n|dj�}d
|||f|dfS(Niit=s:Expression must be {{default var=value}}; no = found in %rRRRs'{{default x, y = ...}} is not supporteds-Not a valid variable name for {{default}}: %rRw(RRRPRR�tvar_reR�(R�RRRRyRbR�Ru((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR�s$
cCs=|d\}}|jdd�d}d||f|dfS(NiiRY(RR(R�RRRRyRu((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR�sc
Csy|d\}}|d}|jdd�d}|jd�rL|d }nd|krs|}d
ddif}nb|jd�s�td|d|d	|��n4|d }|jdd�\}}t|||�}|d}g}x�|s	tdd|d	|��nt|dt�rM|dddkrMd
||||f|dfSt|||�\}	}|j|	�q�dS(NiiRi����Rt)s*Function definition doesn't end with ): %sRRRxsMissing {{enddef}}R�((sdef(	RRR8Rtparse_signatureRkR�RRl(
R�RRRR�R�tsigtsig_textR/R�((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR�s4




cs�tjt|�j��g}d}d}i}t�fd�}x/d}|�\}	}
|	tjkrmPn|	tjkr�|
dks�|
dkr�|
}|�\}	}
n|	tjkr�t	d|d|d|��n|
}|�\}	}
|	tjks|	tjkri|
dkri|dkr.|}n"|dkrC|}n
|j
|�|	tjkrEPqEqEn|dk	r�t	d|d|d|��n|	tjkrE|
dkrEd}d}
d	}d}}g}x�|t�\}	}
}}|dkr|}n|}|	tjkr;|r;t	d|d|d|��n|r�|	tjksl|	tjkr�|
dkr�t|||�}|||<|j
|�Pn|j
|	|
f�|r�|	tjkr�|
|kr�|d
7}q�|r|	tjkr|
|
kr|d
8}|skd}}
qkq�|r�|	tjkr�|
dkr�|
}d
}idd6dd6dd
6|}
q�q�qEqE||||fS(Ncsyy+t��\}}\}}\}}}Wntk
rHtjdfSX|rk||||f||ffS||fSdS(NR](Rt
StopIterationttokenizet	ENDMARKER(Ryttok_typet
tok_stringtsrowtscolterowtecoltline(R�(sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyt	get_tokens+
t*s**sInvalid signature: (%s)RRRRiiRt[t{Rt]t}(RR,R-(
R!tgenerate_tokensRtreadlineRR�R"tOPtNAMERRlR^tisolate_expression(RRRyR�tvar_argR�R�R*tvar_arg_typeR#R$tvar_namet	nest_typetunnest_typet
nest_countt	start_postend_posRbR�R�tdefault_expr((R�sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR�s~	'
*		


	
*

!
!
"+c	Cs�|\}}|d8}|\}}|d8}|jt�}||krV||||!S|||g}|j||d|!�|t|�kr�|j||| �ndj|�S(NiR](RR^textendRPRlR(	RR;R<R%R&R'R(tlinesRb((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyR4Gs

sn%prog [OPTIONS] TEMPLATE arg=value

Use py:arg=value to set a Python value; otherwise all values are
strings.
c	Cs�ddl}ddl}ddl}ddl}|dkrL|jd}n|jd�}|jdt|�dt	�}|j
dddd	d
ddd
�|j
ddddddd�|j
ddddddd�|j|�\}}t|�dkrdGH|j
d�n|d}|d}i}	|jrK|	j|j�nx}|D]u}
d|
kr}d|
GH|j
d�n|
jdd�\}}
|jd�r�|d }t|
�}
n|
|	|<qRW|dkr�|jj�}d}n%t|d�}
|
j�}|
j�|jr&t}nt}||d |�}|j|	�}|jr�t|jd!�}
|
j|�|
j�n|jj|�dS("Ni����itPasteR�tusages-os--outputtdesttoutputtmetavartFILENAMEthelps(File to write output to (default stdout)s--htmltuse_htmltactiont
store_trues9Use HTML style filling (including automatic HTML quoting)s--envtuse_envs-Put the environment in as top-level variabless!You must give a template filenameiiRsBad argument: %rspy:it-s<stdin>R@Rtwb(R3toptparset
pkg_resourcesR"Rtargvtget_distributiontOptionParserRt_fill_command_usaget
add_optiont
parse_argsRPtexitRJRRtenvironRR
R�tstdinRBRARCRGRR	RZRCtwritetstdout(RR3RMRNR"tdisttparsertoptionst
template_nameR�RjRttemplate_contentRHt
TemplateClassR�RW((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pytfill_command^sv			

	
	
	
			

t__main__(DRR�R3R�turllibRR�R"R!t	cStringIORttempita._looperRttempita.compat3RRRRRt__all__R�RtIRRRRRR(R�R	RR
R�R�RR
R^R�R�R�RRR�RcR�R�R�R�R�R�R�R�R�R�R9RR
RRRRRRR4RRR`R(((sA/opt/alt/python27/lib/python2.7/site-packages/tempita/__init__.pyt<module>sn(	�$%		
	M
	>	;	=5			#				L	@

Zerion Mini Shell 1.0