o $a@sdZddlZddlmZddlmZddlmZmZmZm Z m Z ddl m Z ddl mZddlmZdd lmZdd lmZdd lmZdd lmZdd lmZmZGdddZGdddeZGdddeZGdddeZGdddeZ GdddeZ!dS)z sphinx.util.template ~~~~~~~~~~~~~~~~~~~~ Templates utility functions for Sphinx. :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. :license: BSD, see LICENSE for details. N)partial)path)CallableDictListTupleUnion)TemplateNotFound) Environment) BaseLoader)SandboxedEnvironment) package_dir)SphinxFileSystemLoader)get_translator)rst texescapec@sLeZdZd deddfddZdededefdd Zd ededefd d ZdS) BaseRendererNloaderreturncCs.t|dgd|_t|jjd<|jtdS)Nzjinja2.ext.i18n)r extensionsrepr)r envrfiltersinstall_gettext_translationsr)selfrr6/usr/lib/python3/dist-packages/sphinx/util/template.py__init__s zBaseRenderer.__init__ template_namecontextcC|j||SN)r get_templaterender)rrrrrrr#!zBaseRenderer.rendersourcecCr r!)r from_stringr#)rr%rrrr render_string$r$zBaseRenderer.render_stringr!) __name__ __module__ __qualname__r rstrrr#r'rrrrrsrcsLeZdZdeeeefddffdd Zedededefdd Z Z S) FileRenderer search_pathrNcs8t|tr |g}nttd|}t|}t|dSr!) isinstancer+listfilterrsuperr)rr-r __class__rrr)s zFileRenderer.__init__filenamercCs(tj|}tj|}||||Sr!)osrdirnamebasenamer#)clsr4rr6r7rrrrender_from_file3s  zFileRenderer.render_from_file r(r)r*rr+rr classmethodrr9 __classcell__rrr2rr,(s" r,csNeZdZd deeeefddffdd Zedededefdd Z Z S) SphinxRendererN template_pathrcs&|dur tjtd}t|dS)N templates)r5rjoinr r1r)rr>r2rrr;szSphinxRenderer.__init__r4rcCs t||Sr!)r,r9)r8r4rrrrr9@s zSphinxRenderer.render_from_filer!r:rrr2rr=:s$ r=cs,eZdZddededdffdd ZZS) LaTeXRendererNr> latex_enginercs|dur tjtdd}t|ttj|d}||j j d<||j j d<tj |j j d<d|j _ d|j _ d |j _d|j _d |j _d |j _dS) Nr?latex)rBeescapeeabbrz<%=z%>z<%z<#z#>)r5rr@r r1rrrrErr escape_abbrvariable_start_stringvariable_end_stringblock_start_stringblock_end_stringcomment_start_stringcomment_end_string)rr>rBrEr2rrrFs    zLaTeXRenderer.__init__NN)r(r)r*r+rr<rrr2rrAEs$rAcs8eZdZddeeeefdeddffdd ZZS) ReSTRendererNr>languagercsHt||jj|dtj|jjd<tj|jjd<tj|jjd<dS)N)rPrDrEheading)r1rrextendrrErrQ)rr>rPr2rrr\s zReSTRenderer.__init__rN)r(r)r*rr+rrr<rrr2rrO[s0rOc @sReZdZdZdedeedeeddfddZd ed edeeee ffd d Z dS) SphinxTemplateLoaderz(A loader supporting template inheritanceconfdirtemplates_pathssystem_templates_pathsrNcCs`g|_g|_|D]}tt||}|j|q|D]}t|}|j||j|qdSr!)loaders sysloadersrrr@append)rrTrUrVtemplates_pathrrrrrks zSphinxTemplateLoader.__init__ environmenttemplatec CsZ|dr|j}|dd}n|j}|D]}z |||WSty(Yqwt|)N!) startswithrXrW get_sourcer )rr[r\rWrrrrr`ys  zSphinxTemplateLoader.get_source) r(r)r*__doc__r+rrr rrr`rrrrrShs $rS)"rar5 functoolsrrtypingrrrrrjinja2r jinja2.environmentr jinja2.loadersr jinja2.sandboxr sphinxr sphinx.jinja2gluer sphinx.localer sphinx.utilrrrr,r=rArOrSrrrrs&