3

T'ícûã@sdZddlmZmZmZmZmZmZmZddl	m
Z
ddlmZm
Z
mZmZddlmZddlmZddlmZddlmZdd	lmZdd
lmZddlmZer¼ddlmZdd
l m!Z!ej"e#ƒZ$Gdd„deƒZ%Gdd„deƒZ&dee'efdœdd„Z(dS)zThe math domain.é)Ú
TYPE_CHECKINGÚAnyÚDictÚIterableÚListÚOptionalÚTuple)Únodes)ÚElementÚNodeÚmake_idÚsystem_message)Úpending_xref)ÚDomain)ÚBuildEnvironment)Ú__)ÚXRefRole)Úlogging)Úmake_refnode)ÚSphinx)ÚBuilderc@s4eZdZejeeeee	e
e	efdœdd„ZdS)ÚMathReferenceRole)ÚdocumentÚenvÚnodeÚis_refÚreturncCsd|d<|ggfS)NÚmathZ	refdomain©)Úselfrrrrrrú5/tmp/pip-build-gk9425m9/sphinx/sphinx/domains/math.pyÚresult_nodesszMathReferenceRole.result_nodesN)
Ú__name__Ú
__module__Ú__qualname__r	rrr
Úboolrrrr
r!rrrr rsrc
@s.eZdZUdZdZdZiidœZeddiZe	j
d'iZd	eƒiZ
eeeeeeffd
œdd„ƒZd(eeedd
œdd„Zeedœdd„Zeee	jddœdd„Zeddœdd„Zeeeddœdd„Zeedeeeeeedœdd„Zeedeeee eeefd œd!d"„Z!e d
œd#d$„Z"d)ee#dœd%d&„Z$dS)*Ú
MathDomainzMathematics domain.rZmathematics)ÚobjectsÚ
has_equationsÚeqzequation not found: %(target)sÚdisplaymathNÚnumref)rcCs|jjdiƒS)Nr')ÚdataÚ
setdefault)rrrr Ú	equations2szMathDomain.equations)ÚdocnameÚlabelidÚlocationrcCsP||jkr2|j|d}tjtdƒ||f|d||jjdƒdf|j|<dS)Nrz4duplicate label of equation %s, other instance in %s)r1Úeqnoé)r.ÚloggerÚwarningrrZnew_serialno)rr/r0r1Úotherrrr Ú
note_equation6s


zMathDomain.note_equation)r0rcCs ||jkr|j|dSdSdS)Nr3)r.)rr0rrr Úget_equation_number_for>s
z"MathDomain.get_equation_number_for)rr/rrcCs,ttdœdd„}t|j|ƒƒ|jd|<dS)N)rrcSst|tjtjfƒS)N)Ú
isinstancer	rÚ
math_block)rrrr Ú	math_nodeFsz)MathDomain.process_doc.<locals>.math_noder()rr%ÚanyÚfindallr,)rrr/rr;rrr Úprocess_docDszMathDomain.process_doc)r/rcCsFx.t|jjƒƒD]\}\}}||kr|j|=qW|jdj|dƒdS)Nr()Úlistr.Úitemsr,Úpop)rr/Zequation_idÚdocZ_eqnorrr Ú	clear_docKszMathDomain.clear_doc)ÚdocnamesÚ	otherdatarcCs\x2|djƒD]"\}\}}||kr||f|j|<qWx"|D]}|d||jd|<q:WdS)Nr'r()r@r.r,)rrDrEr0rBr2r/rrr Úmerge_domaindataRs

zMathDomain.merge_domaindatar)rÚfromdocnameÚbuilderÚtypÚtargetrÚcontnodercCs|dkst‚|jj|d
ƒ\}}	|rtd|ƒ}
|jjrx|jjrx||jkrr|j|dj|
fƒ}djt	t
|ƒƒ}q€d}nt
|	ƒ}y"|jjpŒd}
tj
|
j|dƒ}WnRtk
rô}z6tjtd	ƒ||d
tj
d|	ƒ}tj
d|	ƒ}WYdd}~XnXt||||
|ƒSdSdS)Nr)r+zequation-%sr*Ú.Úz
({number}))ÚnumberzInvalid math_eqref_format: %r)r1z(%d))r)r+)NN)ÚAssertionErrorr.ÚgetrÚconfigZmath_numfigZnumfigZtoc_fignumbersÚjoinÚmapÚstrZmath_eqref_formatr	ZTextÚformatÚKeyErrorr4r5rr)rrrGrHrIrJrrKr/rNZnode_idZnumbersr2Zeqref_formatÚtitleÚexcrrr Úresolve_xrefZs(
 zMathDomain.resolve_xref)rrGrHrJrrKrcCs0|j|||d|||ƒ}|dkr"gSd|fgSdS)Nr))rY)rrrGrHrJrrKZrefnoderrr Úresolve_any_xrefwszMathDomain.resolve_any_xrefcCsgS)Nr)rrrr Úget_objects€szMathDomain.get_objectscCs,|r|jdj|dƒSt|jdjƒƒSdS)Nr(F)r,rPr<Úvalues)rr/rrr r(ƒszMathDomain.has_equations)r*N)N)N)%r"r#r$Ú__doc__ÚnameÚlabelZinitial_datarZdangling_warningsr	r:Zenumerable_nodesrZrolesÚpropertyrTrÚintr.rr7r8rrr>rCrrFrr
rrYrrZr[r%r(rrrr r&s0


 r&r)ÚapprcCs*|jtƒ|jdtddƒdddddœS)Nr)T)Z
warn_danglingÚbuiltiné)ÚversionZenv_versionZparallel_read_safeZparallel_write_safe)Z
add_domainr&Zadd_roler)rbrrr ÚsetupŠs
rfN))r]ÚtypingrrrrrrrZdocutilsr	Zdocutils.nodesr
rrr
Zsphinx.addnodesrZsphinx.domainsrZsphinx.environmentrZ
sphinx.localerZsphinx.rolesrZsphinx.utilrZsphinx.util.nodesrZsphinx.applicationrZsphinx.buildersrÚ	getLoggerr"r4rr&rTrfrrrr Ú<module>s"$
k