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: //lib/python3/dist-packages/sphinx/util/__pycache__/i18n.cpython-310.pyc
o

�$�a�&�@s0dZddlZddlZddlmZmZddlmZddlmZmZm	Z	m
Z
mZmZm
Z
mZddlZddlmZddlmZddlmZdd	lmZdd
lmZddlmZmZmZer`ddlm Z e�!e"�Z#Gd
d�de�Z$Gdd�de$�Z%Gdd�d�Z&de'dee(e'fde'fdd�Z)idd�dd�dd�dd�d d!�d"d#�d$d%�d&d'�d(d)�d*d+�d,d-�d.d/�d0d1�d2d3�d4d5�d6d7�d8d9�d:d;d<d=d>d?d=d!d!d@dAdBdCdDdE��Z*e�+dFdG�,e*��Z-ej.j/fdHedIe'dJee'dKede'f
dLdM�Z0dXdIe'dHedNee'de'fdOdP�Z/dQe'dRdSde'fdTdU�Z1dQe'dRdSde'fdVdW�Z2dS)Yz�
    sphinx.util.i18n
    ~~~~~~~~~~~~~~~~

    Builder superclass for all builders.

    :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
�N)�datetime�timezone)�path)�
TYPE_CHECKING�Callable�	Generator�List�
NamedTuple�Optional�Tuple�Union)�write_mo)�read_po)�SphinxError)�__)�logging)�SEP�
canon_path�relpath)�BuildEnvironmentc@s&eZdZUeed<eed<eed<dS)�LocaleFileInfoBase�base_dir�domain�charsetN)�__name__�
__module__�__qualname__�str�__annotations__�rr�2/usr/lib/python3/dist-packages/sphinx/util/i18n.pyr!s
rc@szeZdZedefdd��Zedefdd��Zedefdd��Zedefdd	��Zde	fd
d�Z
dd
ede	ddfdd�ZdS)�CatalogInfo�returncC�
|jdS)N�.po�r��selfrrr �po_file)�
zCatalogInfo.po_filecCr#)Nz.mor%r&rrr �mo_file-r)zCatalogInfo.mo_filecC�t�|j|j�S�N)r�joinrr(r&rrr �po_path1�zCatalogInfo.po_pathcCr+r,)rr-rr*r&rrr �mo_path5r/zCatalogInfo.mo_pathcCs&t�|j�pt�|j�t�|j�kSr,)r�existsr0�getmtimer.r&rrr �is_outdated9s�zCatalogInfo.is_outdatedF�locale�	use_fuzzyNcCst|j|jd��3}zt||�}Wn#ty3}zt�td�|j|�WYd}~Wd�dSd}~wwWd�n1s>wYt|jd��6}zt	|||�Wntyn}zt�td�|j|�WYd}~n
d}~wwWd�dSWd�dS1s�wYdS)N)�encodingzreading error: %s, %s�wbzwriting error: %s, %s)
�openr.rr�	Exception�logger�warningrr0r
)r'r4r5�file_po�po�exc�file_morrr r
>s,
���� ����"�zCatalogInfo.write_mo)F)rrr�propertyrr(r*r.r0�boolr3r
rrrr r!'sr!c
@s�eZdZdZdedeedededdf
dd	�Zedeeddffd
d��Z	edee
eefddffdd
��Zedeeddffdd��Z
dS)�CatalogRepositoryz"A repository for message catalogs.�basedir�locale_dirs�languager6r"NcCs||_||_||_||_dSr,)rC�_locale_dirsrEr6)r'rCrDrEr6rrr �__init__Ps
zCatalogRepository.__init__ccs\�|jsdS|jD]"}t�|j|�}t�||jd�}t�|�r#|Vq	t�td�|�q	dS)N�LC_MESSAGESzlocale_dir %s does not exists)	rErFrr-rCr1r:�verboser)r'�
locale_dir�locale_pathrrr rDWs�

�zCatalogRepository.locale_dirsc	cs��|jD]<}t�||jd�}t�|�D],\}}}|D]}|�d�r&|�|�q|D]}|�d�r>t�||�}|t	||�fVq)qqdS)NrH�.r$)
rDrr-rE�os�walk�
startswith�remove�endswithr)	r'rJrC�root�dirnames�	filenames�dirname�filename�fullpathrrr �pofilesds �


�
����zCatalogRepository.pofilesccs8�|jD]\}}tt�|�d�}t|||j�VqdS)Nr)rXrr�splitextr!r6)r'rCrVrrrr �catalogsss
��zCatalogRepository.catalogs)rrr�__doc__rrrGr@rrDrrXr!rZrrrr rBMs��
�"rB�docname�
compactionr"cCs&t|t�r|S|r|�td�dS|S)z'Convert docname to domain for catalogs.�r)�
isinstancer�splitr)r\r]rrr �docname_to_domainzs

raz%a�EEEz%A�EEEEz%b�MMMz%B�MMMMz%c�mediumz%-d�dz%d�ddz%-H�Hz%H�HHz%-I�hz%I�hhz%-j�Dz%j�DDDz%-m�Mz%m�MMz%-M�mz%M�mm�a�s�ss�WW�e�W�YY�yyyy�zzz�ZZZ�%)z%pz%-Sz%Sz%Uz%wz%-Wz%W�%x�%Xz%yz%Yz%Zz%zz%%z(%s)�|�date�formatr4�	formatterc	Cs||durd}t|d�stjj}z||||d�WSttjjfy+|||dd�YSty=t�	t
d�|�|YSw)N�en�tzinfo)r4z[Invalid date format. Quote the string by single quote if you want to output it directly: %s)�hasattr�babel�dates�format_date�
ValueError�core�UnknownLocaleError�AttributeErrorr:r;r)r�r�r4r�rrr �babel_format_date�s

��r�rEc		Cs�|durt�d�}|durt�t|��}nt�tj���}g}t	�
|�}|D]3}|tvrTt�|d�}|dkr;t
jj}n
|dkrDt
jj}nt
jj}|�t||||d��q&|�|�q&d�|�S)N�SOURCE_DATE_EPOCH�r~r)r4r�)rM�getenvr�utcfromtimestamp�float�nowr�utc�
astimezone�date_format_rer`�date_format_mappings�getr�r�r��format_time�format_datetime�appendr�r-)	r�r�rE�source_date_epoch�result�tokens�token�babel_format�functionrrr r��s(




�
r�rV�envrc
Cs�|jjs|S|jj}t�}t�|�\|d<|d<t�|d�}|r,|�tj�s,|tj7}t�|j	�}|r?|�tj�s?|tj7}||d<t�
|d�|d<||d<|jj|d<z	|jdi|��WStyr}zt
d|�|�d}~ww)	NrR�extr�basename�docpathrEz$Invalid figure_language_filename: %rr)�configrE�figure_language_filename�dictrrYrUrQ�sepr\r�r��KeyErrorr)rVr��filename_formatrgrUr�r>rrr �get_image_filename_for_language�s*

��r�cCs6|jjs|St||�}|�|�\}}t�|�r|S|Sr,)r�rEr��
relfn2pathrr1)rVr��
translated�_�abspathrrr �search_image_for_language�s

r�)NN)3r[rM�rerrr�typingrrrrr	r
rr�babel.datesr��babel.messages.mofiler
�babel.messages.pofiler�
sphinx.errorsr�
sphinx.localer�sphinx.utilr�sphinx.util.osutilrrr�sphinx.environmentr�	getLoggerrr:rr!rBrrArar��compiler-r�r�r�r�r�r�rrrr �<module>s�
(
&-��������	�
���
������(��
� "