ó žòœMc @sÃdZddlZddlZddlmZddlmZmZmZm Z m Z dZ e e e e e e eed„Zdefd„ƒYZd efd „ƒYZd efd „ƒYZdS( sVprovides functionality for rendering a parsetree constructing into module source code.iÿÿÿÿN(t PythonPrinter(tutiltastt parsetreetfilterst exceptionsic Cs{tj r+t|tƒr+|j|ƒ}ntjƒ} t| ƒ} t| t||||||||| ƒ |ƒ| j ƒS(s\Generate module source code given a parsetree node, uri, and optional source filename( Rtpy3kt isinstancetunicodetencodetFastEncodingBufferRt_GenerateRenderMethodt_CompileContexttgetvalue( tnodeturitfilenametdefault_filterstbuffer_filterstimportstsource_encodingtgenerate_magic_commenttdisable_unicodetstrict_undefinedtbuftprinter((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pytcompiles   R cBseZd„ZRS(c CsU||_||_||_||_||_||_||_||_| |_dS(N( RRRRRRRRR( tselfRRRRRRRRR((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyt__init__7s        (t__name__t __module__R(((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyR 6sR cBseZdZd„Zed„ƒZd„Zd„Zd„Zd„Z d„Z e dd„Z d „Zd „Zd „Zed „Ze e d „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(s_A template visitor object which generates the full module source for a template. c Cs ||_d|_||_||_dg|_t|tjtj fƒ|_ |j rðd|j }|j ƒ}t |jjƒdk}t|jjddƒƒ}t|jjddƒƒ}d} d} |jr||j r||dg7}q|nŒ|jƒ} |jj} d}| dk rc| jj ƒ}| jjsE|dg7}nt| jjddƒƒ}ndg}t}t}}|dkr”d g}n gd g|D] } | ^q¢}|j| pÃ||||||ƒ| dk rx!| D]}t|||ƒqéWndS( Niÿÿÿÿs render_%sitbufferedtFalsetcacheds **pageargst render_bodytcontext(Rtlast_source_linetcompilerRtNonetidentifier_stackRRtDefTagtBlockTagtin_deftfuncnametget_argument_expressionstlent filter_argstargstevalt attributestgettis_blockt is_anonymoustwrite_topleveltpagetagt body_decltkwargsR twrite_render_callableR ( RRR%RtnameR/tfilteredRR!tdefsR6ta((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyRPsJ                     cCs |jdS(Niÿÿÿÿ(R'(R((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyt identifiers~sc sUg‰i‰g‰dg}dˆj_dtf‡‡‡‡fd†ƒY}|ƒ}x!ˆjjD]}|j|ƒqbWˆˆj_tƒ}x#ˆD]}|j |j ƒƒ}q•Wt ƒ}||_ ˆjj rûˆjjrûˆjjdˆjjƒnˆjjdƒˆjjdƒˆjjdƒˆjjdƒˆjjdtƒˆjjd tjƒƒˆjjd ˆjjƒˆjjd ˆjjƒˆjjd ƒˆjjd ˆjjƒˆjjr8d}x2ˆjjD]$}||d7}ˆjj|ƒqæWtj|ddddddddƒ} nd} |jˆjƒ} |jj | jƒ|_|j jdƒ| r”|j j| j ƒn|ˆj_ˆjjdg| jjƒD]}|j^q¼ƒˆjjdƒt ˆƒrÿˆj!ˆƒnt ˆƒr,ˆj"ˆƒˆj#ˆdƒnt ˆƒrHˆj"ˆƒn| jjƒS(syTraverse a template structure for module-level directives and generate the start of module-level code. t FindTopLevelcsDeZ‡fd†Z‡fd†Z‡fd†Z‡fd†ZRS(csˆj|ƒdS(N(tappend(tsR(tinherit(s2/usr/lib/python2.7/vendor-packages/mako/codegen.pytvisitInheritTagscs|ˆ|jtvaluesR:twriteR-twrite_module_codetwrite_namespacest write_inherit( RtencodingR?tftnt module_identtmodule_identifiersRtimptimpcodetmain_identifiers((RBRHRDRs2/usr/lib/python2.7/vendor-packages/mako/codegen.pyR5‚s|  %                  $    c Csý|jr2|j}|r2|jjd|ƒq2n|jjd|dj|ƒfddƒ|sm|sm|r€|jjdƒn|jj|jj j |j ƒƒ|j s¸|j j rÞd|krÞ|jdj jd ƒn|j r[t|j jƒd kst|j j ƒd kr[|jjd djg|j j D]}d ||f^q7ƒƒn|j|j d tƒx!|j jD]} | j|ƒq~W|j|j |||ƒ|jjdƒ|jjdƒ|rù|j|||||j d tƒndS(sowrite a top-level render callable. this could be the main render() method or that of a top-level def.s@runtime._decorate_toplevel(%s)s def %s(%s):t,s"context.caller_stack._push_frame()stry:scontext._push_buffer()s **pageargsiÿÿÿÿtpageargsis!__M_locals = __M_dict_builtin(%s)s%s=%sttoplevels N(R*t decoratorRRWt writelinestjoinR'R@R%R>R[RR3targument_declaredR]R-tlocally_assignedtwrite_variable_declarestTrueRPRQtwrite_def_finishR&R`twrite_cache_decorator( RRR:R/RR;R!RotxRf((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyR9às>   ""  .cCs5x.|D]&}|j|ƒ|jj|jƒqWdS(sfwrite module-level template code, i.e. that which is enclosed in <%! %> tags in the template.N(twrite_source_commentRtwrite_indented_blockttext(RRHRf((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyRas  cCs(|jjddd|jddƒdS(s:write the module-level inheritance-determination callable.s%def _mako_inherit(template, context):s"_mako_generate_namespaces(context)s8return runtime._inherit_from(context, %s, _template_uri)tfileN(RRptparsed_attributesR&(RR((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyRcs   c s‚ˆjjddddddddƒˆjjdƒx|jƒD] }|jjdƒritˆj_ nˆj |ƒt |j ƒrDˆjjdƒg‰ˆjj j|ƒ‰tˆ_d tf‡‡‡fd †ƒY}|ƒ}x|j D]}|j|ƒqîWˆjjd d jˆƒƒˆjjdƒtˆ_d }nd}d|jkr‹ˆjjd|j|jjddƒ|fƒn^d|jkr̈jjd|j||jjddƒfƒnˆjjd|j|fƒt|jjddƒƒrˆjjd|jƒnˆjjdt|jƒƒˆjjdƒqBWt |ƒsnˆjjdƒnˆjjdƒdS(s5write the module-level namespace-generating callable.s'def _mako_get_namespace(context, name):stry:s+return context.namespaces[(__name__, name)]sexcept KeyError:s"_mako_generate_namespaces(context)s'def _mako_generate_namespaces(context):timportsdef make_namespace():t NSDefVisitorcs/eZd„Zd„Z‡‡‡fd†ZRS(cSs|j|ƒdS(N(tvisitDefOrBase(RAR((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyt visitDefTag8scSs|j|ƒdS(N(R€(RAR((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyt visitBlockTag;scsK|jr!tjd|j‚nˆj|ˆdtƒˆj|jƒdS(Ns.Can't put anonymous blocks inside <%namespace>tnested(R4RtCompileExceptiontexception_kwargstwrite_inline_defR R@R+(RAR(texportR>R(s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyR€>s  (RRRR‚R€((R‡R>R(s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyR7s  s return [%s]Rlsmake_namespace()R&R|s€ns = runtime.TemplateNamespace(%r, context._clean_inheritance_tokens(), templateuri=%s, callables=%s, calling_uri=_template_uri)tmodulesyns = runtime.ModuleNamespace(%r, context._clean_inheritance_tokens(), callables=%s, calling_uri=_template_uri, module=%s)shns = runtime.Namespace(%r, context._clean_inheritance_tokens(), callables=%s, calling_uri=_template_uri)t inheritableR scontext['self'].%s = nss'context.namespaces[(__name__, %s)] = nss tpassN(RRpR&RWR_R1thas_keyRuR%thas_ns_importsRyR-RPR>R[R*RORQRqR R}R:R2R0treprR`(RRDRRtvisRft callable_name((R‡R>Rs2/usr/lib/python2.7/vendor-packages/mako/codegen.pyRb sd    "        c Cs tg|jD]}|j|f^q ƒ}tƒ}|j|jƒ}|jg|jjƒD]}|j^q\ƒ}|j|j ƒ}|j|j ƒ}|dk r¶|j |ƒ}n|rUt |jdtƒrU|jjdƒt|j_xe|jjjƒD]N\}}|jjdƒr|jjd|tjd|jdƒfƒqqWnx¡|D]™}||krî||} | jr¶| js|j| |ƒqë|j| |dtƒqõ| jƒrÕ|j| |ƒqõ|j| |dtƒq\||jjkr|jjd||fƒq\t |jdtƒr¢|jjr‚|jj d||fd |d d ||fd d |ddƒqõ|jjd|||fƒq\|jjrÛ|jj d d ||fd d |dƒq\|jjd||fƒq\W|jjdƒdS(s write variable declarations at the top of a function. the variable declarations are in the form of callable definitions for defs and/or name lookup within the function's context argument. the names declared are based on the names that are referenced in the function body, which don't otherwise have any explicit assignment operation. names that are assigned within the body are assumed to be locally-scoped variables and are not separately declared. for def callable definitions, if the def is a top-level callable then a 'stub' callable is generated which wraps the current Context into a closure. if the def is not top-level, it is fully rendered as a local closure. RŒs_import_ns = {}R~s:_mako_get_namespace(context, %r)._populate(_import_ns, %r)s\s*,\s*Rƒs%%s = _mako_get_namespace(context, %r)s"%s = _import_ns.get(%r, UNDEFINED)sif %s is UNDEFINED:stry:s%s = context[%r]sexcept KeyError:s&raise NameError("'%s' is not defined")s3%s = _import_ns.get(%r, context.get(%r, UNDEFINED))s%s = context.get(%r, UNDEFINED)s__M_writer = context.writer()N(!tdictR<R+RRRSt undeclaredt closuredefsR_t differenceRrtlocally_declaredR&t intersectiontgetattrR%R RRWRut has_importsRDt iteritemsR1R‹tretsplitR3R4twrite_def_declR†tis_rootRRp( RR>Rntlimittct comp_identstto_writetidenttnstcomp((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyRtvsr+ .   (                  cCs<|j|jkr8|jjd|jƒ|j|_ndS(sUwrite a source comment containing the line number of the corresponding template line.s# SOURCE LINE %dN(R$RLRRW(RR((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyRyæscCsÞ|j}|jƒ}|jdtƒ}|j rtt|jjƒdksat|jjƒdkrt|jddƒn|jddƒ|j j d|dj |ƒfƒ|j j d|dj |ƒfƒ|j j dƒdS( s>write a locally-available callable referencing a top-level deftinclude_defaultsiscontext.locals_(__M_locals)R#s def %s(%s):Rlsreturn render_%s(%s)N( R+R,R R*R-R>RsRrtinsertRRWRqR&(RRR>R+t namedeclstnameargs((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyR›ìs   ##c Cs™|jƒ}|j}|r2|jjd|ƒn|jjd|jdj|ƒfƒt|jjƒdk}t |j j ddƒƒ}t |j j ddƒƒ}|jj dd ƒ|sË|sË|rÞ|jj d ƒn|j |d |ƒ}|j|ƒ|jj|ƒx|jD]} | j|ƒqW|jjƒ|j||||ƒ|jjdƒ|r•|j||j|t|d td tƒndS(s?write a locally-available def callable inside an enclosing def.s&@runtime._decorate_inline(context, %s)s def %s(%s):RliRR R!s"context.caller_stack._push_frame()stry:scontext._push_buffer()RƒtinlineRnN(R,RoRRWR+RqR-R.R/R0R1R2RpR[RtR'R@RPRQtpopRvR&RwR Ru( RRR>RƒR¦RoR;RR!Rf((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyR†üs4  &      cCsM| rG| rG| rG|jjdƒ|rG|jjddd ƒqGn|sY|sY|rI|se|r{|jjddƒn|jjddƒ|r§|jjdƒnd}|rÑ|j|jj|tƒ}n|jjd ƒ|r | r |j|jj |tƒ}n|s|r/|jjd|ƒqI|jjd|dƒnd S( s;write the end section of a rendering function, either outermost or inline. this takes into account if the rendering function was filtered, buffered, etc. and closes the corresponding try: block if any, and writes code to retrieve captured content, apply filters, send proper return value.s return ''sfinally:s!context.caller_stack._pop_frame()s__M_buf = context._pop_buffer()s6__M_buf, __M_writer = context._pop_buffer_and_writer()s__M_buf.getvalue()s return %ss__M_writer(%s)N( RRWRpR&tcreate_filter_callableR.R/R R%R(RRRR;R!t callstackRA((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyRv!s8         c Cs¹|jjd||fƒ|jjdt|ƒƒ}i} xÿddddfD]ë} |jj| d dƒ} | dk r·| d dkr¦tt| ƒƒ| | d R¨Rntcachekeyt cacheargstargtvalR=t pass_argstktvRA((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyRwRsL  !#@ 5 5c s‡fd†}d|krk|rkˆjjrFˆjjjj|}nˆjjrhˆjj|}qhqknx|D]•}|dkrŠqrntjd|ƒ}|rÓ|jddƒ\}}||ƒ} | |}n$|} ||ƒ}|dk s÷t ‚d||f}qrW|S(s©write a filter-applying expression based on the filters present in the given filter names, adjusting for the global 'default' filter aliases as needed.csPtjd|ƒrd|Sˆjjr9tjj||ƒStjj||ƒSdS(Ns decode\..+sfilters.(R™tmatchR%RRtNON_UNICODE_ESCAPESR2tDEFAULT_ESCAPES(R:(R(s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyt locate_encode“s  Rfs (.+?)(\(.*\))iis%s(%s)N( R%R6R.R/RR™RÀtgroupR&tAssertionError( RR/ttargett is_expressionRÃtetmR¡tfargsReRx((Rs2/usr/lib/python2.7/vendor-packages/mako/codegen.pyRªŽs(        cCs¬|j|ƒt|jƒsX|jjdk rFt|jjjjƒsXt|jjƒr‘|j |j jd|j t ƒ}|j jd|ƒn|j jd|j ƒdS(Ns%ss__M_writer(%s)(RyR-tescapesR%R6R&R.R/RRªt escapes_codeR{RuRRW(RRRA((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pytvisitExpression±s "cCs_|jr;|jƒs(|jjdƒn|jjdƒn |j|ƒ|jj|jƒdS(NRŠ(tisendt get_childrenRRWR&RyR{(RR((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pytvisitControlLine¿s    cCs.|j|ƒ|jjdt|jƒƒdS(Ns__M_writer(%s)(RyRRWRtcontent(RR((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyt visitTextÈs cCs”t|jjƒdk}|r4|jjddƒnx|jD]}|j|ƒq>W|r|jjddd|j|jjdtƒdƒndS(Nis#__M_writer = context._push_writer()stry:sfinally:s6__M_buf, __M_writer = context._pop_buffer_and_writer()s__M_writer(%s)s__M_buf.getvalue()( R-R.R/RRpRPRQRªR R&(RRR;Rf((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyt visitTextTagÌs"    cCs¡|js|j|ƒ|jj|jƒ|j rt|jjƒdkr|jj dƒ|jj ddj g|j ƒD]}t |ƒ^qzƒƒqndS(Nis0__M_locals_builtin_stored = __M_locals_builtin()s__M_locals.update(__M_dict_builtin([(__M_key, __M_locals_builtin_stored[__M_key]) for __M_key in [%s] if __M_key in __M_locals_builtin_stored]))Rl( RGRyRRzR{R*R-R>RsRWRqRTR(RRRx((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyRIás  " cCsh|j|ƒ|jjdƒ}|rI|jjd|jd|fƒn|jjd|jdƒdS(NR/s5runtime._include_file(context, %s, _template_uri, %s)R|s1runtime._include_file(context, %s, _template_uri)(RyR1R2RRWR}(RRR/((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pytvisitIncludeTagòs   cCsdS(N((RR((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyREþscCsdS(N((RR((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyRscCs“|jr#|jjd|jƒnl|jdtƒ}|dg7}|jjd|jƒ|jjd|jdj|ƒfƒ|jjdƒdS(Ns%s()R¤s **pageargssOif 'parent' not in context._data or not hasattr(context._data['parent'], '%s'):scontext['self'].%s(%s)Rls (R4RRWR+R,R Rq(RRR§((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyR‚s    &cCs|j|ƒdS(N(t visitCallTag(RR((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pytvisitCallNamespaceTagscsíˆjjdƒdg‰ˆjj|dtƒ‰ˆj|dtƒ‰ˆjdƒˆjjˆƒdt f‡‡‡‡fd†ƒY}|ƒ}x|j D]}|j |ƒq›Wˆjj ƒ|j jƒ}ˆjjddj|ƒƒt}|r ˆjjd d ƒnˆjˆƒˆjjˆƒx|j D]}|j ˆƒq4Wˆjj ƒˆj||ttd tƒˆjjdd djˆƒdƒˆjjd dd ƒˆj|ƒˆjjdˆjg|jtƒdddƒdS(Nsdef ccall(caller):tbodyRƒtcallert DefVisitorcs2eZd„Zd„Z‡‡‡‡fd†ZRS(cSs|j|ƒdS(N(R€(RAR((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyR#scSs|j|ƒdS(N(R€(RAR((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyR‚&scsXˆj|ˆdtƒ|js2ˆj|jƒn|jˆjkrTˆj|j=ndS(NRƒ(R†R R4R@R+R’(RAR(tbody_identifierstcallable_identifiersR‡R(s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyR€)s  (RRRR‚R€((RÚRÛR‡R(s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyRÙ"s  s def body(%s):Rlscontext._push_buffer()stry:R«s return [%s]s+caller = context.caller_stack._get_caller()s_context.caller_stack.nextcaller = runtime.Namespace('caller', context, callables=ccall(caller))s__M_writer(%s)sfinally:s&context.caller_stack.nextcaller = None(RRWR>R[RuR t add_declaredR'R@RORPRQR©R7R,RqRpRtRvR&RyRªt expression(RRRÙRŽRftbodyargsR((RÚRÛR‡Rs2/usr/lib/python2.7/vendor-packages/mako/codegen.pyRÕsL  %          N( RRt__doc__RtpropertyR>R5R9RaRcRbR R&RtRyR›R†RuRvRwRªRÍRÐRÒRÓRIRÔRERR‚RÖRÕ(((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyR Ks4 . ^ .  Vp   % 3: #       RUcBs¶eZdZdded„Zd„Zed„ƒZd„Z d„Z d„Z d„Z d„Z d „Zd „Zd „Zd „Zd „Zd„Zd„Zd„Zd„ZRS(sCtracks the status of identifier names as template code is rendered.cCsJ|dk rÇt|tjƒr<tƒ|_tjƒ|_qât|jƒj g|j j ƒD]}|j ^q[ƒj |j ƒj |jƒ|_|r¯|jj |jƒ|_ntj|j|_ntƒ|_tjƒ|_tƒ|_tƒ|_ tƒ|_tƒ|_tjƒ|_ ||_|dk rF|j|ƒndS(N(R&RRt NamespaceTagRRRVRt SetLikeDictR\RSR’R_R:R”RrR‘RsRRQ(RRtparentRƒRž((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyRbs*  (        cKst|||S(sXcreate a new Identifiers for a new Node, with this Identifiers as the parent.(RU(RRR8((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyR[™scCst|jj|jƒjƒƒS(N(RRR\RSR’R_(R((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyR<ŸscCsvdt|jƒt|jƒt|jƒg|jjƒD]}|j^q7g|jjƒD]}|j^qY|jfS(NsrIdentifiers(declared=%r, locally_declared=%r, undeclared=%r, topleveldefs=%r, closuredefs=%r, argumentdeclared=%r)( tlistRVR”R‘R\R_R:R’Rr(RRž((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyt__repr__£s   ""cCs|xN|jƒD]@}|dkr ||jj|jƒkr |jj|ƒq q Wx$|jƒD]}|jj|ƒq^WdS(squpdate the state of this Identifiers with the undeclared and declared identifiers of the given node.R#N(R·RVRSR”R‘R]RT(RRR¡((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pytcheck_declared®s 'cCs6|jj|ƒ||jkr2|jj|ƒndS(N(RVR]R‘tremove(RR¡((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyRܸscCs|j|ƒdS(N(Ræ(RR((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyRͽscCs|j|ƒdS(N(Ræ(RR((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyRÐÀscCs8|js4|j|ƒ|jj|jƒƒ|_ndS(N(RGRæRsRSRT(RR((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyRIÃs  cCs7|j|kr3x!|jD]}|j|ƒqWndS(N(RRPRQ(RRRf((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyREÈscCsl|j|jƒ}|||j<|dk rh||k rh|jsI|jrhtjd|j|j‚ndS(Ns<%%def or %%block named '%s' already exists in this template.(R2R+R&R3RR„R…(Rt collectionRtexisting((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyt_check_name_existsÐs   cCs|jƒr,|j r,|j|j|ƒn%||jk rQ|j|j|ƒnxN|jƒD]@}|dkr^||jj|j ƒkr^|j j |ƒq^q^W||jkrüx$|j ƒD]}|j j |ƒq¾Wx!|jD]}|j|ƒqâWndS(NR#(RœR4RêR\RR’R·RVRSR”R‘R]RTRrRPRQ(RRR¡Rf((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyRÛs'cCs?||jk rœ|j rœt|jtjƒrYtjd|j|jjf|j‚qœt|jtj tj fƒrœtjd|jf|j‚qœn|jsÎ|j |j |ƒ|j j|jƒn%||jk ró|j |j|ƒnx$|jƒD]}|jj|ƒqWx|jD]}|j|ƒq$WdS(Ns/Named block '%s' not allowed inside of def '%s's3Named block '%s' not allowed inside of <%%call> tag(RR4RRR(RR„R:R…tCallTagtCallNamespaceTagRêR\R‘R]R+R’RTRrRPRQ(RRR¡Rf((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyR‚ìs& " cCs|j|ƒdS(N(Ræ(RR((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyRÔscCs8x$|jƒD]}|jj|ƒq W|j|ƒdS(N(RTRrR]Ræ(RRR¡((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyRFscCs|j|ƒdS(N(RÕ(RR((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyRÖ scCs||jkr«xN|jƒD]@}|dkr||jj|jƒkr|jj|ƒqqWx$|jƒD]}|jj|ƒqmWxr|j D]}|j |ƒq‘WnQxN|jƒD]@}|dkr¸||jj|jƒkr¸|jj|ƒq¸q¸WdS(NR#( RR·RVRSR”R‘R]RTRrRPRQ(RRR¡Rf((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyRÕs''N(RRRßR&R RR[RàR<RåRæRÜRÍRÐRIRERêRR‚RÔRFRÖRÕ(((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyRU_s$7           (RßRYR™t mako.pygenRtmakoRRRRRRXR&RuR RROR R RU(((s2/usr/lib/python2.7/vendor-packages/mako/codegen.pyts&  ( ÿÿÿ