
    P&im                     X   d Z ddlZddlmZ ddlmZ ddlmZmZmZm	Z	m
Z
mZmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZmZ  G d d          Z G d de          Z G d de          Z  G d de           Z! G d de           Z" G d de          Z#dS )z'Templates utility functions for Sphinx.    N)partial)path)AnyCallableDictListOptionalTupleUnion)TemplateNotFound)Environment)
BaseLoader)SandboxedEnvironment)package_dir)SphinxFileSystemLoader)get_translator)rst	texescapec                   t    e Zd Zd
dee         ddfdZdedeeef         defdZ	dedeeef         defd	Z
dS )BaseRendererNloaderreturnc                     t          |dg          | _        t          | j        j        d<   | j                            t                                 d S )Nzjinja2.ext.i18n)r   
extensionsrepr)r   envr   filtersinstall_gettext_translationsr   )selfr   s     a/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/sphinx/util/template.py__init__zBaseRenderer.__init__   sK    'vCTBUVVV#' --n.>.>?????    template_namecontextc                 \    | j                             |                              |          S N)r   get_templaterender)r   r#   r$   s      r    r(   zBaseRenderer.render   s&    x$$]33::7CCCr"   sourcec                 \    | j                             |                              |          S r&   )r   from_stringr(   )r   r)   r$   s      r    render_stringzBaseRenderer.render_string   s&    x##F++227;;;r"   r&   )__name__
__module____qualname__r	   r   r!   strr   r   r(   r,    r"   r    r   r      s        @ @x
3 @t @ @ @ @
DC D$sCx. DS D D D D<C <$sCx. <S < < < < < <r"   r   c                   x     e Zd Zdeeee         f         ddf fdZededeee	f         defd            Z
 xZS )FileRenderersearch_pathr   Nc                     t          |t                    r|g}nt          t          d |                    }t	          |          }t                                          |           d S r&   )
isinstancer0   listfilterr   superr!   )r   r4   r   	__class__s      r    r!   zFileRenderer.__init__!   sb    k3'' 	:&-KK vdK8899K'44     r"   filenamer$   c                     t           j                            |          }t           j                            |          } | |                              ||          S r&   )osr   dirnamebasenamer(   )clsr;   r$   r>   r?   s        r    render_from_filezFileRenderer.render_from_file+   sH    '//(++7##H--s7||""8W555r"   r-   r.   r/   r   r0   r   r!   classmethodr   r   rA   __classcell__r:   s   @r    r3   r3       s        !E#tCy.$9 !d ! ! ! ! ! ! 6 6d38n 6 6 6 6 [6 6 6 6 6r"   r3   c                   |     e Zd Zddedeee         f         ddf fdZededeee	f         defd            Z
 xZS )	SphinxRendererNtemplate_pathr   c                     |%t           j                            t          d          }t	                                          |           d S )N	templates)r=   r   joinr   r9   r!   )r   rH   r:   s     r    r!   zSphinxRenderer.__init__3   s<     GLLkBBM'''''r"   r;   r$   c                 8    t                               ||          S r&   )r3   rA   )r@   r;   r$   s      r    rA   zSphinxRenderer.render_from_file8   s    ,,Xw???r"   r&   rB   rE   s   @r    rG   rG   2   s        ( (eD#tCy,@&A (T ( ( ( ( ( (
 @ @d38n @ @ @ @ [@ @ @ @ @r"   rG   c                   H     e Zd Z	 ddee         dee         ddf fdZ xZS )LaTeXRendererNrH   latex_enginer   c                    |&t           j                            t          dd          }t	                                          |           t          t          j        |          }|| j	        j
        d<   || j	        j
        d<   t          j        | j	        j
        d<   d| j	        _        d| j	        _        d	| j	        _        d| j	        _        d
| j	        _        d| j	        _        d S )NrJ   latex)rO   eescapeeabbrz<%=z%>z<%z<#z#>)r=   r   rK   r   r9   r!   r   r   rS   r   r   escape_abbrvariable_start_stringvariable_end_stringblock_start_stringblock_end_stringcomment_start_stringcomment_end_string)r   rH   rO   rS   r:   s       r    r!   zLaTeXRenderer.__init__>   s      GLLk7KKM''' )EEE &%+"$-$9! */&'+$&*#$(!(,%&*###r"   NN)r-   r.   r/   r	   r0   r!   rD   rE   s   @r    rN   rN   =   se        QU+ +%c]+AI#+	+ + + + + + + + + +r"   rN   c                   Z     e Zd Z	 ddedeee         f         dee         ddf fdZ xZS )ReSTRendererNrH   languager   c                    t                                          |           | j                            |           t          j        | j        j        d<   t          j        | j        j        d<   t          j        | j        j        d<   d S )N)r_   rR   rS   heading)r9   r!   r   extendr   rS   r   ra   )r   rH   r_   r:   s      r    r!   zReSTRenderer.__init__V   sp     	''' 	*** !$
%(Z"&)k###r"   r\   )	r-   r.   r/   r   r0   r   r	   r!   rD   rE   s   @r    r^   r^   U   sr        [_2 2"4d3i#782KSTW=2	2 2 2 2 2 2 2 2 2 2r"   r^   c            	       h    e Zd ZdZdedee         dee         ddfdZded	edeeee	f         fd
Z
dS )SphinxTemplateLoaderz(A loader supporting template inheritanceconfdirtemplates_pathssystem_templates_pathsr   Nc                 4   g | _         g | _        |D ]>}t          t          j        ||                    }| j                             |           ?|D ]E}t          |          }| j                             |           | j                            |           Fd S r&   )loaders
sysloadersr   r   rK   append)r   re   rf   rg   templates_pathr   s         r    r!   zSphinxTemplateLoader.__init__g   s    - 	( 	(N+DIg~,N,NOOFL''''4 	+ 	+N+N;;FL'''O""6****	+ 	+r"   environmenttemplatec                     |                     d          r| j        }|dd          }n| j        }|D ]*}	 |                    ||          c S # t          $ r Y 'w xY wt	          |          )N!   )
startswithrj   ri   
get_sourcer   )r   rm   rn   ri   r   s        r    rs   zSphinxTemplateLoader.get_sourceu   s    s## 	#oG|HHlG 	 	F((h?????#   x(((s   A
AA)r-   r.   r/   __doc__r0   r   r!   r   r
   r   rs   r1   r"   r    rd   rd   d   s        22+ +d3i +)-c+7;+ + + +)k )S )U3PSU]K]E^ ) ) ) ) ) )r"   rd   )$rt   r=   	functoolsr   r   typingr   r   r   r   r	   r
   r   jinja2r   jinja2.environmentr   jinja2.loadersr   jinja2.sandboxr   sphinxr   sphinx.jinja2gluer   sphinx.localer   sphinx.utilr   r   r   r3   rG   rN   r^   rd   r1   r"   r    <module>r      s   - - 				             D D D D D D D D D D D D D D D D D D # # # # # # * * * * * * % % % % % % / / / / / /       4 4 4 4 4 4 ( ( ( ( ( ( & & & & & & & &
< 
< 
< 
< 
< 
< 
< 
<6 6 6 6 6< 6 6 6$@ @ @ @ @\ @ @ @+ + + + +N + + +02 2 2 2 2> 2 2 2) ) ) ) ): ) ) ) ) )r"   