
    -Ph                        d Z ddlmZ ddlZddlZddlmZ ddlmZ ddl	m
Z
 ddlmZmZmZ ddlmZ dd	lmZmZ dd
lmZ ddlmZ ddlmZ ddlmZ e
r(ddlmZmZ ddl	mZ ddl m!Z! ddl"m#Z# ddl$m%Z%m&Z& ddl'm(Z( d1dZ)d2dZ*d3dZ+d4d!Z,d5d%Z- G d& d'          Z.ed6d,            Z/ G d- d.e          Z0 G d/ d0ee          Z1dS )7z+Glue code for the jinja2 templating engine.    )annotationsN)Path)pformat)TYPE_CHECKING)
BaseLoaderFileSystemLoaderTemplateNotFound)SandboxedEnvironment)open_if_existspass_context)TemplateBridge)logging)_StrPath)_last_modified_time)CallableIterator)Any)Environment)Builder)_RealIndexEntries_RealIndexEntry)Themevalstrreturnboolc                v    t          | t                    r|                                 dv S t          |           S )N>   1onyestrue)
isinstancer   lowerr   r   s    Q/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sphinx/jinja2glue.py_toboolr&   "   s4    #s 9yy{{88899    intc                D    	 t          |           S # t          $ r Y dS w xY wNr   )r(   
ValueErrorr$   s    r%   _tointr,   (   s4    3xx   qqs    
	int | strc                    | 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%   _todimr2   /   sI     {y	S				 6#hh!mmss#5Jr'   valuesr   slicesIterator[list[_RealIndexEntry]]c              #  |  K   |                                  }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      )copylenrange)
r3   r4   seqlengthvalueitems_per_sliceoffsetslice_numbercountstarts
             r%   _slice_indexrC   @   s      ++--CF ' '!c%(1+&&&&&OFf    \A%%%XXFF  Sq!----!O++E ,%,   r'   contextr   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   W   sS    G##&(]#
 &s',}555+,]#C(#%%2r'   c                  *    e Zd ZddZd	dZd	dZeZdS )
idgenr   Nonec                    d| _         d S r*   idselfs    r%   __init__zidgen.__init__b   s    r'   r(   c                    | j         S NrO   rQ   s    r%   currentzidgen.currente   s	    wr'   c                0    | xj         dz  c_         | j         S Nr7   rO   rQ   s    r%   __next__zidgen.__next__h   s    1wr'   N)r   rM   )r   r(   )__name__
__module____qualname__rS   rV   rY   next r'   r%   rL   rL   a   sQ                  DDDr'   rL   dict[str, Any]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`   ra   rb   filenameloggers         r%   rh   rh   o   s}    W;;z**W[[-K-KK7(77g77//FFN7,T,,,V,,,2r'   c                      e Zd ZdZd
dZd	S )SphinxFileSystemLoaderz_FileSystemLoader subclass that is not so strict about '..'  entries in
    template names.
    environmentr   templater   r   #tuple[str, str, Callable[[], bool]]c                6  	
 |                     d          rd}|                    d          |z   }nd }t          t          | j                  D ]N}||z  	t          t          	                    }| n7|%||z  	t          t          	                    }| nOt          |          |5  |                                	                    | j
                  }d d d            n# 1 swxY w Y   t          	          
d	
fd}|t          	          |fS )Nz.jinja_tr   r   c                 N    	 t                     k    S # t          $ r Y dS w xY w)NF)r   OSError)ri   mtimes   r%   uptodatez3SphinxFileSystemLoader.get_source.<locals>.uptodate   s=    *844==   uus    
$$)r   r   )endswithremovesuffixmapr   
searchpathr   r   r	   readdecodeencodingr   )rR   rm   rn   legacy_suffixlegacy_templatesearch_pathfcontentsru   ri   rt   s            @@r%   
get_sourcez!SphinxFileSystemLoader.get_source~   s{    X&& 	# M&33H==MOO"OtT_55 	- 	-K"X-Hs8}}--A}*&8"3x==11=E"8,,, 	6 	6vvxxt}55H	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 $H--	 	 	 	 	 	 	 X00s   /-C((C,/C,Nrm   r   rn   r   r   ro   )rZ   r[   r\   __doc__r   r^   r'   r%   rl   rl   y   s2         !1 !1 !1 !1 !1 !1r'   rl   c                  P    e Zd ZdZ	 	 dddZddZddZd dZd!dZd"dZ	d#dZ
dS )$BuiltinTemplateLoaderzAInterfaces the rendering environment of jinja2 for use in Sphinx.Nbuilderr   themeTheme | Nonedirslist[str] | Noner   rM   c                   |r$|                                 }|d |D             z   }nK|rEt          t          t          |                    }t          t          t          |                    }ng }g }t	          j        j                  | _        j        j        r&fdj        j        D             }||dd<   ||dd<   || _        d |D             | _	        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
                   d S d S )Nc                    g | ]	}|j         
S r^   )parent).0ps     r%   
<listcomp>z.BuiltinTemplateLoader.init.<locals>.<listcomp>   s    &C&C&CAqx&C&C&Cr'   c                $    g | ]}j         |z  S r^   )confdir)r   tpr   s     r%   r   z.BuiltinTemplateLoader.init.<locals>.<listcomp>   s-     " " ")+"$" " "r'   r   c                ,    g | ]}t          |          S r^   )rl   )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debugrh   rJ   rL   )get_theme_dirslistrx   r   r9   configtemplates_pathtemplatepathlen	pathchainloaders_translatorr
   rm   r&   filtersr,   r2   rC   r   r   globalsrh   rJ   rL   install_gettext_translations)	rR   r   r   r   r   loaderchaincfg_templates_pathuse_i18nr   s	    `       r%   initzBuiltinTemplateLoader.init   s     
	,,..I#&C&C&C&C&CCKK 	S40011Is8T2233KKIK  #7>#@AA>( 	2" " " "/6~/L" " " 0IacN1K! # HG;GGG&d2,4<'(("
/t
SSS-4 *,2 ),2 )2> /,8,A,A ).5 +0<Y0G0G -,1 ) 	O99':MNNNNN	O 	Or'   rn   r   rD   r_   c                \    | j                             |                              |          S rU   )rm   get_templaterender)rR   rn   rD   s      r%   r   zBuiltinTemplateLoader.render   s'    ,,X66==gFFFr'   sourcec                \    | j                             |                              |          S rU   )rm   from_stringr   )rR   r   rD   s      r%   render_stringz#BuiltinTemplateLoader.render_string   s'    ++F33::7CCCr'   floatc                6    |                                  d         S r*   _newest_template_mtime_namerQ   s    r%   newest_template_mtimez+BuiltinTemplateLoader.newest_template_mtime       //11!44r'   c                6    |                                  d         S rX   r   rQ   s    r%   newest_template_namez*BuiltinTemplateLoader.newest_template_name   r   r'   tuple[float, str]c                >    t          d | j        D                       S )Nc              3     K   | ]e}t          j        |          D ]N\  }}}|D ]E}|                    d           t          ||                                          j        dz  |fV  FOfdS )z.htmli ʚ;N)oswalkrv   r   statst_mtime_ns)r   dirnameroot_dirsfilessfiles         r%   	<genexpr>zDBuiltinTemplateLoader._newest_template_mtime_name.<locals>.<genexpr>   s       
 
&(gg&6&6
 
 #eU	
 
 ~~g&&
$##%%1E95A
 
 
 
 
 
 
 
r'   )maxr   rQ   s    r%   r   z1BuiltinTemplateLoader._newest_template_mtime_name   s2     
 
>
 
 
 
 
 	
r'   rm   r   ro   c                   | j         }|                    d          r|| j        d          }|dd          }|D ]*}	 |                    ||          c S # t          $ r Y 'w xY w|d| j        j        j         }t	          |          )N!r7   z not found in )r   
startswithr   r   r	   rm   r   r   )rR   rm   rn   r   r   msgs         r%   r   z BuiltinTemplateLoader.get_source   s     ,s## 	$d2445G|H 	 	F((h?????#   NN4+;+B+LNNs###s   A
A A )NN)r   r   r   r   r   r   r   rM   )rn   r   rD   r_   r   r   )r   r   rD   r_   r   r   )r   r   )r   r   )r   r   r   )rZ   r[   r\   r   r   r   r   r   r   r   r   r^   r'   r%   r   r      s        KK #!%	/O /O /O /O /ObG G G GD D D D5 5 5 55 5 5 5
 
 
 
$ $ $ $ $ $r'   r   )r   r   r   r   )r   r   r   r(   )r   r-   r   r   )r3   r   r4   r(   r   r5   )rD   r   rE   r   r   r   )
rD   r_   r`   r   ra   r   rb   r   r   r   )2r   
__future__r   r   os.pathpathlibr   pprintr   typingr   jinja2r   r   r	   jinja2.sandboxr
   jinja2.utilsr   r   sphinx.applicationr   sphinx.utilr   sphinx.util._pathlibr   sphinx.util.osutilr   collections.abcr   r   r   jinja2.environmentr   sphinx.buildersr   (sphinx.environment.adapters.indexentriesr   r   sphinx.themingr   r&   r,   r2   rC   rJ   rL   rh   rl   r   r^   r'   r%   <module>r      s   1 1 " " " " " " 				                          A A A A A A A A A A / / / / / / 5 5 5 5 5 5 5 5 - - - - - -       ) ) ) ) ) ) 2 2 2 2 2 2 %22222222......''''''        %$$$$$         "       .              &1 &1 &1 &1 &1- &1 &1 &1R[$ [$ [$ [$ [$NJ [$ [$ [$ [$ [$r'   