
    zi~                    J   d Z ddlmZ ddl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 dd	lmZmZ dd
lmZ ddlmZ er ddlmZ ddlmZmZ ddlmZ ddlmZ ddl m!Z!  ej"        e#          Z$ G d de          Z% G d de          Z& G d de          Z'ddZ(dS )zThe index domain.    )annotations)TYPE_CHECKINGAny)nodes)
directives)addnodes)Domain)logging)ReferenceRoleSphinxDirective)split_index_msg)process_index_entry)Iterable)Nodesystem_message)Sphinx)BuildEnvironment)
OptionSpecc                  J    e Zd ZdZdZdZedd            Zdd	ZddZ	ddZ
dS )IndexDomainzMathematics domain.indexreturn6dict[str, list[tuple[str, str, str, str, str | None]]]c                8    | j                             di           S Nentries)data
setdefault)selfs    _/var/www/tmov.alphamb/tmov_inventario/venv/lib/python3.11/site-packages/sphinx/domains/index.pyr   zIndexDomain.entries#   s    y##Ir222    docnamestrNonec                <    | j                             |d            d S )N)r   pop)r   r"   s     r    	clear_doczIndexDomain.clear_doc'   s     $'''''r!   docnamesIterable[str]	otherdatadict[str, Any]c                <    |D ]}|d         |         | j         |<   d S r   r   )r   r(   r*   r"   s       r    merge_domaindatazIndexDomain.merge_domaindata*   s8     	B 	BG$-i$8$ADL!!	B 	Br!   envr   documentr   c                   | j                             |j        g           }t          |                    t
          j                            D ]}	 |d         D ]\  }}}}	}
t          ||           	 |d         D ]}|                    |           F# t          $ rM}t                              t          |          |           |j                            |           Y d}~d}~ww xY wdS )z7Process a document after it is read by the environment.r   )locationN)r   r   r"   listfindallr   r   r   append
ValueErrorloggerwarningr#   parentremove)r   r/   r"   r0   r   node
entry_typevalue
_target_id_main_category_keyentryexcs                r    process_doczIndexDomain.process_doc.   s   ,))#+r::))(.99:: 		* 		*D*MQR[_ 7 7IZ
E=#J66667 ")_ * *ENN5))))*	  ) ) )s3xx$777""4(((((((()			* 		*s   !B
C*AC%%C*N)r   r   )r"   r#   r   r$   )r(   r)   r*   r+   r   r$   )r/   r   r"   r#   r0   r   r   r$   )__name__
__module____qualname____doc__namelabelpropertyr   r'   r.   rC    r!   r    r   r      s        DE3 3 3 X3( ( ( (B B B B* * * * * *r!   r   c                  H    e Zd ZU dZdZdZdZdZdej	        iZ
ded<   ddZdS )IndexDirectivez0
    Directive to add entries to the index.
    F   r   TrH   r   option_specr   
list[Node]c                (   | j         d                             d          }d| j        v r&| j        d         }t          j        dd|g          }n5d| j                            d          z  }t          j        dd|g          }| j        j        	                    |           t          j                    }g |d	<   d
|d<   |                     |           |D ]7}|d	                             t          ||d         d                              8||gS )Nr   
rH    )namesindex-%sr   idsr   FinlinerW   )	argumentssplitoptionsr   targetr/   new_serialnostater0   note_explicit_targetr   r   set_source_infoextendr   )r   rY   
targetname
targetnodetargetid	indexnoderA   s          r    runzIndexDirective.runI   s   N1%++D11	T\!!f-Jb"ZLAAAJJ!DH$9$9'$B$BBHb"8*===J
00<<<N$$	!	)#	(Y''' 	Z 	ZEi ''(;E:eCTUVCW(X(XYYYY:&&r!   N)r   rP   )rD   rE   rF   rG   has_contentrequired_argumentsoptional_argumentsfinal_argument_whitespacer   	unchangedrO   __annotations__rf   rK   r!   r    rM   rM   =   sp           K $
$K    ' ' ' ' ' 'r!   rM   c                      e Zd ZddZdS )	IndexRoler   'tuple[list[Node], list[system_message]]c                   d| j                             d          z  }| j        r| j        }t	          | j        |          }nS| j                            d          r%| j        dd          }d| j        dd          |dd fg}n| j        }d| j        |dd fg}t          j        |          }t          j        dd|g	          }t          j
        |          }|                     |           |||gg fS )
NrU   r   !rN   singlemainrS   r-   rV   )r/   r]   has_explicit_titletitler   r\   
startswithr   r   r   Textr`   )r   	target_idru   r   r   r\   texts          r    rf   zIndexRole.run^   s   !6!6w!?!??	" 	IJE)$+yAAGG {%%c** I
122$dk!""oy&$OP
$dk9b$GHw///b"9+666z%  U###vt$b((r!   N)r   ro   )rD   rE   rF   rf   rK   r!   r    rn   rn   ]   s(        ) ) ) ) ) )r!   rn   appr   r   r+   c                    |                      t                     |                     dt                     |                     dt                                 dddddS )Nr   builtinrN   T)versionenv_versionparallel_read_safeparallel_write_safe)
add_domainr   add_directiverM   add_rolern   )rz   s    r    setupr   t   s_    NN;g~...LL)++&&& "#	  r!   N)rz   r   r   r+   ))rG   
__future__r   typingr   r   docutilsr   docutils.parsers.rstr   sphinxr   sphinx.domainsr	   sphinx.utilr
   sphinx.util.docutilsr   r   sphinx.util.index_entriesr   sphinx.util.nodesr   collections.abcr   docutils.nodesr   r   sphinx.applicationr   sphinx.environmentr   sphinx.util.typingr   	getLoggerrD   r7   r   rM   rn   r   rK   r!   r    <module>r      s     " " " " " " % % % % % % % %       + + + + + +       ! ! ! ! ! !       ? ? ? ? ? ? ? ? 5 5 5 5 5 5 1 1 1 1 1 1 .((((((33333333))))))333333------ 
	8	$	$* * * * *& * * *>' ' ' ' '_ ' ' '@) ) ) ) ) ) ) ).
 
 
 
 
 
r!   