
    O&i,                     D   d Z ddlmZ ddlmZmZ ddlmZmZmZ ddl	m
Z
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mZmZ ddlmZ dd	lmZ dd
lmZ ddlm Z 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/ ddl0m1Z1 ddl2m3Z3m4Z4 ddl5m6Z6m7Z7 ddl8m9Z9m:Z:m;Z; ddl<m=Z= ddl>m?Z?  e-j@        eA          ZB G d d          ZC G d d          ZD G d d          ZE G d de?          ZF G d  d!e=          ZG G d" d#e%          ZH e            ZI ejJ        eI           ejK        eI          z
  ZL e
d$          ZMeM eNeM          ZI ed          ZL G d& d'e          ZO eO            ZPd(eQd)eQd*eRfd+ZS G d, d-eH          ZTd.e#d*eeQef         fd/ZUd%S )0z The MessageCatalogBuilder class.    )open)OrderedDictdefaultdict)datetime	timedeltatzinfo)getenvpathwalk)time)
AnyDefaultDictDict	GeneratorIterableListOptionalSetTupleUnion)uuid4)nodes)Element)addnodespackage_dir)Sphinx)Builder)pairindextypes)
ThemeError)__)loggingsplit_index_msgstatus_iterator)bold)CatalogInfodocname_to_domain)extract_messagestraverse_translatable_index)
canon_path	ensuredirrelpath)Tags)SphinxRendererc                   N    e Zd ZdZdedeeeef                  dee         fdZdS )Messagez!An entry of translatable message.text	locationsuuidsc                 0    || _         || _        || _        d S N)r0   r1   r2   )selfr0   r1   r2   s       d/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/sphinx/builders/gettext.py__init__zMessage.__init__"   s    	"


    N)	__name__
__module____qualname____doc__strr   r   intr7    r8   r6   r/   r/       sU        ++S T%S/-B 4PS9      r8   r/   c                   \    e Zd ZdZd
dZdedeedf         ddfdZde	e
ddf         fd	ZdS )Catalogz!Catalog of translatable messages.returnNc                 :    g | _         t                      | _        d S r4   )messagesr   metadatar5   s    r6   r7   zCatalog.__init__+   s    #% @K}}r8   msgorigin	MsgOriginc                     t          |d          sd S || j        vr$| j                            |           g | j        |<   |j        }|d}| j        |                             |j        ||j        f           d S )Nuid)hasattrrE   rD   appendlinesourcerK   )r5   rG   rH   rO   s       r6   addzCatalog.add1   s    vu%% 	 Fdm##M  %%%!#DM#{<Dc!!6=$
"CDDDDDr8   c              #      K   | j         D ]P}t          d | j        |         D                       }d | j        |         D             }t          |||          V  Qd S )Nc                     h | ]
\  }}}||fS r?   r?   .0rP   rO   uuids       r6   	<setcomp>z#Catalog.__iter__.<locals>.<setcomp>@   s/      :  :  :3E64  :  :  :r8   c                     g | ]\  }}}|	S r?   r?   rT   s       r6   
<listcomp>z$Catalog.__iter__.<locals>.<listcomp>B   s    KKK0fdDTKKKr8   )rD   sortedrE   r/   )r5   message	positionsr2   s       r6   __iter__zCatalog.__iter__>   s      } 	5 	5G  :  :"&-"8 :  :  : ; ;IKKDM'4JKKKE'9e444444		5 	5r8   rB   N)r9   r:   r;   r<   r7   r=   r   r   rQ   r   r/   r]   r?   r8   r6   rA   rA   (   s        ++M M M MEs EE';*>$? ED E E E E5)GT4$78 5 5 5 5 5 5r8   rA   c                   &    e Zd ZdZdededdfdZdS )rI   z3
    Origin holder for Catalog message origin.
    rP   rO   rB   Nc                 R    || _         || _        t                      j        | _        d S r4   )rP   rO   r   hexrK   )r5   rP   rO   s      r6   r7   zMsgOrigin.__init__K   s!    	77;r8   )r9   r:   r;   r<   r=   r>   r7   r?   r8   r6   rI   rI   F   sG         s # $      r8   rI   c                   p     e Zd Z	 d	dee         dee         ddf fdZdedeeef         def fdZ xZ	S )
GettextRendererNtemplate_pathoutdirrB   c                     || _         |t          j        t          dd          }t	                                          |           dt          dt          fd}|| j        j        d<   || j        j        d<   d S )N	templatesgettextsrB   c                     |                      dd          } |                      dd          } |                      dd          S )N\z\\"z\"
z\n"
")replace)ri   s    r6   escapez(GettextRenderer.__init__.<locals>.escapeZ   s<    		$&&A		#u%%A99T9---r8   ero   )	re   r
   joinr   superr7   r=   envfilters)r5   rd   re   ro   	__class__s       r6   r7   zGettextRenderer.__init__R   s       Ik;	JJM'''	.c 	.c 	. 	. 	. 	. !'%+"""r8   filenamecontextc                 |     dt           dt           f fd}||d<   t                                          ||          S )Nri   rB   c                 H    t          t          | j                            S r4   )r)   r+   re   )ri   r5   s    r6   _relpathz(GettextRenderer.render.<locals>._relpathd   s    ga55666r8   r+   )r=   rr   render)r5   rv   rw   rz   ru   s   `   r6   r{   zGettextRenderer.renderc   sT    	7 	7 	7 	7 	7 	7 	7 	7 &	ww~~h000r8   )NN)
r9   r:   r;   r   r=   r7   r   r   r{   __classcell__ru   s   @r6   rc   rc   Q   s        KO, ,%c],;CC=,	, , , , , ,"1s 1T#s(^ 1 1 1 1 1 1 1 1 1 1 1r8   rc   c                   "    e Zd ZdZdedefdZdS )I18nTagszDummy tags module for I18nBuilder.

    To translate all text inside of only nodes, this class
    always returns True value even if no tags are defined.
    	conditionrB   c                     dS )NTr?   )r5   r   s     r6   eval_conditionzI18nTags.eval_conditionq   s    tr8   N)r9   r:   r;   r<   r   boolr   r?   r8   r6   r   r   k   s@         
       r8   r   c                        e Zd ZdZdZdZdZd fdZdded	e	e         defd
Z
dee         fdZdee         ddfdZdee         deddfdZdedej        ddfdZ xZS )I18nBuilderz
    General i18n builder.
    i18nr0   FrB   Nc                     t                                                       | j                            | j        | j        j        j                   t                      | _        t          t                    | _        d S r4   )rr   initrs   set_versioning_methodversioning_methodconfiggettext_uuidr   tagsr   rA   catalogsr5   ru   s    r6   r   zI18nBuilder.init}   s^    &&t'='+x'C	E 	E 	EJJ	3>w3G3Gr8   docnametypc                     dS )N r?   )r5   r   r   s      r6   get_target_urizI18nBuilder.get_target_uri   s    rr8   c                     | j         j        S r4   )rs   
found_docsrF   s    r6   get_outdated_docszI18nBuilder.get_outdated_docs   s    x""r8   docnamesc                     d S r4   r?   )r5   r   s     r6   prepare_writingzI18nBuilder.prepare_writing       r8   r   r[   c                     d S r4   r?   )r5   r   r[   s      r6   compile_catalogszI18nBuilder.compile_catalogs   r   r8   doctreec                 b   | j         t          || j        j                           }| j        j        |                             t          j                  D ]4}t          |          D ]"\  }}d|_
        |                    ||           #5t          |          D ]\  }}|                    ||           d| j        j        j        v ret          |          D ]W\  }}|D ]M\  }}}	}
}t          ||          D ]4}|dk    r|t          j                    v r|                    ||           5NVd S d S )Nr   indexpair)r   r&   r   gettext_compactrs   tocsfindallr   toctreer'   rK   rQ   gettext_additional_targetsr(   r"   r   values)r5   r   r   catalogr   noderG   entriesr   _tid_main_keyms                r6   	write_doczI18nBuilder.write_doc   sn   - 1'4;;V W WXx}W-55h6FGG 	' 	'G-g66 ' '	cC&&&&' *'22 	# 	#ID#KKT""""dho@@@!<W!E!E - -g3: - -/CdE4,S#66 - -&==Q.2G2I2I-I-I %At,,,,-- A@- -r8   r^   r4   )r9   r:   r;   r<   namer   use_message_catalogr   r=   r   r   r   r   r   r%   r   r   documentr   r|   r}   s   @r6   r   r   u   s0         DH H H H H H c      #3s8 # # # #C T    [)9 C D    - -u~ -$ - - - - - - - -r8   r   SOURCE_DATE_EPOCHNc                   d     e Zd Zdededdf fdZdee         defdZdee         defdZ	 xZ
S )	LocalTimeZoneargskwargsrB   Nc                 R     t                      j        |i | t          | _        d S r4   )rr   r7   tzdelta)r5   r   r   ru   s      r6   r7   zLocalTimeZone.__init__   s*    $)&)))r8   dtc                     | j         S r4   )r   r5   r   s     r6   	utcoffsetzLocalTimeZone.utcoffset   s
    |r8   c                      t          d          S Nr   )r   r   s     r6   dstzLocalTimeZone.dst   s    ||r8   )r9   r:   r;   r   r7   r   r   r   r   r   r|   r}   s   @r6   r   r      s        c S T      HX. 9    hx( Y        r8   r   filepathnew_contentrB   c                    t          j        |           sdS 	 t          | d          5 }|                                }|                    d          }|                    d          }|                    d          }|                    d          }|d |         |d |         k    p||d          ||d          k    cd d d            S # 1 swxY w Y   n# t
          $ r Y nw xY wdS )NTutf-8encodingz"POT-Creation-Date:z"PO-Revision-Date:)r
   existsr   readr   
ValueError)r   r   oldpotold_contentold_header_indexnew_header_indexold_body_indexnew_body_indexs           r6   should_writer      sg   ;x   t
(W--- 	T ++--K*001FGG*001FGG(../CDDN(../CDDN !2"2!23{CTDTCT7UU S 1[5QQ	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T     4s5   C BC
=C 
CC CC 
C#"C#c            	            e Zd ZdZdZ ed          Zd fdZdee	         fdZ
ddZ	 dd
ee	         dee	         de	ddf fdZd fdZ xZS )MessageCatalogBuilderz=
    Builds gettext-style message catalogs (.pot files).
    rh   z'The message catalogs are in %(outdir)s.rB   Nc                     t                                                       |                                  | j                            |            d S r4   )rr   r   create_template_bridgerg   r   s    r6   r   zMessageCatalogBuilder.init   sB    ##%%%D!!!!!r8   c           	      L   t                      }| j        j        D ]}t          j        | j        j        |          }t          |          D ]W\  }}}|D ]N}|                    d          r7t          t          j        ||                    }|
                    |           OX|S )Nz.html)setr   templates_pathr
   rq   appsrcdirr   endswithr)   rQ   )	r5   template_filesrd   tmpl_abs_pathdirpath_dirsfilesfnrv   s	            r6   _collect_templatesz(MessageCatalogBuilder._collect_templates   s    ![7 	5 	5M Idho}EEM)-m)<)< 5 5% 5 5B{{7++ 5#-di.D.D#E#E&**844455
 r8   c                 <   t          |                                           }|                                 t                              t          t          d          | j        z            d           t                              t          d          t          |                     | j	        j
        j        }t          |t          d          dt          |          | j        j                  D ]}	 t          |d          5 }|                                }d d d            n# 1 swxY w Y    ||          D ]7\  }}}t#          ||          }	| j        d	                             ||	           8# t(          $ r}
t+          |d
|
          |
d }
~
ww xY wd S )Nzbuilding [%s]: T)nonlztargets for %d template fileszreading templates... purpler   r   sphinxz: )listr   sortloggerinfor$   r    r   lenrg   environmentextract_translationsr#   r   	verbosityr   r   rI   r   rQ   	Exceptionr   )r5   r   r   templatefrw   rO   _methrG   rH   excs              r6   _extract_from_templatez,MessageCatalogBuilder._extract_from_template   s   T,,..//

D-..:;;$GGGB677UDDD#~9N'r2I/J/JH(+E

DH4FH H 		F 		FHF(W555 'ffhhG' ' ' ' ' ' ' ' ' ' ' ' ' ' '(<(<W(E(E = =$D%&x66FM(+//V<<<<=  F F F XXXss!;<<#EF		F 		Fs=   4E5D&E5&D*	*E5-D*	.AE55
F?FFupdater   summarymethodc                 v    |                                   t                                          |||           d S r4   )r   rr   build)r5   r   r   r   ru   s       r6   r   zMessageCatalogBuilder.build   s7     	##%%%h00000r8   c           	         t                                                       | j        j        | j        j        | j        j        | j        j        | j        j        t          j	        t          t                                        d          | j        j        | j        j        d}t          | j                                        t%          d          dt'          | j                  | j        j        d           D ]\  }}t-          t/          j        | j        t/          j        |                               t7          |          |d<   t9          | j                                      d|          }t/          j        | j        |d	z             }t=          ||          r?t?          |d
d          5 }|                     |           d d d            n# 1 swxY w Y   d S )Nz%Y-%m-%d %H:%M%z)version	copyrightprojectlast_translatorlanguage_teamctimedisplay_locationdisplay_uuidzwriting message catalogs... 	darkgreenc                     | d         S r   r?   )textdomain__s    r6   <lambda>z.MessageCatalogBuilder.finish.<locals>.<lambda>  s    UV r8   rD   )re   zmessage.pot_tz.potwr   r   )!rr   finishr   r   r   r   gettext_last_translatorgettext_language_teamr   fromtimestamp	timestampltzstrftimegettext_locationr   r#   r   itemsr    r   r   r   r*   r
   rq   re   dirnamer   rc   r{   r   r   write)r5   rw   
textdomainr   contentpofnpofileru   s          r6   r  zMessageCatalogBuilder.finish  s   {*.{*#{B![>+Is;;DDEWXX $ < K4	
 	
 $34=3F3F3H3H356T3U3U3>DM@R@R3783E3W3W	$Y $Y 	* 	*J diT\*-E-EFFGGG"&w--GJ%T[999@@RYZZG9T[*v*=>>DD'** *$g666 *&LL)))* * * * * * * * * * * * * * *	* 	*s   0GG	G	r^   )Nr   )r9   r:   r;   r<   r   r    epilogr   r   r=   r   r   r   r   r   r  r|   r}   s   @r6   r   r      s         DR9::F" " " " " "
	CH 	 	 	 	F F F F( U]1 1 1081NQ1	1 1 1 1 1 1* * * * * * * * * *r8   r   r   c                    |                      t                     |                     dddt          t          h           |                     ddd           |                     ddd           |                     ddd           |                     d	g d           |                     d
dd           |                     ddd           ddddS )Nr   Trh   r  r   Fgettext_auto_buildrs   r   r  zFULL NAME <EMAIL@ADDRESS>r	  zLANGUAGE <LL@li.org>builtin)r   parallel_read_safeparallel_write_safe)add_builderr   add_config_valuer   r=   )r   s    r6   setupr  !  s    OO)****D)dC[III+T9===	:::-tU;;;5r5AAA24OQZ[[[02H)TTT "#  r8   )Vr<   codecsr   collectionsr   r   r   r   r   osr	   r
   r   r   typingr   r   r   r   r   r   r   r   r   r   rV   r   docutilsr   docutils.nodesr   r   r   r   sphinx.applicationr   sphinx.buildersr   sphinx.domains.pythonr   sphinx.errorsr   sphinx.localer    sphinx.utilr!   r"   r#   sphinx.util.consoler$   sphinx.util.i18nr%   r&   sphinx.util.nodesr'   r(   sphinx.util.osutilr)   r*   r+   sphinx.util.tagsr,   sphinx.util.templater-   	getLoggerr9   r   r/   rA   rI   rc   r   r   r  r
  utcfromtimestampr   source_date_epochfloatr   r  r=   r   r   r   r  r?   r8   r6   <module>r5     s   & &       0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ! ! ! ! ! ! ! ! ! !                                          " " " " " " ( ( ( ( ( ( ( ( % % % % % % # # # # # # 0 0 0 0 0 0 $ $ $ $ $ $       A A A A A A A A A A $ $ $ $ $ $ ; ; ; ; ; ; ; ; K K K K K K K K = = = = = = = = = = ! ! ! ! ! ! / / / / / /		8	$	$       5 5 5 5 5 5 5 5<       1 1 1 1 1n 1 1 14    t   /- /- /- /- /-' /- /- /-f DFF	
 (
 
+
+Hi(() F.//  '((IillG	 	 	 	 	F 	 	 	 moo3 S T    $J* J* J* J* J*K J* J* J*Zv $sCx.      r8   