Ë
    ¨ehž#  ã                   óö   — d Z ddlmZ ddlmZ ddlmZmZ ddlZddl	m
Z
 ddlmZmZ ddlZddlmZ ddlZ G d	„ d
ej$                  ej&                  «      Z G d„ de«      Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)a   
Add a ``figure-mpl`` directive that is a responsive version of ``figure``.

This implementation is very similar to ``.. figure::``, except it also allows a
``srcset=`` argument to be passed to the image tag, hence allowing responsive
resolution images.

There is no particular reason this could not be used standalone, but is meant
to be used with :doc:`/api/sphinxext_plot_directive_api`.

Note that the directory organization is a bit different than ``.. figure::``.
See the *FigureMpl* documentation below.

é    )Únodes)Ú
directives)ÚFigureÚImageN)Úrelpath)ÚPurePathÚPath)ÚExtensionErrorc                   ó   — e Zd Zy)Ú
figmplnodeN)Ú__name__Ú
__module__Ú__qualname__© ó    úc/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/matplotlib/sphinxext/figmpl_directive.pyr   r      s   „ Ør   r   c            	       óÜ   — e Zd ZdZdZdZdZdZej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  dœZd„ Zy)Ú	FigureMplaž  
    Implements a directive to allow an optional hidpi image.

    Meant to be used with the *plot_srcset* configuration option in conf.py,
    and gets set in the TEMPLATE of plot_directive.py

    e.g.::

        .. figure-mpl:: plot_directive/some_plots-1.png
            :alt: bar
            :srcset: plot_directive/some_plots-1.png,
                     plot_directive/some_plots-1.2x.png 2.00x
            :class: plot-directive

    The resulting html (at ``some_plots.html``) is::

        <img src="sphx_glr_bar_001_hidpi.png"
            srcset="_images/some_plot-1.png,
                    _images/some_plots-1.2x.png 2.00x",
            alt="bar"
            class="plot_directive" />

    Note that the handling of subdirectories is different than that used by the sphinx
    figure directive::

        .. figure-mpl:: plot_directive/nestedpage/index-1.png
            :alt: bar
            :srcset: plot_directive/nestedpage/index-1.png
                     plot_directive/nestedpage/index-1.2x.png 2.00x
            :class: plot_directive

    The resulting html (at ``nestedpage/index.html``)::

        <img src="../_images/nestedpage-index-1.png"
            srcset="../_images/nestedpage-index-1.png,
                    ../_images/_images/nestedpage-index-1.2x.png 2.00x",
            alt="bar"
            class="sphx-glr-single-img" />

    where the subdirectory is included in the image name for uniqueness.
    Fé   é   )ÚaltÚheightÚwidthÚscaleÚalignÚclassÚcaptionÚsrcsetc                 ó4  — t        «       }| j                  d   }| j                  j                  dd«      |d<   | j                  j                  dd «      |d<   | j                  j                  dd «      |d<   | j                  j                  dd «      |d<   | j                  j                  dd «      |d<   | j                  j                  dd «      |d<   | j                  j                  d	d «      |d	<   ||d
<   | j                  j                  dd «      |d<   |gS )Nr   r   Ú r   r   r   r   r   r   Úurir   )r   Ú	argumentsÚoptionsÚget)ÚselfÚ
image_nodeÚimagenms      r   ÚrunzFigureMpl.run\   s  € ä“\ˆ
à—.‘. Ñ#ˆØ ŸL™L×,Ñ,¨U°BÓ7ˆ
�5ÑØ"Ÿl™l×.Ñ.¨w¸Ó=ˆ
�7ÑØ"Ÿl™l×.Ñ.¨w¸Ó=ˆ
�7ÑØ"Ÿl™l×.Ñ.¨w¸Ó=ˆ
�7ÑØ#Ÿ|™|×/Ñ/°¸$Ó?ˆ
�8ÑØ"Ÿl™l×.Ñ.¨w¸Ó=ˆ
�7ÑØ $§¡× 0Ñ 0°¸DÓ Aˆ
�9Ñð $ˆ
�5ÑØ#Ÿ|™|×/Ñ/°¸$Ó?ˆ
�8Ñàˆ|Ðr   N)r   r   r   Ú__doc__Úhas_contentÚrequired_argumentsÚoptional_argumentsÚfinal_argument_whitespacer   Ú	unchangedÚlength_or_unitlessÚ length_or_percentage_or_unitlessÚnonnegative_intr   r   Úclass_optionÚoption_specr(   r   r   r   r   r   "   ss   „ ñ(ðT €KØÐØÐØ %Ðà×#Ñ#Ø×/Ñ/Ø×<Ñ<Ø×+Ñ+Ø—‘Ø×(Ñ(Ø×'Ñ'Ø×&Ñ&ñ	€Kór   r   c                 ó  — | j                  d«      }i }|D ]n  }|j                  «       j                  d«      }t        |«      dk(  r	|d   |d<   Œ9t        |«      dk(  r|d   dd }|d   |t        |«      <   Œat	        d|› d	�«      ‚ |S )
z
    parse srcset...
    ú,ú r   r   r   Néÿÿÿÿzsrcset argument "z" is invalid.)ÚsplitÚstripÚlenÚfloatr
   )ÚstÚentriesr   ÚentryÚsplÚmults         r   Ú_parse_srcsetNodesrA   s   s�   € ð �h‰h�s‹m€GØ€FØò KˆØ�k‰k‹m×!Ñ! #Ó&ˆÜˆs‹8�qŠ=Ø˜A™ˆF�1ŠIÜ�‹X˜Š]Ø�q‘6˜#˜2�;ˆDØ"% a¡&ˆF”5˜“;Òä Ð#4°U°G¸=Ð!IÓJÐJðKð €Mr   c                 óâ  — |d   rt        |d   «      }nd }t        | j                  d   «      j                  }| j                  j
                  }t        ||«      j                  dd«      j                  t        j                  d«      }t        |«      r|dz  }t        | j                  j                  | j                  j                  «      }t        |«      j                  dd¬«       |rJ|j                  «       D ]6  }t        ||«      }||j                   z   }	t#        j$                  |||	z  «       Œ8 n7t        ||d   «      }||j                   z   }	t#        j$                  |||	z  «       |||fS )	Nr   Úsourceú.r    ú-T)ÚparentsÚexist_okr!   )rA   r   ÚdocumentÚparentÚbuilderÚsrcdirr   ÚreplaceÚosÚsepr:   ÚoutdirÚimagedirr	   ÚmkdirÚvaluesÚnameÚshutilÚcopyfile)
r%   Únoder   Ú	docsourceÚsrctopÚrelrP   ÚsrcÚabspathrS   s
             r   Ú_copy_images_figmplr\   …   sD  € ð ˆH‚~Ü# D¨¡NÓ3‰àˆô ˜Ÿ™ xÑ0Ó1×8Ñ8€Ið �\‰\× Ñ €FÜ
�)˜VÓ
$×
,Ñ
,¨S°"Ó
5×
=Ñ
=¼b¿f¹fÀcÓ
J€CÜ
ˆ3„xØˆs‰
ˆô ˜Ÿ™×+Ñ+¨T¯\©\×-BÑ-BÓC€Hô 	ˆƒN×Ñ °ÐÔ5ñ Ø—=‘=“?ò 	6ˆCä˜y¨#Ó.ˆGØ˜Ÿ™Ñ%ˆDÜ�O‰O˜G X°¡_Õ5ñ		6ô ˜9 d¨5¡kÓ2ˆØ�W—\‘\Ñ!ˆÜ�‰˜ ¨D¡Ô1à�V˜SÐ Ð r   c                 ó  — t        | |«      \  }}}t        | j                  d   «      }t        | j                  j                  d«      }t        ||«      }t        | j                  j                  d«      }||z  }	t        t        ||	j                  «      «      j                  «       }
| j                  j                  dk(  rd|
› �}
t        |d   dd  «      j                  }|
› d|› |› �}|}d}|rdd}|j                  «       D ]J  \  }}t        |dd  «      j                  }|
› d|› |› �}||z  }|d	k(  r|d
z  }n
|d|d›d�z  }||kD  sŒG|}|}ŒL |d d }|d   }|d   �dj                  |d   «      }d|› d�}nd}g d¢}d}|D ]  }||   sŒ	||› d||   › d�z  }Œ |d   r|d   nd}d|› d|› d|› d|› d|› d�}d|› d�}|d |› d�z  }|d!|› d"�z  }|d#   r|d$z  }|d%|d#   › d&�z  }|d'z  }|d(z  }| j                  j                  |«       y ))NrC   r    Údirhtmlz..r!   r   ú/r7   r   z, r6   z1.2fzx, éþÿÿÿr   r   zclass="ú")r   r   r   z: ú;r   Úcenterz
<img src="z	" style="z
" srcset="z" alt="z" z/>z<figure class="align-z">
z6  <a class="reference internal image-reference" href="z    z
  </a>
r   z  <figcaption>
z!   <p><span class="caption-text">z</span></p>
z  </figcaption>
z
</figure>
)r\   r   rH   rJ   rK   r   rO   rI   Úas_posixrS   ÚitemsÚjoinÚbodyÚappend)r%   rV   rP   r   rY   rW   rX   Ú	relsourceÚdesttopÚdestÚimagerelÚnmr!   ÚmaxsrcÚsrcsetstÚmaxmultr@   rZ   Úpathr   ÚclassstÚstylersÚstylestÚstyleÚfigalignÚ	img_blockÚ
html_blocks                              r   Úvisit_figmpl_htmlry   ¬   s¿  € ä/°°dÓ;Ñ€Hˆf�cô ˜Ÿ™ xÑ0Ó1€Iô �d—l‘l×)Ñ)¨2Ó.€Fä˜	 6Ó*€Iä�t—|‘|×*Ñ*¨BÓ/€Gà�YÑ€Dô œ ¨$¯+©+Ó6Ó7×@Ñ@ÓB€HØ‡|�|×Ñ˜IÒ%Ø˜�z�?ˆô 
�$�u‘+˜a˜b�/Ó	"×	'Ñ	'€BØˆJ�a˜�u˜R˜DÐ
!€Cð €FØ€HÙØˆØŸ™›ò 	‰IˆD�#Ü˜#˜a˜b˜'Ó"×'Ñ'ˆBà�Z˜q   b TÐ*ˆDØ˜ÑˆHØ�qŠyØ˜DÑ ‘à˜a  T˜{¨#Ð.Ñ.�à�g‹~Ø�Ø‘ð	ð ˜C˜R�=ˆà
ˆu‰+€CØˆG�}Ð Ø—(‘(˜4 ™=Ó)ˆØ˜G˜9 AÐ&‰ð ˆâ*€GØ€GØò 2ˆØ�‹;Ø˜%˜  4¨¡; -¨qÐ1Ñ1‰Gð2ð !% W¢ˆt�GŠ}°8€Hð ˜c˜U )¨G¨9°J¸x¸jð IØ˜˜R ˜y¨ð,€Ià(¨¨
°$Ð7€JØÐJÈ6È(ÐRVÐWÑW€JØ�D˜˜ :Ð.Ñ.€JØˆI‚ØÐ(Ñ(ˆ
ØÐ9¸$¸y¹/Ð9JÈ-ÐXÑXˆ
ØÐ)Ñ)ˆ
Ø�-Ñ€JØ‡I�I×Ñ�ZÕ r   c                 ó¢   — |d   �9t        | |«      \  }}d}t        |d¬«      }t        ||   «      j                  |d<   | j	                  |«       y )Nr   r7   )Údefaultr!   )r\   Úmaxr   rS   Úvisit_figure)r%   rV   rP   r   rp   s        r   Úvisit_figmpl_latexr~     sT   € àˆH�~Ð!Ü.¨t°TÓ:Ñˆ�&Øˆä�f bÔ)ˆÜ˜v g™Ó/×4Ñ4ˆˆU‰à×Ñ�dÕr   c                  ó   — y ©Nr   ©r%   rV   s     r   Údepart_figmpl_htmlr‚     s   € Ør   c                 ó&   — | j                  |«       y r€   )Údepart_figurer�   s     r   Údepart_figmpl_latexr…     s   € Ø×Ñ�tÕr   c                 ó\   — | j                  t        t        t        ft        t
        f¬«       y )N)ÚhtmlÚlatex)Úadd_noder   ry   r‚   r~   r…   )Úapps    r   Úfigurempl_addnoder‹     s(   € Ø‡L�L”Ü(Ô*<Ð=Ü*Ô,?Ð@ð õ Br   c                 óp   — | j                  dt        «       t        | «       ddt        j                  dœ}|S )Nz
figure-mplT)Úparallel_read_safeÚparallel_write_safeÚversion)Úadd_directiver   r‹   Ú
matplotlibÚ__version__)rŠ   Úmetadatas     r   Úsetupr”     s4   € Ø×Ñ�l¤IÔ.Ü�cÔØ&*À4Ü%×1Ñ1ñ3€Hà€Or   )r)   Údocutilsr   Údocutils.parsers.rstr   Ú&docutils.parsers.rst.directives.imagesr   r   rM   Úos.pathr   Úpathlibr   r	   rT   Úsphinx.errorsr
   r‘   ÚGeneralÚElementr   r   rA   r\   ry   r~   r‚   r…   r‹   r”   r   r   r   ú<module>r�      sx   ðñõ å +ß @ã 	Ý ß "Û å (ã ô	�—‘ §¡ô 	ôN�ô Nòbò$$!òNR!òj	ò	òòBór   