
    7 fl%                    Z   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	m
Z
mZ ddlZddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZmZmZ e	rddlmZ ddlmZ  ej         e!          Z" G d de          Z# G d de#          Z$ G d d          Z%d\dZ&i dddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBd@d$d$dCdDdEdFdGdHZ' ej(        dIdJ)                    e'          z            Z*ej+        j,        fd]dQZ-ddRd^dUZ,d_dZZ.d`d[Z/dS )az$Builder superclass for all builders.    )annotationsN)datetimetimezone)path)TYPE_CHECKINGCallable
NamedTuple)write_mo)read_po)SphinxError)__)logging)SEP
canon_pathrelpath)	Generator)BuildEnvironmentc                  .    e Zd ZU ded<   ded<   ded<   dS )LocaleFileInfoBasestrbase_dirdomaincharsetN)__name__
__module____qualname____annotations__     F/var/www/equiseq/venv/lib/python3.11/site-packages/sphinx/util/i18n.pyr   r      s+         MMMKKKLLLLLr   r   c                      e Zd Zedd            Zedd            Zedd            Zedd            ZddZdddZ	dS )CatalogInforeturnr   c                    | j         dz   S )N.por   selfs    r    po_filezCatalogInfo.po_file%       {U""r   c                    | j         dz   S )Nz.mor&   r'   s    r    mo_filezCatalogInfo.mo_file)   r*   r   c                @    t          j        | j        | j                  S N)r   joinr   r)   r'   s    r    po_pathzCatalogInfo.po_path-       y555r   c                @    t          j        | j        | j                  S r.   )r   r/   r   r,   r'   s    r    mo_pathzCatalogInfo.mo_path1   r1   r   boolc                    t          j        | j                   p3t          j        | j                  t          j        | j                  k     S r.   )r   existsr3   getmtimer0   r'   s    r    is_outdatedzCatalogInfo.is_outdated5   s@    DL))) FM$,''$-*E*EE	Gr   Flocale	use_fuzzyNonec                @   t          | j        | j                  5 }	 t          ||          }nQ# t          $ rD}t
                              t          d          | j        |           Y d }~d d d            d S d }~ww xY w	 d d d            n# 1 swxY w Y   t          | j        d          5 }	 t          |||           nE# t          $ r8}t
                              t          d          | j        |           Y d }~nd }~ww xY wd d d            d S # 1 swxY w Y   d S )N)encodingzreading error: %s, %swbzwriting error: %s, %s)
openr0   r   r   	Exceptionloggerwarningr   r3   r
   )r(   r9   r:   file_popoexcfile_mos          r    r
   zCatalogInfo.write_mo:   s   $,666 	'Wf--   r"9::DL#NNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 $,%% 	OO"i0000 O O Or"9::DL#NNNNNNNNO	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	Osr   B/B
A=.A8'B8A==BBB-D/C D
D.C>9D>DDDDN)r#   r   )r#   r4   )F)r9   r   r:   r4   r#   r;   )
r   r   r   propertyr)   r,   r0   r3   r8   r
   r   r   r    r"   r"   #   s        # # # X# # # # X# 6 6 6 X6 6 6 6 X6G G G G
O O O O O O Or   r"   c                  b    e Zd ZdZddZedd            Zedd            Zedd            ZdS )CatalogRepositoryz"A repository for message catalogs.basedirstr | os.PathLike[str]locale_dirs	list[str]languager   r=   r#   r;   c                >    || _         || _        || _        || _        d S r.   )rJ   _locale_dirsrN   r=   )r(   rJ   rL   rN   r=   s        r    __init__zCatalogRepository.__init__L   s#    '  r   Generator[str, None, None]c              #    K   | j         sd S | j        D ]x}t          j        | j        |          }t          j        || j         d          }t          j        |          r|V  Pt                              t          d          |           yd S )NLC_MESSAGESzlocale_dir %s does not exist)	rN   rP   r   r/   rJ   r6   rA   verboser   )r(   
locale_dirlocale_paths      r    rL   zCatalogRepository.locale_dirsS   s      } 	F+ 	P 	PJ4<<<J)J}MMK{;'' P     r"@AA;OOOO	P 	Pr   &Generator[tuple[str, str], None, None]c              #  n  K   | j         D ]}t          j        || j        d          }t	          j        |          D ]x\  }}}|D ],}|                    d          r|                    |           -|D ]@}|                    d          r)t          j        ||          }|t          ||          fV  Ayd S )NrT   .r%   )
rL   r   r/   rN   oswalk
startswithremoveendswithr   )	r(   rV   rJ   rootdirnames	filenamesdirnamefilenamefullpaths	            r    pofileszCatalogRepository.pofiles`   s      * 	B 	BJi
DM=IIG-/WW-=-= 	B 	B)h	' 1 1G))#.. 1 000 ) B BH((// B#'9T8#<#<%wx'A'AAAAAB	B	B 	Br   "Generator[CatalogInfo, None, None]c              #     K   | j         D ]D\  }}t          t          j        |          d                   }t	          ||| j                  V  Ed S )Nr   )rf   r   r   splitextr"   r=   )r(   rJ   rd   r   s       r    catalogszCatalogRepository.catalogso   s_      !% 	> 	>GXh 7 7 :;;Fgvt}======	> 	>r   N)
rJ   rK   rL   rM   rN   r   r=   r   r#   r;   )r#   rR   )r#   rX   )r#   rg   )	r   r   r   __doc__rQ   rG   rL   rf   rj   r   r   r    rI   rI   I   s        ,,! ! ! ! 
P 
P 
P X
P B B B XB > > > X> > >r   rI   docnamer   
compaction
bool | strr#   c                z    t          |t                    r|S |r!|                     t          d          d         S | S )z'Convert docname to domain for catalogs.   r   )
isinstancer   splitr   )rl   rm   s     r    docname_to_domainrs   v   s@    *c""  }}S!$$Q''r   z%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)|dater   formatr9   	formatterr   c                *   t          | d          st          j        j        }	  || ||          S # t          t          j        j        f$ r  || |d          cY S t          $ r- t          	                    t          d          |           |cY S w xY w)Ntzinfo)r9   enz[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AttributeErrorrA   rB   r   )r   r   r9   r   s       r    babel_format_dater      s     4"" ,K+	yvf5555
56 4 4 4yvd333333   r B C CDJ	L 	L 	Ls   1 )B3BB)r   datetime | NonerN   c          	        |ut          j        d          }|.t          j        t	          |          t
          j                  }n1t          j        t
          j                                                  }g }t          
                    |           }|D ]}|t          v rt                              |d          }|dk    rt          j        j        }n)|dk    rt          j        j        }nt          j        j        }|                    t'          ||||                     |                    |           d                    |          S )NSOURCE_DATE_EPOCH)tz r   r   )r9   r   )r[   getenvr   fromtimestampfloatr   utcnow
astimezonedate_format_rerr   date_format_mappingsgetr   r   r   format_timeformat_datetimeappendr   r/   )	r   r   rN   source_date_epochresulttokenstokenbabel_formatfunctions	            r    r   r      sF    | I&9::()%0A*B*Bx|TTTDD<8<000;;==DF!!&))F ! !(((/33E2>>L
 }} ;2$ ;2 ;6MM+D,x6>@ @ @ A A A A MM%    776??r   rd   rK   envr   c                   t          j        |           \  }}t          j        |          }t          j        |j                  }	 |j        j                            |||o	|t          z   t          j        |          |o	|t          z   |j        j	                  S # t          $ r}d|}t          |          |d }~ww xY w)N)r`   extr   basenamedocpathrN   z"Invalid figure_language_filename: )r   ri   rc   rl   configfigure_language_filenamer   r   r   rN   KeyErrorr   )rd   r   r`   r   rc   r   rE   msgs           r    get_image_filename_for_languager      s     h''ID#l4  Gl3;''G(z299*Ws]]4((-#Z( : 
 
 	
  ( ( (:3::#C'(s   AB 
B?%B::B?c                    t          | |          }|                    |          \  }}t          j        |          r|S | S r.   )r   
relfn2pathr   r6   )rd   r   
translated_abspaths        r    search_image_for_languager      sC    03??J
++JAw{7 r   )rl   r   rm   rn   r#   r   )
r   r   r   r   r9   r   r   r   r#   r   )r   r   r   r   rN   r   r#   r   )rd   rK   r   r   r#   r   )rd   r   r   r   r#   r   )0rk   
__future__r   r[   rer   r   r   typingr   r   r	   babel.datesr   babel.messages.mofiler
   babel.messages.pofiler   sphinx.errorsr   sphinx.localer   sphinx.utilr   sphinx.util.osutilr   r   r   collections.abcr   sphinx.environmentr   	getLoggerr   rA   r   r"   rI   rs   r   compiler/   r   r   r   r   r   r   r   r   r    <module>r      s   * * " " " " " " 				 				 ' ' ' ' ' ' ' '       6 6 6 6 6 6 6 6 6 6     * * * * * * ) ) ) ) ) ) % % % % % %             7 7 7 7 7 7 7 7 7 7 4))))))333333 
	8	$	$       #O #O #O #O #O$ #O #O #OL*> *> *> *> *> *> *> *>Z   &5&6& 	5& 	6	&
 	8& 
3& 	4& 
3& 	4& 
3& 	4& 
3& 	5& 
3& 	4&  
3!&" 	4#&$   K& & & P FSXX.B%C%CCDD -2K,C    & -1! ! ! ! ! !H( ( ( (*     r   