
    O&i                        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mZmZ ddl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" n# e#$ r	 ddlm$Z" Y nw xY werddl%m&Z& de'de(fdZ)de'de*fdZ+dee*e'f         de'fdZ,dede*dee         fdZ-dede'de'fdZ. G d d          Z/e"de
de'ded ede'f
d!            Z0 G d" d#e          Z1 G d$ d%ee          Z2dS )&z+Glue code for the jinja2 templating engine.    N)path)pformat)	TYPE_CHECKINGAnyCallableDictIteratorListOptionalTupleUnion)
BaseLoaderFileSystemLoaderTemplateNotFound)Environment)SandboxedEnvironment)open_if_exists)TemplateBridge)Theme)logging)mtimes_of_files)pass_context)contextfunction)Buildervalreturnc                 v    t          | t                    r|                                 dv S t          |           S )N)true1yeson)
isinstancestrlowerboolr   s    ^/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/sphinx/jinja2glue.py_toboolr(      s4    #s 9yy{{88899    c                 D    	 t          |           S # t          $ r Y dS w xY wNr   )int
ValueErrorr&   s    r'   _tointr.   !   s4    3xx   qqs    
c                     | dS t          |                                           rt          |           dk    rdnd| z  S | S )a  
    Make val a css dimension. In particular the following transformations
    are performed:

    - None -> 'initial' (default CSS value)
    - 0 -> '0'
    - ints and string representations of ints are interpreted as pixels.

    Everything else is returned unchanged.
    Ninitialr   0z%spx)r#   isdigitr,   r&   s    r'   _todimr3   (   sI     {y	S				 6#hh!mmss#5Jr)   valuesslicesc              #   r  K   t          |           }d}| D ]#}|dt          |d         d                   z   z  }$||z  }d}t          |          D ]f}d}|}	||dz   k    rt          |          }n;| |d          D ]0}|dt          |d         d                   z   z  }|dz  }||k    r n1||	|         V  gd S )Nr      )listlenrange)
r4   r5   seqlengthvalueitems_per_sliceoffsetslice_numbercountstarts
             r'   _slice_indexrC   :   s     
v,,CF ' '!c%(1+&&&&&OFf    \A%%%XXFF  Sq!----!O++E ,%,   r)   contextkeyc                 n    d| vr
i | j         d<   |r$|| j         d         vrd| j         d         |<   d|z  S dS )z+Helper to output each access key only once._accesskeysr7   zaccesskey="%s" )vars)rD   rE   s     r'   	accesskeyrJ   O   sS    G##&(]#
 &s',}555+,]#C(#%%2r)   c                   2    e Zd ZddZdefdZdefdZeZdS )idgenr   Nc                     d| _         d S r+   idselfs    r'   __init__zidgen.__init__Z   s    r)   c                     | j         S NrN   rP   s    r'   currentzidgen.current]   s	    wr)   c                 0    | xj         dz  c_         | j         S )Nr7   rN   rP   s    r'   __next__zidgen.__next__`   s    1wr)   )r   N)__name__
__module____qualname__rR   r,   rU   rW   next r)   r'   rL   rL   Y   s_               #     DDDr)   rL   messageargskwargsc                     d| v r4|                      d          |                      dd          z   }d|d|}t          j        d          } |j        |g|R i | dS )Npagenamefile_suffixrH   zin rendering z: zsphinx.themes)getr   	getLoggerwarning)rD   r]   r^   r_   filenameloggers         r'   re   re   f   sz    W;;z**W[[-K-KK+388WW=//FFN7,T,,,V,,,2r)   c            	       8    e Zd ZdZdededeeeef         fdZdS )SphinxFileSystemLoaderzd
    FileSystemLoader subclass that is not so strict about '..'  entries in
    template names.
    environmenttemplater   c                 |   | j         D ]}t          t          j        ||                    t	                    }|6|5  |                                                    | j                  }d d d            n# 1 swxY w Y   t          j	                  dt          ffd}||fc S t          |          )Nr   c                  X    	 t          j                   k    S # t          $ r Y dS w xY w)NF)r   getmtimeOSError)rf   mtimes   r'   uptodatez3SphinxFileSystemLoader.get_source.<locals>.uptodate   s?    !=22e;; ! ! ! 55!s    
)))
searchpathr#   pathlibPathr   readdecodeencodingr   rn   r%   r   )	rQ   rj   rk   rr   fcontentsrq   rf   rp   s	          @@r'   
get_sourcez!SphinxFileSystemLoader.get_sourcev   s   / 	0 	0J7<
H==>>Hx((Ay : :6688??4=99: : : : : : : : : : : : : : : M(++E!d ! ! ! ! ! ! !
 Xx////x(((s   -A;;A?	A?	N)	rX   rY   rZ   __doc__r   r#   r   r   rz   r\   r)   r'   ri   ri   p   sU         
)k )S )U3PSU]K]E^ ) ) ) ) ) )r)   ri   c            	           e Zd ZdZ	 	 ddddee         deee                  ddfdZd	ed
e	defdZ
ded
e	defdZdefdZded	edeeeef         fdZdS )BuiltinTemplateLoaderzK
    Interfaces the rendering environment of jinja2 for use in Sphinx.
    Nbuilderr   themedirsr   c                    |r$|                                 }|d |D             z   }n%|rt          |          }t          |          }ng }g }t          j        j                  | _        j        j        r&fdj        j        D             }||dd<   ||dd<   || _        d |D             | _        j        j	        d u}|rdgng }t          | |          | _        t          | j        j        d<   t          | j        j        d<   t          | j        j        d	<   t           | j        j        d
<   t#          t$                    | j        j        d<   t(          | j        j        d<   t#          t*                    | j        j        d<   t,          | j        j        d<   |r&| j                            j        j	                   d S d S )Nc                 8    g | ]}t          j        |d           S )z..)r   join).0ps     r'   
<listcomp>z.BuiltinTemplateLoader.init.<locals>.<listcomp>   s$    &M&M&MatyD'9'9&M&M&Mr)   c                 D    g | ]}t          j        j        |          S r\   )r   r   confdir)r   tpr~   s     r'   r   z.BuiltinTemplateLoader.init.<locals>.<listcomp>   s=     "K "K "K&( #')GOR"@"@ "K "K "Kr)   r   c                 ,    g | ]}t          |          S r\   )ri   )r   xs     r'   r   z.BuiltinTemplateLoader.init.<locals>.<listcomp>   s!    GGGa.q11GGGr)   zjinja2.ext.i18n)loader
extensionstobooltointtodimslice_indexdebugre   rJ   rL   )get_theme_dirsr8   r9   configtemplates_pathtemplatepathlen	pathchainloadersapp
translatorr   rj   r(   filtersr.   r3   rC   r   r   globalsre   rJ   rL   install_gettext_translations)	rQ   r~   r   r   r   loaderchaincfg_templates_pathuse_i18nr   s	    `       r'   initzBuiltinTemplateLoader.init   s      
	,,..I#&M&M9&M&M&MMKK 	T

It**KKIK  #7>#@AA>( 	2"K "K "K "K,3N,I"K "K "K/IacN1K! # HG;GGG;)5,4<'(("
/t;EG G G-4 *,2 ),2 )2> /,8,A,A ).5 +0<Y0G0G -,1 ) 	R99'+:PQQQQQ	R 	Rr)   rk   rD   c                 \    | j                             |                              |          S rT   )rj   get_templaterender)rQ   rk   rD   s      r'   r   zBuiltinTemplateLoader.render   s'    ,,X66==gFFFr)   sourcec                 \    | j                             |                              |          S rT   )rj   from_stringr   )rQ   r   rD   s      r'   render_stringz#BuiltinTemplateLoader.render_string   s'    ++F33::7CCCr)   c                 F    t          t          | j        d                    S )Nz.html)maxr   r   rP   s    r'   newest_template_mtimez+BuiltinTemplateLoader.newest_template_mtime   s    ?4>7;;<<<r)   rj   c                     | j         }|                    d          r|| j        d          }|dd          }|D ]*}	 |                    ||          c S # t          $ r Y 'w xY wt	          |          )N!r7   )r   
startswithr   rz   r   )rQ   rj   rk   r   r   s        r'   rz   z BuiltinTemplateLoader.get_source   s    ,s## 	$d2334G|H 	 	F((h?????#   x(((s   A
A A )NN)rX   rY   rZ   r{   r   r   r
   r#   r   r   r   r   floatr   r   r   r   rz   r\   r)   r'   r}   r}      s.         "&$(	.R .R.R .R tCy!	.R
 
.R .R .R .R`Gs GT Gc G G G GDC D$ D3 D D D D=u = = = =
)k )S )U3PSU]K]E^ ) ) ) ) ) )r)   r}   )3r{   rs   osr   pprintr   typingr   r   r   r   r	   r
   r   r   r   jinja2r   r   r   jinja2.environmentr   jinja2.sandboxr   jinja2.utilsr   sphinx.applicationr   sphinx.themingr   sphinx.utilr   sphinx.util.osutilr   r   ImportErrorr   sphinx.buildersr   r#   r%   r(   r,   r.   r3   rC   rJ   rL   re   ri   r}   r\   r)   r'   <module>r      s   1 1              ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] A A A A A A A A A A * * * * * * / / / / / / ' ' ' ' ' ' - - - - - -                   . . . . . .7))))))) 7 7 7666666667  (''''''          c3h C    $   s  x~        *s      
 
 
 
 
 
 
 
 T C  s s    ) ) ) ) )- ) ) )4M) M) M) M) M)NJ M) M) M) M) M)s   A% %A32A3