
    Ri                    @   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZ dd	lmZ dd
lmZ er8ddlmZmZ ddlmZmZ ddlmZmZmZ ddlmZ ddlmZ ddlm Z  ddl!m"Z" ddl#m$Z$  ejJ                  e&      Z' G d de      Z( G d de
      Z)ddZ*y)zThe math domain.    )annotations)TYPE_CHECKING)nodes)make_id)Domain)__)XRefRole)logging)make_refnode)IterableSet)AnyClassVar)ElementNodesystem_message)pending_xref)Sphinx)Builder)BuildEnvironment)ExtensionMetadatac                  (    e Zd Z	 	 	 	 	 	 	 	 	 	 ddZy)MathReferenceRolec                    d|d<   |gg fS )Nmath	refdomain )selfdocumentenvnodeis_refs        K/home/agent/.friday_env/lib/python3.12/site-packages/sphinx/domains/math.pyresult_nodeszMathReferenceRole.result_nodes!   s     #[vrz    N)
r   znodes.documentr    r   r!   r   r"   boolreturnz'tuple[list[Node], list[system_message]])__name__
__module____qualname__r$   r   r%   r#   r   r       s7       	
  
1r%   r   c                      e Zd ZU dZdZdZi i dZded<   ddiZe	j                  d	iZd
 e       iZedd       ZdddZddZddZddZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddZdddZy)
MathDomainzMathematics domain.r   mathematics)objectshas_equationszClassVar[dict[str, Any]]initial_dataeqzequation not found: %(target)s)displaymathNnumrefc                :    | j                   j                  di       S Nr.   )data
setdefaultr   s    r#   	equationszMathDomain.equationsA   s    yy##Ir22r%   Nc                    || j                   v r6| j                   |   d   }t        j                  t        d      |||dd       || j                  j                  d      dz   f| j                   |<   y )Nr   z4duplicate label of equation %s, other instance in %srefequation)locationtypesubtypeeqno   )r9   loggerwarningr   r    new_serialno)r   docnamelabelidr=   others        r#   note_equationzMathDomain.note_equationE   ss    dnn$NN7+A.ENNIJ!"   $+DHH,A,A&,IA,M"Nwr%   c                D    || j                   v r| j                   |   d   S y )NrA   )r9   )r   rF   s     r#   get_equation_number_forz"MathDomain.get_equation_number_forS   s%    dnn$>>'*1--r%   c                    t        | j                  j                               D ]  \  }\  }}||k(  s| j                  |=  y N)listr9   items)r   rE   equation_iddoc_eqnos        r#   	clear_doczMathDomain.clear_docY   s?    )-dnn.B.B.D)E 	0%K#ug~NN;/	0r%   c                l    |d   j                         D ]  \  }\  }}||v s||f| j                  |<     y r5   )rN   r9   )r   docnames	otherdatarF   rP   r@   s         r#   merge_domaindatazMathDomain.merge_domaindata^   sA    $-i$8$>$>$@ 	6 G[c4h+.+w'	6r%   c                0   |dv sJ | j                   j                  |      }|r#|\  }	}
t        d|z        }|j                  j                  r|j                  j
                  r|	|j                  v ry|j                  |	   d   }|j                  |d      }dj                  t        t        |            }|j                  j                  j                  |j                  dd            }nd}nt        |
      }	 |j                  j                  xs d}t        j                  |j                  |	            }t)        |||	||      S y # t         $ rC}t"        j%                  t'        d
      ||       t        j                  d|
z        }Y d }~Wd }~ww xY w)N>   r1   r3   zequation-%sr2   r   .rA    z
({number}))numberzInvalid math_eqref_format: %r)r=   z(%d))r9   getr   configmath_numfignumfigtoc_fignumbersjoinmapstrmath_numseprsplitmath_eqref_formatr   TextformatKeyErrorrB   rC   r   r   )r   r    fromdocnamebuildertyptargetr!   contnoderesultrE   rZ   node_idtoc_dmnumbersr@   eqref_formattitleexcs                     r#   resolve_xrefzMathDomain.resolve_xrefc   s`    &&&&##F+$OGVmf45Gzz%%#***;*;c000 //8GF$jj"5G88CW$56D::1166t{{37JKDD6{4"zz;;K|

<#6#6d#6#CD  gwNN  4r"ABCRVW

6F?34s   :?E	 		F9FFc           	     B    | j                  |||d|||      }|g S d|fgS )Nr1   )ru   )r   r    ri   rj   rl   r!   rm   refnodes           r#   resolve_any_xrefzMathDomain.resolve_any_xref   s<     ##gtVT8
 ?I7O$$r%   c                    g S rL   r   r8   s    r#   get_objectszMathDomain.get_objects   s    	r%   c                     y)NTr   )r   rE   s     r#   r/   zMathDomain.has_equations   s    r%   )r'   zdict[str, tuple[str, int]]rL   )rE   rb   rF   rb   r=   r   r'   None)rF   rb   r'   z
int | None)rE   rb   r'   r|   )rT   zSet[str]rU   zdict[str, Any]r'   r|   )r    r   ri   rb   rj   r   rk   rb   rl   rb   r!   r   rm   r   r'   znodes.reference | None)r    r   ri   rb   rj   r   rl   rb   r!   r   rm   r   r'   z!list[tuple[str, nodes.reference]])r'   z-Iterable[tuple[str, str, str, str, str, int]])rE   z
str | Noner'   r&   )r(   r)   r*   __doc__namelabelr0   __annotations__dangling_warningsr   
math_blockenumerable_nodesr   rolespropertyr9   rH   rJ   rR   rV   ru   rx   rz   r/   r   r%   r#   r,   r,   ,   s.   DE .L*  	. 	/ 	#%E 3 3O0
6
## # 	#
 # # # # 
 #J%% % 	%
 % % % 
+%"r%   r,   c                r    | j                  t               | j                  dt        d             dddddS )Nr1   T)warn_danglingbuiltin   )versionenv_versionparallel_read_safeparallel_write_safe)
add_domainr,   add_roler   )apps    r#   setupr      s:    NN:LL(t<= "#	 r%   N)r   r   r'   r   )+r}   
__future__r   typingr   docutilsr   docutils.nodesr   sphinx.domainsr   sphinx.localer   sphinx.rolesr	   sphinx.utilr
   sphinx.util.nodesr   collections.abcr   r   r   r   r   r   r   sphinx.addnodesr   sphinx.applicationr   sphinx.buildersr   sphinx.environmentr   sphinx.util.typingr   	getLoggerr(   rB   r   r,   r   r   r%   r#   <module>r      su     "    " !  !  *-$<<,)'34 
		8	$	 	r rj	r%   