
    zi                       d 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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 n# e$ r	 ddlmZ Y nw xY werddlmZ ddlmZ ddl m!Z! ddl"m#Z# d0dZ$d1dZ%d2dZ&d3dZ'd4d#Z( G d$ d%          Z)ed5d*            Z* G d+ d,e          Z+ G d- d.ee          Z,d/S )6z+Glue code for the jinja2 templating engine.    )annotations)path)pformat)TYPE_CHECKINGAnyCallable)
BaseLoaderFileSystemLoaderTemplateNotFound)SandboxedEnvironment)open_if_exists)TemplateBridge)logging)mtimes_of_files)pass_context)contextfunction)Iterator)Environment)Builder)Themevalstrreturnboolc                v    t          | t                    r|                                 dv S t          |           S )N)true1yeson)
isinstancer   lowerr   r   s    \/var/www/tmov.alphamb/tmov_inventario/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#   _todimr0   ,   sI     {y	S				 6#hh!mmss#5Jr%   valueslistslicesIterator[list]c              #  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      )r2   lenrange)
r1   r3   seqlengthvalueitems_per_sliceoffsetslice_numbercountstarts
             r#   _slice_indexrA   >   s     
v,,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._accesskeysr6   zaccesskey="%s" )vars)rB   rC   s     r#   	accesskeyrH   S   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__^   s    r%   r&   c                    | j         S NrM   rO   s    r#   currentzidgen.currenta   s	    wr%   c                0    | xj         dz  c_         | j         S )Nr6   rM   rO   s    r#   __next__zidgen.__next__d   s    1wr%   N)r   rK   )r   r&   )__name__
__module____qualname__rQ   rT   rV   next r%   r#   rJ   rJ   ]   sQ                  DDDr%   rJ   dictmessageargskwargsc                    d| v r4|                      d          |                      dd          z   }d| d| }t          j        d          } |j        |g|R i | dS )Npagenamefile_suffixrF   zin rendering z: zsphinx.themes)getr   	getLoggerwarning)rB   r]   r^   r_   filenameloggers         r#   re   re   j   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 )SphinxFileSystemLoaderzd
    FileSystemLoader subclass that is not so strict about '..'  entries in
    template names.
    environmentr   templater   r   tuple[str, str, Callable]c                T   | j         D ]*}t          j        ||          t                    }| n+t	          |          |5  |                                                    | j                  }d d d            n# 1 swxY w Y   t          j                  dfd}||fS )Nr   r   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?    }X..%77   uus    
)))r   r   )	
searchpathr   joinr   r   readdecodeencodingro   )	rP   rj   rk   rs   fcontentsrr   rf   rq   s	          @@r#   
get_sourcez!SphinxFileSystemLoader.get_sourcez   s   / 	- 	-JyX66Hx((A}  #8,,, 	6 	6vvxxt}55H	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 h''	 	 	 	 	 	 	
 8++s   -A??BBNrj   r   rk   r   r   rl   )rW   rX   rY   __doc__rz   r[   r%   r#   ri   ri   t   s2         
, , , , , ,r%   ri   c                  @    e Zd ZdZ	 	 dddZddZddZddZddZdS )BuiltinTemplateLoaderzK
    Interfaces the rendering environment of jinja2 for use in Sphinx.
    Nbuilderr   themeTheme | Nonedirslist[str] | Noner   rK   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   rt   ).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   rt   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   rH   rJ   )get_theme_dirsr2   r7   configtemplates_pathtemplatepathlen	pathchainloadersapp
translatorr   rj   r$   filtersr*   r0   rA   r   r   globalsre   rH   rJ   install_gettext_translations)	rP   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   r   rB   r\   c                \    | j                             |                              |          S rS   )rj   get_templaterender)rP   rk   rB   s      r#   r   zBuiltinTemplateLoader.render   s'    ,,X66==gFFFr%   sourcec                \    | j                             |                              |          S rS   )rj   from_stringr   )rP   r   rB   s      r#   render_stringz#BuiltinTemplateLoader.render_string   s'    ++F33::7CCCr%   floatc                F    t          t          | j        d                    S )Nz.html)maxr   r   rO   s    r#   newest_template_mtimez+BuiltinTemplateLoader.newest_template_mtime   s    ?4>7;;<<<r%   rj   r   rl   c                    | j         }|                    d          r|| j        d          }|dd          }|D ]*}	 |                    ||          c S # t          $ r Y 'w xY wt	          |          )N!r6   )r   
startswithr   rz   r   )rP   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)r   r   r   r   r   r   r   rK   )rk   r   rB   r\   r   r   )r   r   rB   r\   r   r   )r   r   r{   )	rW   rX   rY   r|   r   r   r   r   rz   r[   r%   r#   r~   r~      s          #!%	.R .R .R .R .R`G G G GD D D D= = = =
) ) ) ) ) )r%   r~   N)r   r   r   r   )r   r   r   r&   )r   r+   r   r   )r1   r2   r3   r&   r   r4   )rB   r   rC   r   r   r   )
rB   r\   r]   r   r^   r   r_   r   r   r   )-r|   
__future__r   osr   pprintr   typingr   r   r   jinja2r	   r
   r   jinja2.sandboxr   jinja2.utilsr   sphinx.applicationr   sphinx.utilr   sphinx.util.osutilr   r   ImportErrorr   collections.abcr   jinja2.environmentr   sphinx.buildersr   sphinx.themingr   r$   r*   r0   rA   rH   rJ   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  %((((((......''''''$$$$$$         $       *   
 
 
 
 
 
 
 
    , , , , ,- , , ,8M) M) M) M) M)NJ M) M) M) M) M)s   A AA