
    Ki                        U d Z ddlmZ dZddlmZ ddlmZ dZer*ddl	Z	ddl
mZmZmZmZ dd	lmZ  G d
 de      Z ed      ZnddlmZ  G d d      Z e       Zded<   y)zL
This package contains modules for language-dependent features of Docutils.
    )annotationsreStructuredText)import_module)normalize_language_tagFN)NoReturnProtocolTypeVaroverload)Reporterc                  6    e Zd ZU ded<   ded<   ded<   ded<   y)	LanguageModulestr__name__zdict[str, str]labelsbibliographic_fieldsz	list[str]author_separatorsN)r   
__module____qualname____annotations__     g/home/jay/workspace/scripts/.codegraph-venv/lib/python3.12/site-packages/docutils/languages/__init__.pyr   r      s    ,,$$r   r   LanguageModuleT)r
   c                  n    e Zd ZdZdZdZdZddZd	 ddZe	dd       Z
e	dd	       Z
dd
Z
d	 ddZd Zy)LanguageImportera  Import language modules.

    When called with a BCP 47 language tag, instances return a module
    with localisations from `docutils.languages` or the PYTHONPATH.

    If there is no matching module, warn (if a `reporter` is passed)
    and fall back to English.
    )zdocutils.languages. zHLanguage "%s" not supported: Docutils-generated text will be in English.enc                    i | _         y N)cache)selfs    r   __init__zLanguageImporter.__init__6   s	    13
r   Nc                    d}| j                   D ]$  }	 t        ||z         }| j                  |        |S  |S # t        t        f$ r6 |r|r|j                  | d       n|r|j                  d||z    d       Y mw xY w)z/Try loading module `name` from `self.packages`.Nz) is no complete Docutils language module.zModule "z" not found.)packagesr   check_contentImportErrorAttributeErrorinfo)r!   namereportermodulepackages        r   import_from_packagesz%LanguageImporter.import_from_packages9   s     }} 	G	&w~6""6* 	   0 MMVH -> #> ?MMHWT\N,"GHs   8AA=<A=c                     y r   r   r!   r+   s     r   r%   zLanguageImporter.check_contentK       r   c                     y r   r   r/   s     r   r%   zLanguageImporter.check_contentO   r0   r   c                    t        |j                  t              r4t        |j                  t              rt        |j                  t
              st        y)z+Check if we got a Docutils language module.N)
isinstancer   dictr   r   listr&   r/   s     r   r%   zLanguageImporter.check_contentS   s=     v}}d+666=633T: ;r   c                   	 | j                   |   S # t        $ r Y nw xY wt        |      D ]*  }|j                  dd      }| j	                  ||      }|* nH |r|j                  | j                  |z         | j                  r| j	                  | j                        }|r|dk7  r|j                  d d| d       | j                   |<   |S )N-_r   zUsing z for language "z".)	r    KeyErrorr   replacer-   warningwarn_msgfallbackr(   )r!   language_coder*   tagr+   s        r   __call__zLanguageImporter.__call__\   s    	::m,, 		)-8 		BC++c3'C..sH=F!			B   !>?}}224==A$.MMF6(/-KL$*

=!s    	c                    | S r   r   )clsr)   s     r   __class_getitem__z"LanguageImporter.__class_getitem__q   s    
r   )returnNoner   )r)   r   r*   r   rD   r   )r+   r   rD   rE   )r+   ztypes.ModuleTyperD   r   )r+   z!LanguageModule | types.ModuleTyperD   rE   )r>   r   r*   r   rD   r   )r   r   r   __doc__r$   r<   r=   r"   r-   r
   r%   r@   rC   r   r   r   r   r   '   sk     +H>HH4"1$    %*r   r   z LanguageImporter[LanguageModule]get_language)rF   
__future__r   __docformat__	importlibr   docutils.utilsr   TYPE_CHECKINGtypestypingr   r   r	   r
   r   r   r   docutils.utils._typingr   rG   r   r   r   r   <module>rP      sh    #" # 1<<'% % /0O/K K\ 2B1C. Cr   