@Qc@sddlZdZdddYZedkrdZidd6d d 6id d 6id d 6d d6gd6idd6dd6d6idd 6idd 6dd6gd6idd6dd6d6gd6ZeeZejejddGHndS(iNit MiniTemplatecBs,eZdZdZdZdZRS(cCstjd||_dS(Ns({{[^}]+}}|\[\[[^]]+\]\])(tretsplitt_tokens(tselfttempl((s..\workbench\template.pyt__init__scCs1dtg|j| D]}|jd^qS(Nsline %s s (tsumRtcount(Rttok((s..\workbench\template.pytt2lsc Cs |dk sttrcddl}d|jdjdddjjddjGHndd }x|t|jkr|j|}}trd t|d |j |d j ||j|fGHn|j d r|j dr|dd!}y`|ddkrW|||d} | dk rNt t| } qfd} n|||} Wntk rtd|j ||d j ||jfnGtk r} td|j || d j ||jfnX| dk r|j| qn|j dr|j drtrDd|GHn|dd!}|dd.kr|d|dj ds|dn|dkrtrd|j |d j |||fGHn|ddkrd} |d7}x|t|jkr|j|d|ddkr6| d8} | dkrtPqtn>|j|d|ddd|ddfkrt| d7} n|d7}qWn|S|ddkr%|d}t} |j drEyMt|d||} trd |j |||j| fGHnd!}WqEtk rA}d"|j |||j|fGHqEXn| si|j|r|||rtrd#|j |d j ||g|dfGHn|j||d|||g}qtrd$|j |d j ||g|d|||fGHnd} |d7}x|t|jkr |j|d%|dkr| dkr|j||d|||g}|d7}d} Pnn|j|d|dkr| d8} | dkrPqn6|j|d|dd|dfkr| d7} n|d7}qW| dkrd&|GHqqy|||}WnEtk rtd|j ||d j ||jfnXt|tkrytrd'|j |d j ||t|fGHn|}xt|D]\}}t|}t |d|d(<|t|dkr*d|d) process %s: %s, token: %s (%i)R s{{s}}it#t0s1%s: No value for key %s. context: %s possible: %ss %s: %s. context: %s possible: %ss[[s]]sFound block %st/t!t[s'%s: leaving context %s through %s at %ss[[/s[[?t?sif|is$%s: evaluated %s in context %s to %stifs)%s: Error evaluating %s in context %s: %ss%s: entering context %s at %ssI%s: context %s at %s has no value for block %s, trynig to find !%s or /%ss[[!s/%s not found!s/%s: token %s in context %s is a list of size %is:#tneedseps%s: entering lcontext %s at %ss[%s]sempty list %s, skip %s (%i)sleaving at token %i(RR(RtAssertionErrortdebugt tracebackt format_stackRtstriptlenRR tjoint startswithtendswithtstrtKeyErrortkeyst ValueErrortappendtFalsetevalt Exceptionthas_keytrender_ttypetlistt enumeratetdict(RtdatatitresulttcontextR!Rt orig_tokenttokentltoutteRtentertexctsubRtjtitemtitemd((s..\workbench\template.pyR1s ? >    78   A*   1  ' $ $2&; '#   )   80   9.   )  2&  cCsBg}|j|d|gdjg|D]}t|^q)S(NiR (R1R%R((RR6R<ts((s..\workbench\template.pytrenders(t__name__t __module__RR R1RF(((s..\workbench\template.pyRs   t__main__s {{title}} [[objects]] {{name}} There are {{#subobjects}} objects in this object: {{:#}}.[[subobjects]]{{:#}} - {{name}} [[?error]]ERROR![[/error]][[/subobjects]] Type: {{thing.type}} [[thing]] Value: {{value}} [[/thing]] [[/objects]] tTitlettitles Some Nametnametobject1t subobject1iterrort subobjectstintR2i90tvaluetthingtobject2t subobject1of2R(tqqqqtobjectss\ R (( RR RRGttemplateR6ttemRFtreplace(((s..\workbench\template.pyts*