
    -Ph                       d Z ddlm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 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 e	rddlmZmZ ddlmZ ddlmZ edz  Zedz  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.    )annotationsN)partial)Path)TYPE_CHECKING)TemplateNotFound)
BaseLoader)SandboxedEnvironment)package_dir)SphinxFileSystemLoader)get_translator)rst	texescape)CallableSequence)Any)Environment	templateslatexc                  (    e Zd ZdddZddZddZdS )BaseRendererNloaderBaseLoader | NonereturnNonec                    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     T/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sphinx/util/template.py__init__zBaseRenderer.__init__   sK    'vCTBUVVV#' --n.>.>?????    template_namestrcontextdict[str, Any]c                \    | 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*   )r   r   r   r   )r%   r&   r'   r(   r   r&   )r-   r&   r'   r(   r   r&   )__name__
__module____qualname__r#   r,   r0    r$   r"   r   r      s^        @ @ @ @ @D D D D< < < < < <r$   r   c                  8     e Zd Zd fdZedd            Z xZS )FileRenderersearch_path Sequence[str | os.PathLike[str]]r   r   c                    t          |t          t          j        z            r|g}nt	          t          d |                    }t          |          }t                                          |           d S r*   )	
isinstancer&   osPathLikelistfilterr   superr#   )r!   r7   r   	__class__s      r"   r#   zFileRenderer.__init__,   si    k3#455 	:&-KK vdK8899K'44     r$   clstype[FileRenderer]filenamestr | os.PathLike[str]r'   r(   r&   c                t    t          |          } | |j        f                              |j        |          S r*   )r   parentr,   namerA   rC   r'   s      r"   render_from_filezFileRenderer.render_from_file6   s6     >>sHO%&&--hmWEEEr$   )r7   r8   r   r   rA   rB   rC   rD   r'   r(   r   r&   r1   r2   r3   r#   classmethodrI   __classcell__r@   s   @r"   r6   r6   +   se        ! ! ! ! ! ! F F F [F F F F Fr$   r6   c                  <     e Zd Z	 dd fdZedd            Z xZS )SphinxRendererNtemplate_path'Sequence[str | os.PathLike[str]] | Noner   r   c                ^    |t           f}t                                          |           d S r*   )_TEMPLATES_PATHr?   r#   )r!   rQ   r@   s     r"   r#   zSphinxRenderer.__init__A   s1      ,.M'''''r$   rA   rB   rC   rD   r'   r(   r&   c                8    t                               ||          S r*   )r6   rI   rH   s      r"   rI   zSphinxRenderer.render_from_fileH   s     ,,Xw???r$   r*   )rQ   rR   r   r   rJ   rK   rN   s   @r"   rP   rP   @   sm        GK( ( ( ( ( ( ( @ @ @ [@ @ @ @ @r$   rP   c                  &     e Zd Z	 	 d	d
 fdZ xZS )LaTeXRendererNrQ   rR   latex_engine
str | Noner   r   c                   |t           f}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 )
N)rX   eescapeeabbrz<%=z%>z<%z<#z#>)_LATEX_TEMPLATES_PATHr?   r#   r   r   r\   r   r   escape_abbrvariable_start_stringvariable_end_stringblock_start_stringblock_end_stringcomment_start_stringcomment_end_string)r!   rQ   rX   r\   r@   s       r"   r#   zLaTeXRenderer.__init__R   s    
  24M''' )EEE &%+"$-$9! */&'+$&*#$(!(,%&*###r$   NN)rQ   rR   rX   rY   r   r   r1   r2   r3   r#   rM   rN   s   @r"   rW   rW   Q   sL         BF#'+ + + + + + + + + + +r$   rW   c                  &     e Zd Z	 	 d	d
 fdZ xZS )ReSTRendererNrQ   rR   languagerY   r   r   c                   t                                          |           | j                            |           t          j        | j        j        d<   t          j        | j        j        d<   t          j        | j        j        d<   d S )N)rj   r[   r\   heading)r?   r#   r   extendr   r\   r   rl   )r!   rQ   rj   r@   s      r"   r#   zReSTRenderer.__init__l   sp    
 	''' 	*** !$
%(Z"&)k###r$   rf   )rQ   rR   rj   rY   r   r   rg   rN   s   @r"   ri   ri   k   sL         BF#2 2 2 2 2 2 2 2 2 2 2r$   ri   c                  "    e Zd ZdZdd	ZddZdS )SphinxTemplateLoaderz(A loader supporting template inheritanceconfdirrD   templates_pathsr8   system_templates_pathsr   r   c                2   g | _         g | _        t          |          }|D ].}t          ||z            }| j                             |           /|D ]E}t          |          }| j                             |           | j                            |           Fd S r*   )loaders
sysloadersr   r   append)r!   rp   rq   rr   conf_dirtemplates_pathr   s          r"   r#   zSphinxTemplateLoader.__init__   s     ==- 	( 	(N+H~,EFFFL''''4 	+ 	+N+N;;FL'''O""6****	+ 	+r$   environmentr   templater&   #tuple[str, str, Callable[[], bool]]c                    |                     d          r| j        }|dd          }n| j        }|D ]*}	 |                    ||          c S # t          $ r Y 'w xY wt	          |          )N!   )
startswithru   rt   
get_sourcer   )r!   ry   rz   rt   r   s        r"   r   zSphinxTemplateLoader.get_source   s    
 s## 	#oG|HHlG 	 	F((h?????#   x(((s   A
AAN)rp   rD   rq   r8   rr   r8   r   r   )ry   r   rz   r&   r   r{   )r1   r2   r3   __doc__r#   r   r4   r$   r"   ro   ro   |   sB        22+ + + +&) ) ) ) ) )r$   ro   )'r   
__future__r   r;   	functoolsr   pathlibr   typingr   jinja2r   jinja2.loadersr   jinja2.sandboxr	   sphinxr
   sphinx.jinja2gluer   sphinx.localer   sphinx.utilr   r   collections.abcr   r   r   jinja2.environmentr   rT   r^   r   r6   rP   rW   ri   ro   r4   r$   r"   <module>r      sM   - - " " " " " " 				                         # # # # # # % % % % % % / / / / / /       4 4 4 4 4 4 ( ( ( ( ( ( & & & & & & & & /22222222......+''1 < < < < < < < <F F F F F< F F F*@ @ @ @ @\ @ @ @"+ + + + +N + + +42 2 2 2 2> 2 2 2"') ') ') ') '): ') ') ') ') ')r$   