HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/sphinx/environment/collectors/__pycache__/toctree.cpython-310.pyc
o

�$�a�3�@s�dZddlmZmZmZmZmZmZmZm	Z	ddl
mZddlm
Z
mZddlmZddlmZddlmZddlmZdd	lmZdd
lmZddlmZddlmZmZed
�Z e�!e"�Z#Gdd�de�Z$dedee%effdd�Z&dS)z�
    sphinx.environment.collectors.toctree
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Toctree collector for sphinx.environment.

    :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
�)�Any�Dict�List�Set�Tuple�Type�TypeVar�cast)�nodes)�Element�Node)�addnodes)�Sphinx)�BuildEnvironment)�TocTree)�EnvironmentCollector)�__)�SphinxContentsFilter)�logging�url_re�Nc
@s�eZdZdedededdfdd�Zdededeed	eddf
d
d�Zdede	j
ddfd
d�Zdededeefdd�Z
dedeefdd�Zdedeefdd�ZdS)�TocTreeCollector�app�env�docname�returnNcCs�|j�|d�|j�|d�|j�|d�|j�|d�|j�|d�|j�|�|j�|�t	|j
���D]\}}|�|�|sE|j
|=q6dS�N)�tocs�pop�toc_secnumbers�toc_fignumbers�toc_num_entries�toctree_includes�
glob_toctrees�discard�numbered_toctrees�list�files_to_rebuild�items)�selfrrr�subfn�fnset�r,�G/usr/lib/python3/dist-packages/sphinx/environment/collectors/toctree.py�	clear_docs
��zTocTreeCollector.clear_doc�docnames�othercCs�|D]5}|j||j|<|j||j|<||jvr!|j||j|<||jvr,|j�|�||jvr7|j�|�q|j��D]\}}|j�|t	���
|t	|�@�q=dSr)rr!r"r#�addr%r'r(�
setdefault�set�update)r)rrr/r0rr*r+r,r,r-�merge_other-s


� �zTocTreeCollector.merge_other�doctreecs��jj�dg�dtdttdttf�fdd��d
dtdtdtjf������fd	d
�
����}|r9|�jj	�<n	t�d��jj	�<�d�jj
�<dS)z;Build a TOC from the doctree and store it in the inventory.r�node�clsrcsRg}t||�r|�|�|jD]}t|tj�rqt|tj�r&|��||��q|S)z2Like traverse(), but stay within the same section.)�
isinstance�append�childrenr
�sectionr�extend)r7r8�result�child)�traverse_in_sectionr,r-r@As


�z9TocTreeCollector.process_doc.<locals>.traverse_in_section��depthcsdg}|D]�}t|tj�rc|d}t��}|�|�|��}�ds$d}nd|dd}�dd7<tjddg|�Rd�|d��}t�dd|�}	t�	d|	�}
�||d�}|r]|
|7}
|�
|
�qt|tj�r�tj|dd	�}�||�}
|
r�||
j7}|�
|�qt|tj
�r��|tj�D]}|��}
|�
|
�t�j���|�q�q|r�tjdg|�R�SdS)
Nr��#�idsrAT)�internal�refuri�
anchorname�expr)rI)r9r
r<r�	walkabout�get_entry_text�	referencer
�compact_paragraph�	list_itemr:�onlyr;r�toctree�copyrr�note�bullet_list)r7rB�entries�sectionnode�title�visitor�nodetextrHrL�para�item�sub_item�onlynode�blist�toctreenode�r�	build_tocrr6�
numentriesr@r,r-r`MsV
���


��
�z/TocTreeCollector.process_doc.<locals>.build_tocrCN)rA)rrrrrr�intr
rSrr!)r)rr6�tocr,r_r-�process_doc<s"(/zTocTreeCollector.process_doccCs|�|�|�|�Sr)�assign_section_numbers�assign_figure_numbers)r)rrr,r,r-�get_updated_docs�sz!TocTreeCollector.get_updated_docscs�g�t���j�i�_ddtdtdtdtjddf
���fdd�
�d	tjdtddf�����fd
d���j	D]%}��
|���|�}|�tj�D]}|�
dd
�}|rYd
g��||�qGq5�S)zAAssign a section number to each heading under a numbered toctree.Nr7�secnumsrB�	titlenodercs|jD]�}t|tj�r ��d��|||d|����d}qt|tj�r0�||||�d}qt|tj�r@�||||�d}qt|tj	�r|�dd7<t
tj|d�}|dkrgt��}t
��||d<nd}d||d<||d<|r{||d<d}qt|tj�r��||�qdS)NrrA���rH�	secnumber)r;r9r
rSr:rrNr
rOrMr	rLr&�tuplerP)r7rhrBri�subnoderL�number)�	_walk_toc�
_walk_toctree�numstackr,r-ro�s:

�
��z:TocTreeCollector.assign_section_numbers.<locals>._walk_tocr^cs�|dkrdS|dD]J\}}t�|�s|dkrq
|�vr)tjtd�||ddd�q
|�jvrTi}|�j|<��|���j|||�j�	|��|��	|�krT��
|�q
dS)NrrTr)zA%s is already assigned section numbers (nested numbered toctree?)rc�secnum)�location�type�subtype)r�match�logger�warningrrrr1�titles�getr:)r^rBrV�refrh)ro�assignedr�old_secnumbers�rewrite_neededr,r-rp�s&
�



��z>TocTreeCollector.assign_section_numbers.<locals>._walk_toctree�numberedrr)r3rrrrbr
rVr
rPr%r1�get_doctree�traverserz)r)rrr6r^rBr,)rorpr|rrqr}r~r-re�s"*$"



��z'TocTreeCollector.assign_section_numbersc
sHg}t���j}i�_i�dtdtf�fdd��dtdtjdttdff�fdd	��d
tdttdfdttdff��fdd
��dtdttdfd
tdtddf
��fdd��dtdtdttdfddf�����fdd��dtdttdfddf���fdd���j	j
r���j	jt���j�
�D]\}}||�|�kr�|�|�q�|S)z?Assign a figure number to each figure under a numbered toctree.r7rcs@�j��D]}|�|�}|jdkr|�|�sq|r|SqdS)N�std)�domains�values�get_enumerable_node_type�name�get_numfig_title)r7�domain�figtype�rr,r-�get_figtype�s
�z;TocTreeCollector.assign_figure_numbers.<locals>.get_figtyperr<.csFd|dd}�j�|i�}||vr|�|�}n|�d�}|p"t�S)NrDrErrC)rrzrl)rr<rH�
secnumbersrrr�r,r-�get_section_number�s

zBTocTreeCollector.assign_figure_numbers.<locals>.get_section_numberr�rrcs>��|i�}|d�jj�}|�|d�d||<|||fS)NrrA)r2�config�numfig_secnum_depthrz)r�rr�counter)r�fignum_counterr,r-�get_next_fignumber�szBTocTreeCollector.assign_figure_numbers.<locals>.get_next_fignumber�fignodeNcs>�j�|i��j|�|i�}|dd}�||�||<dS)NrEr)r r2)rrrr�r��
fignumbers�	figure_id)rr�r,r-�register_fignumber�szBTocTreeCollector.assign_figure_numbers.<locals>.register_fignumberr6cs�|jD]Y}t|tj�r �||�}|r�|||�q�|||�qt|tj�r?|dD]\}}t�|�s7|dkr8q*�||�q*qt|tj�r\�|�}|rV|drV�||||��|||�qdS)NrTr)rE)	r;r9r
r<r
rPrrvr)rr6rrrm�next_secnumrV�
subdocnamer�)�	_walk_doc�
_walk_doctreer�r�r�r,r-r��s&

���z=TocTreeCollector.assign_figure_numbers.<locals>._walk_doctreecs0|�vr��|���|�}�|||�dSdSr)r1r�)rrrr6)r�r|rr,r-r�s


�z9TocTreeCollector.assign_figure_numbers.<locals>._walk_doc)r3r r�strr
r<rrbrr��numfig�root_docrlr(rzr:)r)rr~�old_fignumbersr�fignumsr,)	r�r�r|rr�r�r�r�r�r-rf�s0$,
���.&
�z&TocTreeCollector.assign_figure_numbers)�__name__�
__module__�__qualname__rrr�r.rr5r
�documentrdrrgrerfr,r,r,r-rs�
�GJrrrcCs|�t�dddd�S)N�builtinT)�version�parallel_read_safe�parallel_write_safe)�add_env_collectorr)rr,r,r-�setup$s

�r�N)'�__doc__�typingrrrrrrrr	�docutilsr
�docutils.nodesrr�sphinxr
�sphinx.applicationr�sphinx.environmentr�#sphinx.environment.adapters.toctreer�sphinx.environment.collectorsr�
sphinx.localer�sphinx.transformsr�sphinx.utilrrr�	getLoggerr�rwrr�r�r,r,r,r-�<module>s$(