
    -Ph                       U d Z ddlmZ ddlZddlZddlmZmZ ddlm	Z	 ddl
mZ ddlmZ erddlZddlmZmZ dd	l
mZ  e	ed
          Z G d d          Zi Zded<   	 	 d0d1dZ	 	 d2d3dZ	 d0d4dZ	 d0d5d!Zd6d7d#Z ed          Z edd$          Z ed%           ed&           ed'           ed(           ed)           ed*           ed+           ed,           ed-           ed.          d/
ZdS )8zLocale utilities.    )annotationsN)NullTranslationstranslation)Path)TYPE_CHECKING)package_dir)CallableIterable)Anylocalec                      e Zd ZdZdZd+d	Zd,d
Zd-dZd.dZd/dZ	d0dZ
d1dZd,dZd2dZd2dZd2dZd2dZd3dZd3dZd4dZd5d!Zd6d#Zd7d%Zd4d&Zd8d)Zd*S )9_TranslationProxyzThe proxy implementation attempts to be as complete as possible, so that
    the lazy objects should mostly work as expected, for example for sorting.
    
_catalogue
_namespace_message	cataloguestr	namespacemessagereturnNonec                0    || _         || _        || _        d S Nr   )selfr   r   r   s       V/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sphinx/locale/__init__.py__init__z_TranslationProxy.__init__   s    ##    c                    	 t           | j        | j        f                             | j                  S # t
          $ r
 | j        cY S w xY wr   )translatorsr   r   gettextr   KeyErrorr   s    r   __str__z_TranslationProxy.__str__!   sT    	!t?@HHWWW 	! 	! 	!=   	!s   03 AA	list[str]c                *    t          t                    S r   )dirr   r#   s    r   __dir__z_TranslationProxy.__dir__(   s    3xxr   namer   c                F    t          |                                 |          S r   )getattrr$   )r   r)   s     r   __getattr__z_TranslationProxy.__getattr__+   s    t||~~t,,,r   tuple[str, str, str]c                *    | j         | j        | j        fS r   r   r#   s    r   __getstate__z_TranslationProxy.__getstate__.   s    >>r   tupc                0    |\  | _         | _        | _        d S r   r   )r   r0   s     r   __setstate__z_TranslationProxy.__setstate__1   s    :=7$---r   c                B    t          | j        | j        | j                  S r   )r   r   r   r   r#   s    r   __copy__z_TranslationProxy.__copy__4   s     $/4=QQQr   c           	         	 d|                                  S # t          $ r+ | j        j        d| j         d| j         d| j         dz   cY S w xY w)Ni(z, ))r$   	Exception	__class____name__r   r   r   r#   s    r   __repr__z_TranslationProxy.__repr__7   sy    	)t||~~))) 	 	 	'LdoLLLLDMLLLM  	s    2AAotherc                0    |                                  |z   S r   r$   r   r=   s     r   __add__z_TranslationProxy.__add__@       ||~~%%r   c                0    ||                                  z   S r   r?   r@   s     r   __radd__z_TranslationProxy.__radd__C       t||~~%%r   c                0    |                                  |z  S r   r?   r@   s     r   __mod__z_TranslationProxy.__mod__F   rB   r   c                0    ||                                  z  S r   r?   r@   s     r   __rmod__z_TranslationProxy.__rmod__I   rE   r   c                0    |                                  |z  S r   r?   r@   s     r   __mul__z_TranslationProxy.__mul__L   rB   r   c                0    ||                                  z  S r   r?   r@   s     r   __rmul__z_TranslationProxy.__rmul__O   rE   r   intc                D    t          |                                           S r   )hashr$   r#   s    r   __hash__z_TranslationProxy.__hash__R   s    DLLNN###r   objectboolc                2    |                                  |k    S r   r?   r@   s     r   __eq__z_TranslationProxy.__eq__U   s    ||~~&&r   stringc                2    |                                  |k     S r   r?   )r   rV   s     r   __lt__z_TranslationProxy.__lt__X   s    ||~~&&r   charc                .    ||                                  v S r   r?   )r   rY   s     r   __contains__z_TranslationProxy.__contains__[   s    t||~~%%r   c                D    t          |                                           S r   )lenr$   r#   s    r   __len__z_TranslationProxy.__len__^   s    4<<>>"""r   indexint | slicec                6    |                                  |         S r   r?   )r   r_   s     r   __getitem__z_TranslationProxy.__getitem__a   s    ||~~e$$r   N)r   r   r   r   r   r   r   r   )r   r   )r   r%   )r)   r   r   r   )r   r-   )r0   r-   r   r   )r   r   )r=   r   r   r   )r=   r   r   r   )r   rN   )r=   rR   r   rS   )rV   r   r   rS   )rY   r   r   rS   )r_   r`   r   r   )r;   
__module____qualname____doc__	__slots__r   r$   r(   r,   r/   r2   r4   r<   rA   rD   rG   rI   rK   rM   rQ   rU   rX   r[   r^   rb    r   r   r   r      s         7I       
! ! ! !   - - - -? ? ? ?> > > >R R R R   & & & && & & && & & && & & && & & && & & &$ $ $ $' ' ' '' ' ' '& & & &# # # #% % % % % %r   r   z'dict[tuple[str, str], NullTranslations]r    sphinxgenerallocale_dirs'Iterable[str | os.PathLike[str] | None]language
str | Nonecatalogr   r   r   tuple[NullTranslations, bool]c                8   t                               ||f          }|j        t          u rd}|r|g}nd}| D ]?}	 t	          |||          }||}n|                    |           0# t          $ r Y <w xY w|d}nt                      }d}|t           ||f<   ||fS )a  Look for message catalogs in `locale_dirs` and *ensure* that there is at
    least a NullTranslations catalog set in `translators`. If called multiple
    times or if several ``.mo`` files are found, their contents are merged
    together (thus making ``init`` reentrant).
    N)	localedir	languagesTF)r    getr:   r   r   add_fallbackr9   )	rj   rl   rn   r   
translatorrr   dir_transhas_translations	            r   initry   h   s     )W!566J///
 '/j			  	 		49MMME!"

''... 	 	 	D	 %''
&0K	7"#&&s   ,A''
A43A4
locale_dirstr | os.PathLike[str] | Nonec                    | t           } t          j        dk    rd}n5	 t          j        t          j                  \  }}n# t          $ r d}Y nw xY wt          | g||d          S )z>Initialize locale for console.

    .. versionadded:: 1.8
    Nwin32console)_LOCALE_DIRsysplatformr   	getlocaleLC_MESSAGESAttributeErrorry   )rz   rn   rl   _s       r   init_consoler      s}      

|w	 *6+=>>KHaa 	 	 	HHH	 h;;;s   !A   AAr   c                T    t                               || ft                                S r   )r    rs   r   rn   r   s     r   get_translatorr      s$     ??Iw/1A1C1CDDDr   rS   c                    || ft           v S r   )r    r   s     r   is_translator_registeredr      s     w;..r   Callable[[str], str]c                     d fd}|S )a8  Get a translation function based on the *catalog* and *namespace*.

    The extension can use this API to translate the messages on the
    extension::

        from pathlib import Path
        from sphinx.locale import get_translation

        MESSAGE_CATALOG_NAME = 'myextension'  # name of *.pot, *.po and *.mo files
        _ = get_translation(MESSAGE_CATALOG_NAME)
        text = _('Hello Sphinx!')


        def setup(app):
            package_dir = Path(__file__).resolve().parent
            locale_dir = package_dir / 'locales'
            app.add_message_catalog(MESSAGE_CATALOG_NAME, locale_dir)

    With this code, sphinx searches a message catalog from
    ``${package_dir}/locales/${language}/LC_MESSAGES/myextension.mo``.
    The :confval:`language` is used for the searching.

    .. versionadded:: 1.8
    r   r   r   c                    t                    st          |           S t                    }|                    |           S r   )r   r   r   r!   )r   ru   rn   r   s     r   r!   z get_translation.<locals>.gettext   sJ    ';; 	/$WiAAA';;J%%g...r   )r   r   r   r   rg   )rn   r   r!   s   `` r   get_translationr      s.    4/ / / / / / / Nr   r~   	AttentionCautionDangerErrorHint	ImportantNotezSee alsoTipWarning)
	attentioncautiondangererrorhint	importantnoteseealsotipwarning)rh   ri   )
rj   rk   rl   rm   rn   r   r   r   r   ro   )Nrh   )rz   r{   rn   r   r   ro   )rn   r   r   r   r   r   )rn   r   r   r   r   rS   )ri   )rn   r   r   r   r   r   )re   
__future__r   r   r   r!   r   r   pathlibr   typingr   rh   r   oscollections.abcr	   r
   r   r   r   r    __annotations__ry   r   r   r   r   r   __admonitionlabelsrg   r   r   <module>r      sU      " " " " " "  



 1 1 1 1 1 1 1 1                         III22222222d;))M% M% M% M% M% M% M% M%` 8: 9 9 9 9 	(' (' (' (' ('X 15< < < < <. /8E E E E E /8/ / / / /" " " " "P OH _Xy))
 ;q||akkQwZZAfII;AfIIq}}1U88q||    r   