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/transforms/__pycache__/i18n.cpython-310.pyc
o

�$�aZ�@s�dZddlmZddlmZddlmZmZmZm	Z	m
Z
mZmZm
Z
ddlmZddlmZddlmZddlmZdd	lmZdd
lmZddlmZmZddlmZdd
lmZ ddl!m"Z"ddl#m$Z$m%Z%m&Z&ddl'm(Z(ddl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/er�ddl0m1Z1e%�2e3�Z4dZ5e
dej6d�Z7ddde8de8de9dededefdd�Z:Gd d!�d!e"�Z;Gd"d#�d#e"�Z<Gd$d%�d%e"�Z=dddee8effd&d'�Z>d(S))z�
    sphinx.transforms.i18n
    ~~~~~~~~~~~~~~~~~~~~~~

    Docutils transforms used by Sphinx when reading documents.

    :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
�)�path)�indent)�
TYPE_CHECKING�Any�Dict�List�Optional�Tuple�Type�TypeVar)�nodes)�StringInput)�Element)�
relative_path)�addnodes)�Config)�make_glossary_term�split_term_classifiers)�__)�init)�SphinxTransform)�get_filetype�logging�split_index_msg)�docname_to_domain)�IMAGE_TYPE_NODES�LITERAL_TYPE_NODES�NodeMatcher�extract_messages�is_pending_meta�traverse_translatable_index)�Sphinx)�refexplicit�N)�bound�appr!�source�source_path�source_line�config�settings�returncCs�zG|j}d|_ddlm}|�}|�|�t|j|�}	|j�||	�}
|jt	|d||fd�|
|d�}z|d}Wn	t
yAYnw|W||_S||_w)a�Publish msgstr (single line) into docutils document

    :param sphinx.application.Sphinx app: sphinx application
    :param str source: source text
    :param str source_path: source path for warning indication
    :param source_line: source line for warning indication
    :param sphinx.config.Config config: sphinx config
    :param docutils.frontend.Values settings: docutils settings
    :return: document
    :rtype: docutils.nodes.document
    Nr)�SphinxI18nReaderz%s:%s:<translated>)r&r')r&�parserr*)�
rst_prolog�	sphinx.ior,�setupr�
source_suffix�registry�create_source_parser�readr
�
IndexError)r%r&r'r(r)r*r.r,�reader�filetyper-�doc�r9�8/usr/lib/python3/dist-packages/sphinx/transforms/i18n.py�publish_msgstr/s,


���r;c@�&eZdZdZdZdeddfdd�ZdS)�PreserveTranslatableMessageszD
    Preserve original translatable messages before translation
    �
�kwargsr+NcKs |j�tj�D]}|��qdS�N)�document�traverser�translatable�preserve_original_messages)�selfr?�noder9r9r:�apply[s
�z"PreserveTranslatableMessages.apply��__name__�
__module__�__qualname__�__doc__�default_priorityrrGr9r9r9r:r=U�r=c@r<)�LocalezC
    Replace translatable nodes with their translated doctree.
    �r?r+NcO
s0
�jj�jd}}d}|��jj�sJ�t�tt��jjd�|��d}t	|�j
j�}�fdd��j
jD�}t
|�j
j|�\}}	|	sEdSt�j�D]�\}
}|�|�}|r]||ks]|��s^qJ|���d�ri|d7}t|
t�rud	t|d
�}t�j|||
j�j
|�}t|tj�s�qJd}
t|
tj�r�t|
jtj�r�|
j}t�|���}t�|
���}||kr�|� dg�}|�!|��jj"�#|d�}�jj$�#|d�}|r�|s�jj"�%|d��jj$�%|d��jj&�%|d��j�'|�t(tj)|d
�}�j�*|�D]}||d<q�d}
t|
tj+��r1|
dD]&}t,|�}t�j|d||
j�j
|�}t-�j||d||
j|�j�}d}
�q
|
�rF|j.D]}|
|_�q7|j.|
_.d|
d<qJt�j�D�]f\}
}|
�#dd��rZ�qL|�|�}|�rg||k�ri�qLt|
t/j0��rx|
�1||��qLt|
tj2��r�t3|
��r�||
j4ddd<�qLt|
tj5��r�|
�#d�|k�r�||
d<�qL|���d��r�|d7}t|
t��r�d	t|d
�}t|
tj��r�|ddt6|�d}t�j|||
j�j
|�}t|
tj��r�|�7�}tjtjf}|t7}|t87}t||��s��qLdt9t:dt:dt:ddfdd�}t(tj;t<d�}t=|
�*|��}t=|�*|��}t6|�t6|�k�rEd d�|D�}d!d�|D�}t>j?t@d"��A||�|
d#�i}|D]} |� | �#d�g��!| ��qI|D]i}!|!�#d�}"|�#|"g�}#|#�ss|!j�B|!��q[|#�%d�}$|$d|!d<|!dD]	}%|!�jj&|%<�q�|!d$dk�r�|�jjC|$|!�n|�jjD|$|!�|"�rÈjjE� |"g�}&||&|$|!��jjF� |"g�}'||'|$|!��q[t(tjGt<d
�}(t=|
�*|(��})t=|�*|(��}*t6|)�t6|*�k�r�d%d�|)D�}+d&d�|*D�},t>j?t@d'��A|+|,�|
d#�d(d�|)D�}-d)d�|*D�}.t=tH|-�tH|.��}/|*D]}0�j�I|0d��s/|/�r.|/�%d�|0d<n	�j�J|0��qt(tj;t<d
�}1t=|
�*|1��}t=|�*|1��}i}2t6|�t6|�k�rrd*d�|D�}d+d�|D�}t>j?t@d"��A||�|
d#�|D]}$|2� |$dg��!|$d��qt|D]}!|!d}"|2�#|"��r�|2|"�%d�|!d<�q�t(tjKt<d
�}3t=|
�*|3��}4t=|�*|3��}5i}2t6|4�t6|5�k�r�d,d�|4D�}6d-d�|5D�}7t>j?t@d.��A|6|7�|
d#�|4D]}8|2� |8dg��!|8d��q�|5D]}9|9d}"|2�#|"��r|2|"�%�|9d<�q�t=|
�*t/jL��}:t=|�*t/jL��};i}<t6|:�t6|;�k�r:d/d�|:D�}=d0d�|;D�}>t>j?t@d1��A|=|>�|
d#�d2t/jLdtMtNtOtOtOffd3d4�}?|:D]}@|?|@�}A|A�r[|@jP|<|A<�qM|;D]}B|?|B�}A|<�#|Ai��Q�D]\}C}D|CtRv�rz|D|B|C<�qm�q_|j.D]}|
|_�q�|j.|
_.t|
t��r�|
��|
_St|
tj5��r�|
�#d�|k�r�|d5|
d5<�qLd|
d<�qLd6�j
jTv�rtU�j�D]C\}
}Eg}F|ED]1\}G}}H}I}JtV|G|�}Kg}L|KD]}M|�|M�}|�s�|M}|L�!|��q�|F�!|Gd7�|L�|H|Idf��q�|E|
d8<|F|
d9<�q��j�*t(t<d:��D]}N|N�Wd��q
dS);Nr&��dummyrcsg|]
}t��jj|��qSr9)r�join�env�srcdir)�.0�	directory�rEr9r:�
<listcomp>qs�z Locale.apply.<locals>.<listcomp>z::z

   dummy literalz::

z   F�names��refnamer\T�ids��
translatedr�content�alt�
�=��lst�old�newr+cSs(||vr
|||�|�<dS|�|�dSr@)�index�append)rerfrgr9r9r:�list_replace_or_append$sz,Locale.apply.<locals>.list_replace_or_append)�autocS�g|]}|j�qSr9��	rawsource�rV�refr9r9r:rY.�cSrlr9rmror9r9r:rY/rqzVinconsistent footnote references in translated message. original: {0}, translated: {1})�locationrkcSrlr9rmror9r9r:rYYrqcSrlr9rmror9r9r:rYZrqzMinconsistent references in translated message. original: {0}, translated: {1}cS�g|]}|d�qSr[r9�rV�rr9r9r:rY_�cSrsr[r9rtr9r9r:rY`rvcSrlr9rmror9r9r:rYurqcSrlr9rmror9r9r:rYvrqcSrlr9rmror9r9r:rY�rqcSrlr9rmror9r9r:rY�rqzVinconsistent citation references in translated message. original: {0}, translated: {1}cSrlr9rm�rV�xrefr9r9r:rY�rqcSrlr9rmrwr9r9r:rY�rqzRinconsistent term references in translated message. original: {0}, translated: {1}rFcSs2|d|df}|dkrdS|d|d|dfS)N�	refdomain�reftype)�std�term�	reftargetr9)rF�caser9r9r:�get_ref_key�s�z!Locale.apply.<locals>.get_ref_key�urirh�;�raw_entries�entries)r_)XrAr*�
startswithrTrUr�splitextrrSrr)�gettext_compact�locale_dirs�init_locale�languager�gettext�strip�endswith�
isinstancerrr;r%�liner�	paragraph�title�parent�section�fully_normalize_name�astext�
setdefaultri�nameids�get�	nametypes�popr]�note_implicit_targetr�targetrBr|rr�childrenrrC�apply_translated_message�pendingr�details�image�len�	next_noderrr#�footnote_referencer�list�logger�warningr�format�remove�autofootnote_refs�symbol_footnote_refs�
footnote_refs�refnames�	reference�set�has_name�note_refname�citation_reference�pending_xrefrr	�str�
attributes�items� EXCLUDED_PENDING_XREF_ATTRIBUTESrn�gettext_additional_targetsr r�delattr)OrEr?r*r&�msgstr�docname�
textdomain�dirs�catalog�has_catalogrF�msg�patch�	processed�section_node�new_name�old_namerZ�_id�explicit�matcher�
old_target�parts�child�
unexpectedrj�is_autofootnote_ref�
old_foot_refs�
new_foot_refs�old_foot_ref_rawsources�new_foot_ref_rawsources�old_foot_namerefsru�newfr\�refs�oldf�idr�r��is_refnamed_ref�old_refs�new_refs�old_ref_rawsources�new_ref_rawsources�
old_ref_names�
new_ref_names�orphans�newr�is_refnamed_footnote_ref�refname_ids_map�is_citation_ref�
old_cite_refs�
new_cite_refs�old_cite_ref_rawsources�new_cite_ref_rawsources�oldc�newc�	old_xrefs�	new_xrefs�xref_reftarget_map�old_xref_rawsources�new_xref_rawsourcesrrf�keyrg�k�vr��new_entries�type�tid�main�key_�	msg_parts�msgstr_parts�partr_r9rXr:rGfs���
�



�
	

��

�


��
�

�
�
��
��
�"

�
��




�zLocale.applyrHr9r9r9r:rO`rNrOc@r<)�RemoveTranslatableInlinezC
    Remove inline nodes used for translation as placeholders.
    i�r?r+NcKsbddlm}t|jj|�rdSttjtd�}t	|j
�|��D]}|j�
|�|j|j7_qdS)Nr)�MessageCatalogBuilder)rC)�sphinx.builders.gettextr�r�r%�builderrr�inlinerr�rArBr�r�r�)rEr?r�r�r�r9r9r:rG�s�zRemoveTranslatableInline.applyrHr9r9r9r:r��rNr�cCs*|�t�|�t�|�t�dddd�S)N�builtinT)�version�parallel_read_safe�parallel_write_safe)�
add_transformr=rOr�)r%r9r9r:r0�s


�r0N)?rL�osr�textwrapr�typingrrrrrr	r
r�docutilsr�docutils.ior
�docutils.nodesr�docutils.utilsr�sphinxr�
sphinx.configr�sphinx.domains.stdrr�
sphinx.localerrr��sphinx.transformsr�sphinx.utilrrr�sphinx.util.i18nr�sphinx.util.nodesrrrrrr �sphinx.applicationr!�	getLoggerrIr�r��Noder#r��intr;r=rOr�r0r9r9r9r:�<module>sH
( 
��
�&