U
    \	a                     @   s   d dl 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	Z
d dl	mZmZ G dd dejejZdd	 Zi g fd
dZdeie_G dd deZdddZdd Zdd ZdS )    N)Path)nodes)	Directive
directives)_apimathtextc                   @   s   e Zd ZdS )
latex_mathN)__name__
__module____qualname__ r   r   @/tmp/pip-unpacked-wheel-wjyw_3jo/matplotlib/sphinxext/mathmpl.pyr      s   r   c                 C   s   t | tjjS N)r   choicer   ZMathTextParserZ_font_type_mapping)argr   r   r   fontset_choice   s    r   c           
      C   sD   | d}||d d }t|}	||	d< |dd|	d< |	gg fS )N`   latexfontsetcm)findr   get)
roleZrawtexttextlinenoZinlineroptionscontentir   noder   r   r   	math_role   s    
r!   r   c                   @   s,   e Zd ZdZdZdZdZdeiZdd Z	dS )MathDirectiveTr   Fr   c                 C   s6   d | j}t| j}||d< | jdd|d< |gS )N r   r   r   )joinr   r   Z
block_textr   r   )selfr   r    r   r   r   run'   s
    
zMathDirective.runN)
r	   r
   r   Zhas_contentZrequired_argumentsZoptional_argumentsZfinal_argument_whitespacer   Zoption_specr&   r   r   r   r   r"       s   r"   r   c              	   C   sf   d|  } t d|iF ztj| |ddd}W n( tk
rV   td|   d}Y nX W 5 Q R X |S )N$%s$zmathtext.fontsetd   Zpng)Zdpiformatz!Could not render math expression r   )mplZ
rc_contextr   Zmath_to_image	Exceptionr   Zwarn_external)r   filenamer   depthr   r   r   	latex2png0   s       
r.   c                 C   s   t | jtj}| d }| d }dt||   dd  }t	t
jjjdd}|jddd || d	 }t|||}|rd
}	nd}	|r|dkrd|d  }
nd
}
dt
jjj d| d|	 |
 dS )Nr   r   zmath-{}iZ_imagesmathmplT)parentsexist_okz.pngr#   zclass="center" r   z)style="position: relative; bottom: -%dpx"r   z
<img src="z	/mathmpl/z.png" z/>)
isinstanceparentr   TextElementr)   hashlibmd5encode	hexdigestr   setupappZbuilderZoutdirmkdirr.   Zimgpath)r    sourceinliner   r   namedestdirdestr-   clsstyler   r   r   
latex2html=   s"    rC   c                 C   s   | t _dd }dd }dd }dd }| jt||f||fd	 | d
t | d
t tj	dk rx| dt | dt ddd}|S )Nc                 S   s"   | j jd }| jt|| d S )Nr<   )document
attributesbodyappendrC   )r%   r    r<   r   r   r   visit_latex_math_html[   s    z$setup.<locals>.visit_latex_math_htmlc                 S   s   d S r   r   r%   r    r   r   r   depart_latex_math_html_   s    z%setup.<locals>.depart_latex_math_htmlc                 S   sB   t |jtj}|r(| jd|d   n| jd|d dg d S )Nr'   r   z\begin{equation}z\end{equation})r2   r3   r   r4   rF   rG   extend)r%   r    r=   r   r   r   visit_latex_math_latexc   s    z%setup.<locals>.visit_latex_math_latexc                 S   s   d S r   r   rI   r   r   r   depart_latex_math_latexl   s    z&setup.<locals>.depart_latex_math_latex)htmlr   r/   )r      mathT)Zparallel_read_safeZparallel_write_safe)
r9   r:   add_noder   Zadd_roler!   Zadd_directiver"   sphinxversion_info)r:   rH   rJ   rL   rM   metadatar   r   r   r9   W   s     	

r9   )r   )r5   pathlibr   Zdocutilsr   Zdocutils.parsers.rstr   r   rR   Z
matplotlibr*   r   r   ZGeneralElementr   r   r!   r   r"   r.   rC   r9   r   r   r   r   <module>   s     


