
    P&iD'                        d Z ddl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
mZmZ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 ddlmZm Z m!Z! erddl"m#Z#  ej$        e%          Z& G d de          Z' G d de'          Z( G d d          Z)de*dee+e*f         de*fdZ,i dddddddd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j.        dFdG/                    e-          z            Z0ej1        j2        fdHedIe*dJe*dKe	de*f
dLZ3	 dTdIe*dHee         dMee*         de*fdNZ2dOe*dPdQde*fdRZ4dOe*dPdQde*fdSZ5dS )Uz$Builder superclass for all builders.    N)datetimetimezone)path)TYPE_CHECKINGCallable	GeneratorList
NamedTupleOptionalTupleUnion)write_mo)read_po)RemovedInSphinx70Warning)SphinxError)__)logging)SEP
canon_pathrelpath)BuildEnvironmentc                   .    e Zd ZU eed<   eed<   eed<   dS )LocaleFileInfoBasebase_dirdomaincharsetN)__name__
__module____qualname__str__annotations__     ]/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/sphinx/util/i18n.pyr   r      s+         MMMKKKLLLLLr#   r   c                       e Zd Zedefd            Zedefd            Zedefd            Zedefd            Zde	fdZ
dded	e	dd
fdZd
S )CatalogInforeturnc                     | 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 r2   )r   r3   r   r0   r+   s    r$   mo_pathzCatalogInfo.mo_path/   r5   r#   c                     t          j        | j                   p3t          j        | j                  t          j        | j                  k     S r2   )r   existsr7   getmtimer4   r+   s    r$   is_outdatedzCatalogInfo.is_outdated3   s@    DL))) FM$,''$-*E*EE	Gr#   Flocale	use_fuzzyNc                 @   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)
openr4   r   r   	Exceptionloggerwarningr   r7   r   )r,   r<   r=   file_popoexcfile_mos          r$   r   zCatalogInfo.write_mo8   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)F)r   r   r   propertyr    r-   r0   r4   r7   boolr;   r   r"   r#   r$   r&   r&   !   s       # # # # X# # # # # X# 6 6 6 6 X6 6 6 6 6 X6GT G G G G
O Os Ot O O O O O O Or#   r&   c            
           e Zd ZdZdedee         dededdf
dZedeeddf         fd	            Z	edee
eef         ddf         fd
            Zedeeddf         fd            ZdS )CatalogRepositoryz"A repository for message catalogs.basedirlocale_dirslanguager?   r'   Nc                 >    || _         || _        || _        || _        d S r2   )rM   _locale_dirsrO   r?   )r,   rM   rN   rO   r?   s        r$   __init__zCatalogRepository.__init__J   s#    '  r#   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 exists)	rO   rQ   r   r3   rM   r9   rC   verboser   )r,   
locale_dirlocale_paths      r$   rN   zCatalogRepository.locale_dirsQ   s      } 	F+ 	Q 	QJ4<<<J)J}MMK{;'' Q     r"ABBKPPPP	Q 	Qr#   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)   )
rN   r   r3   rO   oswalk
startswithremoveendswithr   )	r,   rV   rM   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#   c              #      K   | j         D ]D\  }}t          t          j        |          d                   }t	          ||| j                  V  Ed S )Nr   )re   r   r   splitextr&   r?   )r,   rM   rc   r   s       r$   catalogszCatalogRepository.catalogsm   s_      !% 	> 	>GXh 7 7 :;;Fgvt}======	> 	>r#   )r   r   r   __doc__r    r	   rR   rI   r   rN   r   re   r&   rh   r"   r#   r$   rL   rL   G   s       ,,! !$s) !!*-!26! ! ! ! 
QYsD$7 
Q 
Q 
Q X
Q B5c?D$#>? B B B XB >)Kt$;< > > > X> > >r#   rL   docname
compactionr'   c                 z    t          |t                    r|S |r!|                     t          d          d         S | S )z'Convert docname to domain for catalogs.   r   )
isinstancer    splitr   )rj   rk   s     r$   docname_to_domainrp   t   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)|dateformatr<   	formatterc                 f   |t          j        dt                     d}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)Nz=The locale argument for babel_format_date() becomes required.entzinfo)r<   z[Invalid date format. Quote the string by single quote if you want to output it directly: %s)warningswarnr   hasattrbabeldatesformat_date
ValueErrorcoreUnknownLocaleErrorAttributeErrorrC   rD   r   )r   r   r<   r   s       r$   babel_format_dater      s    ~U.	0 	0 	0 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   A )B0:3B0/B0rO   c           	         |ht          j        d          }|"t          j        t	          |                    }n0t          j        t          j                                                  }|t          j
        dt                     d}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_EPOCHz9The language argument for format_date() becomes required.r    r   r   )r<   r   )rZ   getenvr   utcfromtimestampfloatnowr   utc
astimezoner   r   r   date_format_rero   date_format_mappingsgetr   r   r   format_timeformat_datetimeappendr   r3   )	r   r   rO   source_date_epochresulttokenstokenbabel_formatfunctions	            r$   r   r      sa    | I&9::(,U3D-E-EFFDD<--88::DQ.	0 	0 	0F!!&))F ! !(((/33E2>>L
 }} ;2$ ;2 ;6MM+D,x6>@ @ @ A A A A MM%    776??r#   rc   envr   c                 P   |j         j        }i }t          j        |           \  |d<   |d<   t          j        |d                   }|r.|                    t          j                  s|t          j        z  }t          j        |j                  }|r.|                    t          j                  s|t          j        z  }||d<   t          j        |d                   |d<   ||d<   |j         j	        |d<   	  |j
        di |S # t          $ r}t          d|z            |d }~ww xY w)	Nr_   extr   basenamedocpathrO   z$Invalid figure_language_filename: %rr"   )configfigure_language_filenamer   rg   rb   r^   seprj   r   rO   r   KeyErrorr   )rc   r   filename_formatrv   rb   r   rG   s          r$   get_image_filename_for_languager      s6   j9O
A-11AfIqxl1V9%%G w''11 48l3;''G w''11 48AfIM!F),,AjMAiLJ'AjMQ%%***** Q Q Q@3FGGSPQs   6D 
D%D  D%c                     t          | |          }|                    |          \  }}t          j        |          r|S | S r2   )r   
relfn2pathr   r9   )rc   r   
translated_abspaths        r$   search_image_for_languager      sC    03??J
++JAw{7 r#   )NN)6ri   rZ   rer   r   r   r   typingr   r   r   r	   r
   r   r   r   babel.datesr   babel.messages.mofiler   babel.messages.pofiler   sphinx.deprecationr   sphinx.errorsr   sphinx.localer   sphinx.utilr   sphinx.util.osutilr   r   r   sphinx.environmentr   	getLoggerr   rC   r   r&   rL   r    rJ   rp   r   compiler3   r   r   r   r   r   r   r"   r#   r$   <module>r      s6   * * 				 				  ' ' ' ' ' ' ' '       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _     * * * * * * ) ) ) ) ) ) 7 7 7 7 7 7 % % % % % %             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s dCi0@ S    &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 H c 3 !)HK   0 MQ& &&)&<DSM&& & & &RQc Q8J Qs Q Q Q Q( 2D       r#   