o $a@sdZddlmZmZmZmZmZmZmZddl m Z ddl m Z m Z mZmZddlmZddlmZddlmZddlmZdd lmZdd lmZdd lmZer^dd lmZdd l m!Z!e"e#Z$GdddeZ%GdddeZ&dddee'effddZ(dS)z sphinx.domains.math ~~~~~~~~~~~~~~~~~~~ The math domain. :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. :license: BSD, see LICENSE for details. ) TYPE_CHECKINGAnyDictIterableListOptionalTuple)nodes)ElementNodemake_idsystem_message) pending_xref)Domain)BuildEnvironment)__)XRefRole)logging) make_refnode)Sphinx)Builderc @s<eZdZdejdedededee e e e ff ddZ dS) MathReferenceRoledocumentenvnodeis_refreturncCsd|d<|ggfS)Nmath refdomain)selfrrrrrr5/usr/lib/python3/dist-packages/sphinx/domains/math.py result_nodes!s zMathReferenceRole.result_nodesN) __name__ __module__ __qualname__r rrr boolrrr r r"rrrr!r s rc@sbeZdZUdZdZdZiidZeed<ddiZ e j diZ d e iZed eeeeefffd d Zd.dededed d fddZded efddZdedede jd d fddZded d fddZdeeded d fddZdeded d!d"ed#ed$ed%ed eefd&d'Z deded d!d#ed$ed%ed e!eeeffd(d)Z"d e!fd*d+Z#d.ded e$fd,d-Z%d S)/ MathDomainzMathematics domain.r mathematics)objects has_equations initial_dataeqzequation not found: %(target)s) displaymathNnumrefrcCs|jdiS)Nr))data setdefaultr rrr! equations:szMathDomain.equationsNdocnamelabelidlocationcCsP||jvr|j|d}tjtd||f|d||jddf|j|<dS)Nrz4duplicate label of equation %s, other instance in %sr5eqno)r2loggerwarningrr new_serialno)r r3r4r5otherrrr! note_equation>s  zMathDomain.note_equationcCs||jvr |j|dSdS)Nr8)r2)r r4rrr!get_equation_number_forFs z"MathDomain.get_equation_number_forrrcCs.dtdtfdd}t|||jd|<dS)NrrcSst|tjtjfSN) isinstancer r math_block)rrrr! math_nodeNsz)MathDomain.process_doc..math_noder*)r r&anytraverser/)r rr3rrBrrr! process_docLszMathDomain.process_doccCsBt|jD]\}\}}||kr|j|=q|jd|ddS)Nr*)listr2itemsr/pop)r r3 equation_iddocr7rrr! clear_docSs zMathDomain.clear_docdocnames otherdatacCsT|dD]\}\}}||vr||f|j|<q|D] }|d||jd|<qdS)Nr)r*)rGr2r/)r rLrMr4rJr7r3rrr!merge_domaindataZszMathDomain.merge_domaindata fromdocnamebuilderrtyptargetrcontnodec Cs |dvsJ|j|d\}} |rtd|} |jjr;|jjr;||jvr8|j|d| d} dtt | } nd} nt | } z|jj pEd} t | j | d }Wn*tyz}ztjtd ||d t d | }t d | }WYd}~nd}~wwt|||| |SdS) N)r,r.)NNz equation-%sr-r.z ({number}))numberzInvalid math_eqref_format: %rr6z(%d))r2getr config math_numfignumfigtoc_fignumbersjoinmapstrmath_eqref_formatr TextformatKeyErrorr9r:rr)r rrOrPrQrRrrSr3rVnode_idnumbersr7 eqref_formattitleexcrrr! resolve_xrefbs.     zMathDomain.resolve_xrefc Cs,||||d|||}|durgSd|fgS)Nr,)rh)r rrOrPrRrrSrefnoderrr!resolve_any_xrefs zMathDomain.resolve_any_xrefcCsgSr?rr1rrr! get_objectsszMathDomain.get_objectscCs(|r |jd|dSt|jdS)Nr*F)r/rWrCvalues)r r3rrr!r*szMathDomain.has_equationsr?)&r#r$r%__doc__namelabelr+r__annotations__dangling_warningsr rAenumerable_nodesrrolespropertyr^rintr2rr=r>rrrErKrrNrr rrhrrjrkr&r*rrrr!r''s\       r'apprrcCs*|t|dtdddddddS)Nr,T) warn_danglingbuiltin)version env_versionparallel_read_safeparallel_write_safe) add_domainr'add_roler)rvrrr!setups rN))rmtypingrrrrrrrdocutilsr docutils.nodesr r r r sphinx.addnodesrsphinx.domainsrsphinx.environmentr sphinx.localer sphinx.rolesr sphinx.utilrsphinx.util.nodesrsphinx.applicationrsphinx.buildersr getLoggerr#r9rr'r^rrrrr!s$$           k