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/builders/__pycache__/gettext.cpython-310.pyc
o

u�a�,�@sTdZddlmZddlmZmZddlmZmZmZddl	m
Z
mZmZddl
m
Z
ddlmZmZmZmZmZmZmZmZmZddlmZdd	lmZdd
lmZddlmZm Z ddl!m"Z"dd
l#m$Z$ddl%m&Z&ddl'm(Z(ddl)m*Z*ddl+m,Z,m-Z-m.Z.ddl/m0Z0ddl1m2Z2m3Z3ddl4m5Z5m6Z6ddl7m8Z8m9Z9m:Z:ddl;m<Z<ddl=m>Z>e,�?e@�ZAGdd�d�ZBGdd�d�ZCGdd�d�ZDGdd�de>�ZEGd d!�d!e<�ZFGd"d#�d#e$�ZGe
�ZHe�IeH�e�JeH�ZKe
d$�ZLeLd%ur�eMeL�ZHed�ZKGd&d'�d'e�ZNeN�ZOd(ePd)ePd*eQfd+d,�ZRGd-d.�d.eG�ZSd/e"d*eePeffd0d1�ZTd%S)2z�
    sphinx.builders.gettext
    ~~~~~~~~~~~~~~~~~~~~~~~

    The MessageCatalogBuilder class.

    :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
�)�open)�OrderedDict�defaultdict)�datetime�	timedelta�tzinfo)�getenv�path�walk)�time)	�Any�DefaultDict�Dict�	Generator�Iterable�List�Set�Tuple�Union)�uuid4)�nodes)�Element)�addnodes�package_dir)�Sphinx)�Builder)�pairindextypes)�
ThemeError)�__)�logging�split_index_msg�status_iterator)�bold)�CatalogInfo�docname_to_domain)�extract_messages�traverse_translatable_index)�
canon_path�	ensuredir�relpath)�Tags)�SphinxRendererc@s6eZdZdZdedeeeefdeefdd�ZdS)�Messagez!An entry of translatable message.�text�	locations�uuidscCs||_||_||_dS�N)r-r.r/)�selfr-r.r/�r2�9/usr/lib/python3/dist-packages/sphinx/builders/gettext.py�__init__)s
zMessage.__init__N)	�__name__�
__module__�__qualname__�__doc__�strrr�intr4r2r2r2r3r,'s*r,c@sPeZdZdZd
dd�Zdedeedfddfd	d
�Zde	e
ddffdd�ZdS)�Catalogz!Catalog of translatable messages.�returnNcCsg|_t�|_dSr0)�messagesr�metadata�r1r2r2r3r42szCatalog.__init__�msg�origin�	MsgOrigincCsNt|d�sdS||jvr|j�|�g|j|<|j|�|j|j|jf�dS)N�uid)�hasattrr>r=�append�source�linerC)r1r@rAr2r2r3�add8s


 zCatalog.addccsH�|jD]}dd�|j|D�}dd�|j|D�}t|||�VqdS)NcSsg|]	\}}}||f�qSr2r2��.0rFrG�uuidr2r2r3�
<listcomp>Dsz$Catalog.__iter__.<locals>.<listcomp>cSsg|]\}}}|�qSr2r2rIr2r2r3rLEs)r=r>r,)r1�message�	positionsr/r2r2r3�__iter__Bs�
�zCatalog.__iter__�r<N)r5r6r7r8r4r9rrrHrr,rOr2r2r2r3r;/s


r;c@s&eZdZdZdededdfdd�ZdS)rBz3
    Origin holder for Catalog message origin.
    rFrGr<NcCs||_||_t�j|_dSr0)rFrGr�hexrC)r1rFrGr2r2r3r4NszMsgOrigin.__init__)r5r6r7r8r9r:r4r2r2r2r3rBIsrBcsFeZdZddededdf�fdd�
Zdededef�fd	d
�Z�ZS)�GettextRendererN�
template_path�outdirr<csV||_|durt�tdd�}t��|�dtdtfdd�}||jjd<||jjd<dS)	N�	templates�gettext�sr<cSs$|�dd�}|�dd�}|�dd�S)N�\z\\�"z\"�
z\n"
")�replace�rWr2r2r3�escape[sz(GettextRenderer.__init__.<locals>.escape�er])	rTr	�joinr�superr4r9�env�filters)r1rSrTr]��	__class__r2r3r4UszGettextRenderer.__init__�filename�contextcs,dtdtf�fdd�}||d<t��||�S)NrWr<cstt|�j��Sr0)r'r)rTr\r?r2r3�_relpathesz(GettextRenderer.render.<locals>._relpathr))r9r`�render)r1rerfrgrcr?r3rhdszGettextRenderer.render)NN)r5r6r7r9r4rrh�
__classcell__r2r2rcr3rRTs"rRc@s"eZdZdZdedefdd�ZdS)�I18nTagsz�Dummy tags module for I18nBuilder.

    To translate all text inside of only nodes, this class
    always returns True value even if no tags are defined.
    �	conditionr<cC�dS)NTr2)r1rkr2r2r3�eval_conditionr�zI18nTags.eval_conditionN)r5r6r7r8r�boolrmr2r2r2r3rjlsrjcs�eZdZUdZdZdZdZeed<dZ	d�fdd	�Z
dd
ededefdd
�Zde
efdd�Zde
eddfdd�Zde
ededdfdd�Zd
edejddfdd�Z�ZS)�I18nBuilderz
    General i18n builder.
    �i18nr-N�versioning_compareFr<cs6t���|j�|j|jjj�t�|_t	t
�|_dSr0)r`�initra�set_versioning_method�versioning_method�config�gettext_uuidrj�tagsrr;�catalogsr?rcr2r3rss

�zI18nBuilder.init�docname�typcCrl)N�r2)r1rzr{r2r2r3�get_target_uri�rnzI18nBuilder.get_target_uricCs|jjSr0)ra�
found_docsr?r2r2r3�get_outdated_docs��zI18nBuilder.get_outdated_docs�docnamescC�dSr0r2)r1r�r2r2r3�prepare_writing�rnzI18nBuilder.prepare_writingryrMcCr�r0r2)r1ryrMr2r2r3�compile_catalogs�rnzI18nBuilder.compile_catalogs�doctreec
Cs�|jt||jj�}|jj|�tj�D]}t	|�D]
\}}d|_
|�||�qqt	|�D]
\}}|�||�q-d|jjjvrkt
|�D])\}}|D] \}}}	}
}t||�D]}|dkrb|t��vrbqU|�||�qUqIqCdSdS)Nr|�index�pair)ryr$rv�gettext_compactra�tocs�traverser�toctreer%rCrH�gettext_additional_targetsr&r r�values)
r1rzr��catalogr��noder@�entriesr{�tid�main�key_�mr2r2r3�	write_doc�s&����zI18nBuilder.write_docrPr0)r5r6r7r8�namerurrro�__annotations__�use_message_catalogrsr9r}rrr�r#r�r�documentr�rir2r2rcr3rpvs
 rp�SOURCE_DATE_EPOCHNcsNeZdZdededdf�fdd�Zdedefdd	�Zdedefd
d�Z�Z	S)�
LocalTimeZone�args�kwargsr<Ncst�j|i|��t|_dSr0)r`r4�tzdelta)r1r�r�rcr2r3r4�s
zLocalTimeZone.__init__�dtcCs|jSr0)r��r1r�r2r2r3�	utcoffset�szLocalTimeZone.utcoffsetcCstd�S�Nr)rr�r2r2r3�dst�r�zLocalTimeZone.dst)
r5r6r7rr4rrr�r�rir2r2rcr3r��sr��filepath�new_contentr<cCs�t�|�sdSzJt|dd��9}|��}|�d�}|�d�}|�d�}|�d�}|d|�|d|�kp>||d�||d�kWd�WS1sJwYWdSty[YdSw)NT�utf-8��encodingz"POT-Creation-Date:z"PO-Revision-Date:)r	�existsr�readr��
ValueError)r�r��oldpot�old_content�old_header_index�new_header_index�old_body_index�new_body_indexr2r2r3�should_write�s"




$���r�c	s|eZdZdZdZed�Zd�fdd�Zdee	fdd	�Z
dd
d�Zdd
ee	de	de	ddf�fdd�
Z
d�fdd�Z�ZS)�MessageCatalogBuilderz=
    Builds gettext-style message catalogs (.pot files).
    rVz'The message catalogs are in %(outdir)s.r<Ncs"t���|��|j�|�dSr0)r`rs�create_template_bridgerUr?rcr2r3rs�s
zMessageCatalogBuilder.initc	Csjt�}|jjD]+}t�|jj|�}t|�D]\}}}|D]}|�d�r0t	t�||��}|�
|�qqq|S)Nz.html)�setrv�templates_pathr	r_�app�srcdirr
�endswithr'rH)	r1�template_filesrS�
tmpl_abs_path�dirpath�dirs�files�fnrer2r2r3�_collect_templates�s

���z(MessageCatalogBuilder._collect_templatescCst|���}|��tjttd�|j�dd�t�td�t|��|j	j
j}t|td�dt|�|j
j�D]K}z4t|dd��}|��}Wd�n1sMwY||�D]\}}}t||�}	|jd	�||	�qVWq5ty�}
z	td
||
f�|
�d}
~
wwdS)Nzbuilding [%s]: T)�nonlztargets for %d template fileszreading templates... �purpler�r��sphinxz%s: %r)�listr��sort�logger�infor"rr��lenrU�environment�extract_translationsr!r��	verbosityrr�rBryrH�	Exceptionr)r1r�r��template�frfrG�methr@rA�excr2r2r3�_extract_from_template�s*
�
�
����z,MessageCatalogBuilder._extract_from_template�updater��summary�methodcs|��t��|||�dSr0)r�r`�build)r1r�r�r�rcr2r3r�szMessageCatalogBuilder.buildc	st���|jj|jj|jj|jj|jjt�	t
t��d�|jj
|jjd�}t|j��td�dt|j�|jjdd��D]J\}}tt�|jt�|���t|�|d<t|jd��d	|�}t�|j|d
�}t||�r�t|ddd
��
}|� |�Wd�n1swYq:dS)Nz%Y-%m-%d %H:%M%z)�version�	copyright�project�last_translator�
language_team�ctime�display_location�display_uuidzwriting message catalogs... �	darkgreencSs|dSr�r2)�textdomain__r2r2r3�<lambda>sz.MessageCatalogBuilder.finish.<locals>.<lambda>r=)rTz
message.pot_tz.pot�wr�r�)!r`�finishrvr�r�r��gettext_last_translator�gettext_language_teamr�
fromtimestamp�	timestamp�ltz�strftime�gettext_locationrwr!ry�itemsrr�r�r�r(r	r_rT�dirnamer�rRrhr�r�write)r1rf�
textdomainr��content�pofn�pofilercr2r3r�s4
�


�
���zMessageCatalogBuilder.finishrP)Nr�)r5r6r7r8r�r�epilogrsrr9r�r�rr�r�rir2r2rcr3r��s
$r�r�cCs~|�t�|�dddtth�|�ddd�|�ddd�|�ddd�|�d	gd�|�d
dd�|�dd
d�dddd�S)Nr�TrVr�rwF�gettext_auto_buildrar�r�zFULL NAME <EMAIL@ADDRESS>r�zLANGUAGE <LL@li.org>�builtin)r��parallel_read_safe�parallel_write_safe)�add_builderr��add_config_valueror9)r�r2r2r3�setup!s
�r�)Ur8�codecsr�collectionsrrrrr�osrr	r
r�typingrr
rrrrrrrrKr�docutilsr�docutils.nodesrr�rr�sphinx.applicationr�sphinx.buildersr�sphinx.domains.pythonr�
sphinx.errorsr�
sphinx.localer�sphinx.utilrr r!�sphinx.util.consoler"�sphinx.util.i18nr#r$�sphinx.util.nodesr%r&�sphinx.util.osutilr'r(r)�sphinx.util.tagsr*�sphinx.util.templater+�	getLoggerr5r�r,r;rBrRrjrpr�r��utcfromtimestampr��source_date_epoch�floatr�r�r9ror�r�r�r2r2r2r3�<module>sV
,

4�K