
    h\                     B    S r SSKJr  SSKJr  SSKrSSKJr  SS.S jrg)z
Internal debugging utilities, that are not expected to be used in the rest of
the codebase.

WARNING: Code in this module may change without prior notice!
    )StringIO)PathN)TransformNode)	highlightc                >  ^^^ Tc  U /m[        5       mUUU4S jm[        5       nUR                  S5        T" X5        UR                  S5        [        R                  " SS[        U5      R                  SS SU/UR                  5       R                  S	5      S
S9  g)a  
Generate a graphical representation of the transform tree for *transform*
using the :program:`dot` program (which this function depends on).  The
output format (png, dot, etc.) is determined from the suffix of *dest*.

Parameters
----------
transform : `~matplotlib.transform.Transform`
    The represented transform.
dest : str
    Output filename.  The extension must be one of the formats supported
    by :program:`dot`, e.g. png, svg, dot, ...
    (see https://www.graphviz.org/doc/info/output.html).
highlight : list of `~matplotlib.transform.Transform` or None
    The transforms in the tree to be drawn in bold.
    If *None*, *transform* is highlighted.
Nc           
        > [        U 5      T;   a  g TR                  [        U 5      5        0 n[        U 5      R                  nU R                  (       a  SU S3nU T;   a  SUS'   SUS'   SU-  US'   S	R                  [        S
R                  UR                  5       5      5      nUR                  [        U 5       SU S35        [        U 5      R                  5        Hl  u  pE[        U[        5      (       d  M  [        U 5      UR                  ;   d  M7  UR                  S[        U 5       S[        U5       SU S35        T" XQ5        Mn     g )N[]boldstyleboxshapez"%s"label z{0[0]}={0[1]}z [z];
"z" -> "z
" [label="z", fontsize=10];
)idaddtype__name___invalidjoinmapformatitemswritevars
isinstancer   _parents)	rootbufpropsr   keyvalr   recurseseens	         L/var/www/html/env/lib/python3.13/site-packages/matplotlib/_internal_utils.pyr$   (graphviz_dump_transform.<locals>.recurse&   s   d8tDT
##==waLE9#E'Ng%g_33U[[]CD		RXJbt,-T
((*HC#}--"T(cll2J		AbhZvbgY 7%%(E);= >!	 +    zdigraph G {
z}
dotz-T   z-ozutf-8T)inputcheck)	setr   r   
subprocessrunr   suffixgetvalueencode)	transformdestr   r    r$   r%   s     ` @@r&   graphviz_dump_transformr5      s    & K	5D"( *CIIoIIIeNN	d4j''+T48lln##G,D:r(   )	__doc__ior   pathlibr   r.   matplotlib.transformsr   r5    r(   r&   <module>r;      s"       / ;? 1:r(   