HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/sphinx/ext/__pycache__/graphviz.cpython-310.pyc
o

�$�ai>�@s0dZddlZddlZddlZddlmZddlmZmZddlm	Z	m
Z
mZmZddl
mZddlmZddlmZmZddlZdd	lmZdd
lmZddlmZmZddlmZmZdd
lm Z m!Z!ddl"m#Z#ddl$m%Z%ddl&m'Z'ddl(m)Z)ddl*m+Z+ddl,m-Z-ddl.m/Z/ddl0m1Z1ddl2m3Z3ddl4m5Z5e�6e7�Z8Gdd�de�Z9Gdd�d�Z:Gdd�dej;ej<ej=�Z>dede>d e?d!ej@fd"d#�ZAd$e	d!e?fd%d&�ZBGd'd(�d(e �ZCGd)d*�d*e �ZD	dKd+e!d,e?d-e
d.e?d/e?d0e?d!ee?e?ffd1d2�ZE		dLd+e-de>d,e?d-e
d/e?d3e?d4e?d0e?d!ee?e?ffd5d6�ZFd+e-de>d!dfd7d8�ZG	dKd+e/de>d,e?d-e
d/e?d0e?d!dfd9d:�ZHd+e/de>d!dfd;d<�ZI	dMd+e3de>d,e?d-e
d/e?d!dfd=d>�ZJd+e3de>d!dfd?d@�ZKd+e5de>d!dfdAdB�ZLd+e1de>d!dfdCdD�ZMdEedFeNd!dfdGdH�ZOdEed!e
e?e	ffdIdJ�ZPdS)Na
    sphinx.ext.graphviz
    ~~~~~~~~~~~~~~~~~~~

    Allow graphviz-formatted graphs to be included in Sphinx-generated
    documents inline.

    :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
�N)�path)�PIPE�CalledProcessError)�Any�Dict�List�Tuple)�nodes)�Node)�	Directive�
directives)�Sphinx)�SphinxError)�_�__)�logging�sha1)�SphinxDirective�SphinxTranslator)�
copy_asset)�search_image_for_language)�set_source_info)�	ensuredir)�
OptionSpec)�HTMLTranslator)�LaTeXTranslator)�ManualPageTranslator)�TexinfoTranslator)�TextTranslatorc@seZdZdZdS)�
GraphvizErrorzGraphviz errorN)�__name__�
__module__�__qualname__�category�r$r$�5/usr/lib/python3/dist-packages/sphinx/ext/graphviz.pyr+src	@sbeZdZdZe�d�Ze�d�Zddedededd	fd
d�Z	ddedd	fdd
�Z
defdd�Zd	S)�ClickableMapDefinitionz1A manipulator for clickable map file of graphviz.z<map id="(.*?)"z
href=".*?"��filename�content�dot�returnNcCs,d|_||_|��|_g|_|j|d�dS)N�r*)�idr(�
splitlinesr)�	clickable�parse)�selfr(r)r*r$r$r%�__init__4s

zClickableMapDefinition.__init__cCs�|j�|jd�}|std|j��|�d�|_|jdkr;t|����	�}d|dd�|_|jd�
d|j�|jd<|jD]}|j�|�rL|j
�|�q>dS)Nrz$Invalid clickable map file found: %s�z%3z	grapviz%si����)�	maptag_re�matchr)rr(�groupr-r�encode�	hexdigest�replace�href_re�searchr/�append)r1r*�matched�hashed�liner$r$r%r0<s

��zClickableMapDefinition.parsecCs.|jrd�|jdg|j|jdg�SdS)zvGenerate clickable map tags if clickable item exists.

        If not exists, this only returns empty string.
        �
r���r')r/�joinr))r1r$r$r%�generate_clickable_mapMs$z-ClickableMapDefinition.generate_clickable_map)r')N)r r!r"�__doc__�re�compiler4r:�strr2r0rCr$r$r$r%r&/s

r&c@seZdZdS��graphvizN)r r!r"r$r$r$r%rIXsrI�	directive�node�captionr+cCslt�d|�}d|vr|j�d�|d<|j�||j�\}}tj|dg|�R�}|�|�t	||�||7}|S)Nr'�align)
r	�figure�
attributes�pop�state�inline_text�linenorL�extendr)rJrKrL�figure_node�inodes�messages�caption_noder$r$r%�figure_wrapper\s

rY�argumentcCst�|d�S)N)�left�center�right)r�choice)rZr$r$r%�
align_specisr_c@�\eZdZUdZdZdZdZdZej	e
ej	ej	ej	ej	ejd�Ze
ed<deefd	d
�ZdS)�Graphviz�3
    Directive to insert arbitrary dot markup.
    Trr3F��altrMrL�layout�graphviz_dot�name�class�option_specr+c	Cs�|jra|jj}|jr|jjtd�|jd�gSt|jd|j	�}|j	�
|�\}}|j	�|�zt|dd��}|�
�}Wd�n1sCwYWn0ty`|jjtd�||jd�gYSwd�|j�}d}|��sz|jjjtd�|jd�gSt�}||d	<d
|j	ji|d<d|jvr�|jd|dd<d
|jvr�|jd
|dd<d|jvr�|jd|d<d|jvr�|jd|d<d|jvr�|jd|d<|r�||d<d|jvr�|�|�|gSt|||jd�}|�|�|gS)NzCGraphviz directive cannot have both content and a filename argument)r?r�utf-8��encodingz8External Graphviz file %r not found or reading it failedr@z.Ignoring "graphviz" directive without content.�code�docname�optionsrfrerdrMrh�classesr(rL)�	argumentsrQ�documentr)�reporter�warningrrSr�env�
relfn2path�note_dependency�open�read�OSErrorrB�strip�
state_machinerIrnro�add_namerY)	r1rrrZ�rel_filenamer(�fp�dotcoderKrNr$r$r%�runsf�
������







zGraphviz.runN�r r!r"rD�has_content�required_arguments�optional_arguments�final_argument_whitespacer�	unchangedr_�class_optionrir�__annotations__rr
r�r$r$r$r%ram�
�
rac@r`)�GraphvizSimplerbTr3rFrcrir+cCs�t�}d|j|jdd�|j�f|d<d|jji|d<d|jvr*|jd|dd<d|jvr8|jd|dd<d	|jvrD|jd	|d	<d
|jvrP|jd
|d
<d|jvr\|jd|d<d
|jvri|�|�|gSt	|||jd
�}|�|�|gS)Nz
%s %s {
%s
}
rr@rmrnrorfrerdrMrhrprL)
rIrgrqrBr)rurnror}rY)r1rKrNr$r$r%r��s*�







zGraphvizSimple.runNr�r$r$r$r%r��r�r�r1rmro�format�prefixr(c
Cs�|�d|jjj�}|t|�t|�t|jjj���}d|t|���|f}t	�
|jj|�}	t�
|jj
|jj|�}
t�|
�rC|	|
fSt|jd�rR|jj�|�rRdStt�|
��|g}|�|jjj�|�d|d|
g�|�dd�}|r�t�t�
|jj|��}
nt�t�
|jj|��}
|d	kr�|�d
d|
g�z#tj||��tt|
dd
�}t�|
�s�ttd�|j|jf��|	|
fWSty�t�td�|�t|jd�s�i|j_d|jj|<YdSt y�}z
ttd�|j|jf�|�d}~ww)z3Render graphviz code into a PNG or PDF output file.rfz%s-%s.%s�_graphviz_warned_dot)NNz-Tz-orn�index�pngz-Tcmapxz-o%s.mapT)�input�stdout�stderr�cwd�checkz;dot did not produce an output file:
[stderr]
%r
[stdout]
%rzYdot command %r cannot be run (needed for graphviz output), check the graphviz_dot settingz.dot exited with error:
[stderr]
%r
[stdout]
%rN)!�get�builder�configrfrG�graphviz_dot_argsr7rr8�	posixpathrB�imgpathr�outdir�imagedir�isfile�hasattrr�r�dirnamerT�srcdir�
subprocessr�rrrr�r�rz�loggerrtr)r1rmror�r�r(rf�hashkey�fname�relfn�outfn�dot_argsrnr��ret�excr$r$r%�
render_dot�sd��
��

�

�
����r��imgclsrdc
Cs|jjj}z|dvrttd�|��t||||||�\}	}
Wnty7}z
t�td�||�tj	|�d}~ww|dg|�
dg�}d�td|��}|	durZ|j
�|�|��tj	�|duri|�
d|�|����}d|vr{|j
�d	|d|df�|d
kr�|j
�d�|j
�d|	|f�|j
�d
|�|j
�d�n_t|
ddd��O}
t|
d|
��|d�}|jr�|j
�d�|j
�d|	||j|f�|j
�d�|j
�|���n|j
�d�|j
�d|	||f�|j
�d�Wd�n1s�wYd|v�r|j
�d�tj	�)N)r��svgz=graphviz_output_format must be one of 'png', 'svg', but is %r�dot code %r: %srIrp� rdrMz!<div align="%s" class="align-%s">r�z<div class="graphviz">z3<object data="%s" type="image/svg+xml" class="%s">
z<p class="warning">%s</p>z</object></div>
z.maprjrkr,z1<img src="%s" alt="%s" usemap="#%s" class="%s" />z</div>
z$<img src="%s" alt="%s" class="%s" />)r�r��graphviz_output_formatrrr�r�rtr	�SkipNoder�rB�filter�bodyr<r7r{rxr&ryr/r-rC)r1rKrmror�r�rdr(r�r�r�r�rp�mapfile�imgmapr$r$r%�render_dot_htmlsb
��� �������
r�cC�$t|||d|d|�d�d�dS�Nrmror()r()r�r��r1rKr$r$r%�html_visit_graphvizD�$r�c
Cs�z
t|||d||�\}}Wnty&}z
t�td�||�tj|�d}~ww|�|�}	|	s^d}
d}d|vrV|ddkrAd}
d}n|ddkrLd	}
d
}n
|ddkrVd}
d}|j�	d
|
�|j�	d|�|	sp|j�	d|�tj�)N�pdfr�r'rMr[�{z\hspace*{\fill}}r]z{\hspace*{\fill}�}r\z{\hfillz
%sz\sphinxincludegraphics[]{%s}z%s
)
r�rr�rtrr	r��	is_inliner�r<)r1rKrmror�r(r�r�r�r��pre�postr$r$r%�render_dot_latexHs4��
r�cCr�r�)r�r�r�r$r$r%�latex_visit_graphvizjr�r�c
Csrzt|||d|�\}}Wnty%}z
t�td�||�tj|�d}~ww|dur6|j�d|dd��tj�)Nr�r�z@image{%s,,,[graphviz],png}
���)	r�rr�rtrr	r�r�r<)r1rKrmror�r�r�r�r$r$r%�render_dot_texinfons��r�cCst|||d|d�dS)Nrmro)r�r�r$r$r%�texinfo_visit_graphvizzsr�cCs:d|jvr|�td�|d�tj�|�td��tj��Nrdz[graph: %s]z[graph])rO�add_textrr	r�r�r$r$r%�text_visit_graphviz~s

�r�cCs>d|jvr|j�td�|d�tj�|j�td��tj�r�)rOr�r<rr	r�r�r$r$r%�man_visit_graphviz�s

�r��appr�cCsJ|dur!|jjdkr#t�tjddd�}t�|jd�}t||�dSdSdS)N�html�	templatesrI�graphviz.css�_static)r�r�rrB�sphinx�package_dirr�r)r�r��src�dstr$r$r%�on_build_finished�s
�r�cCs�|jttdftdftdftdftdfd�|�dt�|�dt	�|�dt	�|�
ddd�|�
dgd�|�
d	d
d�|�d�|�dt
�tjd
d�S)N)r��latex�texinfo�text�manrI�graph�digraphrfr*r�r�r�r�r�zbuild-finishedT)�version�parallel_read_safe)�add_noderIr�r�r�r�r��
add_directiverar��add_config_value�add_css_file�connectr�r��__display_version__)r�r$r$r%�setup�s �
r�rH)rINNN)rI)QrDr�rEr��osrrr�typingrrrr�docutilsr	�docutils.nodesr
�docutils.parsers.rstrrr��sphinx.applicationr
�
sphinx.errorsr�
sphinx.localerr�sphinx.utilrr�sphinx.util.docutilsrr�sphinx.util.fileutilr�sphinx.util.i18nr�sphinx.util.nodesr�sphinx.util.osutilr�sphinx.util.typingr�sphinx.writers.htmlr�sphinx.writers.latexr�sphinx.writers.manpager�sphinx.writers.texinfor�sphinx.writers.textr�	getLoggerr r�rr&�General�Inline�ElementrIrGrNrYr_rar�r�r�r�r�r�r�r�r�r��	Exceptionr�r�r$r$r$r%�<module>s�
)
D,���

�5�����

�4����
�"���
�