o
    Ni                     @  sP   d Z ddlmZ ddlmZ erddlmZ ddlmZ dddZ	dddZ
dS )zUtility functions for math.    )annotations)TYPE_CHECKING)nodes)HTML5Translatorwriterr   nodenodes.math_blockreturnstrc                 C  s   | j jjrG| j jjrGd}| j jdkr| jd  d| }n|}|d d }| j j|i |d}dt	t
|}| j jj|dd	}|S |d
 S )Ndisplaymath
singlehtml/idsr    .   number)builderconfigmath_numfignumfignamedocnames
fignumbersgetjoinmapr
   math_numseprsplit)r   r   figtypekeyidr   eqnor   r   D/home/ubuntu/.local/lib/python3.10/site-packages/sphinx/util/math.pyget_node_equation_number   s   r%   textlabel
str | None	numberingboolc           
      C  s   ddd}|d u rd}nd| }d}t t|| d	}g }t|d
kr&dS t|dkrE|r5d| }d}nd| }d}|d|d
   n|rNd| }d}nd| }d}|dd |D  d|}	| d|	 | S )Npartr
   r	   c                 S  s   |   S )Nstrip)r+   r   r   r$   is_equation   s   z%wrap_displaymath.<locals>.is_equation z
\label{%s}Tz

r   r   z\begin{equation}z\end{equation}z\begin{equation*}z\end{equation*}z\begin{split}%s\end{split}
z \begin{align}%s\!\begin{aligned}z\end{aligned}\end{align}z!\begin{align*}%s\!\begin{aligned}z\end{aligned}\end{align*}c                 s  s    | ]	}d |   V  qdS )z%s\\
Nr,   ).0r+   r   r   r$   	<genexpr>;   s    z#wrap_displaymath.<locals>.<genexpr>
)r+   r
   r	   r
   )listfiltersplitlenappendextendr   )
r&   r'   r)   r.   labeldefparts	equationsbeginendconcatenated_equationsr   r   r$   wrap_displaymath   s0   

r?   N)r   r   r   r   r	   r
   )r&   r
   r'   r(   r)   r*   r	   r
   )__doc__
__future__r   typingr   docutilsr   sphinx.writers.html5r   r%   r?   r   r   r   r$   <module>   s    
