
    zi+                       d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	m
Z
mZ ddlmZ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! ddl"m#Z#m$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/ ddl0m1Z1 erddlZddl2m3Z3m4Z4 ddl5m6Z6 ddl7m8Z8  ej9        e:          Z; G d d          Z< G d d          Z= G d d          Z> G d  d!e1          Z? G d" d#e/          Z@ G d$ d%e          ZA e	d&          xZB ejC         eDeB                    ZEn ejF                    ZE ejG        d'eE          ZHd7d-ZId8d0ZJ G d1 d2eA          ZKd9d6ZLdS ):z The MessageCatalogBuilder class.    )annotationsN)open)defaultdict)getenvpathwalk)TYPE_CHECKINGAny)uuid4)nodes)addnodespackage_dir)Builder)
ThemeError)__)logging)bold)status_iterator)CatalogInfodocname_to_domain)split_index_msg)extract_messagestraverse_translatable_index)
canon_path	ensuredirrelpath)Tags)SphinxRenderer)	GeneratorIterable)Element)Sphinxc                      e Zd ZdZd
dZd	S )Messagez!An entry of translatable message.textstr	locationslist[tuple[str, int]]uuids	list[str]c                0    || _         || _        || _        d S N)r%   r'   r)   )selfr%   r'   r)   s       b/var/www/tmov.alphamb/tmov_inventario/venv/lib/python3.11/site-packages/sphinx/builders/gettext.py__init__zMessage.__init__)   s    	"


    N)r%   r&   r'   r(   r)   r*   __name__
__module____qualname____doc__r/    r0   r.   r$   r$   '   s.        ++     r0   r$   c                  *    e Zd ZdZddZdd	ZddZdS )Catalogz!Catalog of translatable messages.returnNonec                "    g | _         i | _        d S r,   )messagesmetadatar-   s    r.   r/   zCatalog.__init__2   s    #% @Br0   msgr&   originElement | MsgOriginc                    t          |d          sd S || j        vr$| j                            |           g | j        |<   |j        }|d}| j        |                             |j        ||j        f           d S )Nuid)hasattrr=   r<   appendlinesourcerC   )r-   r?   r@   rG   s       r.   addzCatalog.add8   s    vu%% 	 Fdm##M  %%%!#DM#{<Dc!!6=$
"CDDDDDr0   Generator[Message, None, None]c              #     K   | j         D ]P}t          d | j        |         D                       }d | j        |         D             }t          |||          V  Qd S )Nc                    h | ]
\  }}}||fS r6   r6   .0rH   rG   uuids       r.   	<setcomp>z#Catalog.__iter__.<locals>.<setcomp>G   s/      :  :  :3E64  :  :  :r0   c                    g | ]\  }}}|	S r6   r6   rM   s       r.   
<listcomp>z$Catalog.__iter__.<locals>.<listcomp>I   s    KKK0fdDTKKKr0   )r<   sortedr=   r$   )r-   message	positionsr)   s       r.   __iter__zCatalog.__iter__E   s      } 	5 	5G  :  :"&-"8 :  :  : ; ;IKKDM'4JKKKE'9e444444		5 	5r0   Nr9   r:   )r?   r&   r@   rA   r9   r:   )r9   rJ   )r2   r3   r4   r5   r/   rI   rV   r6   r0   r.   r8   r8   /   s^        ++B B B BE E E E5 5 5 5 5 5r0   r8   c                      e Zd ZdZd
dZd	S )	MsgOriginz3
    Origin holder for Catalog message origin.
    rH   r&   rG   intr9   r:   c                R    || _         || _        t                      j        | _        d S r,   )rH   rG   r   hexrC   )r-   rH   rG   s      r.   r/   zMsgOrigin.__init__R   s!    	77;r0   N)rH   r&   rG   rZ   r9   r:   r1   r6   r0   r.   rY   rY   M   s2              r0   rY   c                  2     e Zd Z	 	 dd fdZd fdZ xZS )GettextRendererNtemplate_path#list[str | os.PathLike[str]] | Noneoutdirstr | os.PathLike[str] | Noner9   r:   c                    || _         |t          j        t          dd          g}t	                                          |           d	d}|| j        j        d<   || j        j        d<   d S )
N	templatesgettextsr&   r9   c                    |                      dd          } |                      dd          } |                      dd          S )N\z\\"z\"
z\n"
")replace)rf   s    r.   escapez(GettextRenderer.__init__.<locals>.escapeb   s<    		$&&A		#u%%A99T9---r0   erl   rf   r&   r9   r&   )ra   r   joinr   superr/   envfilters)r-   r_   ra   rl   	__class__s       r.   r/   zGettextRenderer.__init__Y   sz      !Y{KKKLM'''	. 	. 	. 	. !'%+"""r0   filenamer&   contextdict[str, Any]c                `     d fd}||d<   t                                          ||          S )Nrf   r&   r9   c                H    t          t          | j                            S r,   )r   r   ra   )rf   r-   s    r.   _relpathz(GettextRenderer.render.<locals>._relpathl   s    ga55666r0   r   rn   )rp   render)r-   rt   ru   ry   rs   s   `   r.   rz   zGettextRenderer.renderk   sF    	7 	7 	7 	7 	7 	7 &	ww~~h000r0   )NN)r_   r`   ra   rb   r9   r:   )rt   r&   ru   rv   r9   r&   )r2   r3   r4   r/   rz   __classcell__rs   s   @r.   r^   r^   X   sf        CG48, , , , , , ,$1 1 1 1 1 1 1 1 1 1r0   r^   c                      e Zd ZdZd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.
    	conditionr
   r9   boolc                    dS )NTr6   )r-   r   s     r.   eval_conditionzI18nTags.eval_conditiony   s    tr0   N)r   r
   r9   r   )r2   r3   r4   r5   r   r6   r0   r.   r~   r~   s   s2         
     r0   r~   c                  Z     e Zd ZdZdZdZdZd fdZdddZddZ	ddZ
ddZddZ xZS ) I18nBuilderz
    General i18n builder.
    i18nr%   Fr9   r:   c                    t                                                       | j                            | j        | j        j        j                   t                      | _        t          t                    | _        d S r,   )rp   initrq   set_versioning_methodversioning_methodconfiggettext_uuidr~   tagsr   r8   catalogsr-   rs   s    r.   r   zI18nBuilder.init   s^    &&t'='+x'C	E 	E 	EJJ	3>w3G3Gr0   Ndocnamer&   typ
str | Nonec                    dS )N r6   )r-   r   r   s      r.   get_target_urizI18nBuilder.get_target_uri   s    rr0   set[str]c                    | j         j        S r,   )rq   
found_docsr>   s    r.   get_outdated_docszI18nBuilder.get_outdated_docs   s    x""r0   docnamesc                    d S r,   r6   )r-   r   s     r.   prepare_writingzI18nBuilder.prepare_writing       r0   r   set[CatalogInfo]rT   c                    d S r,   r6   )r-   r   rT   s      r.   compile_catalogszI18nBuilder.compile_catalogs   r   r0   doctreenodes.documentc                H   | j         t          || j        j                           }| j        j        |                             t          j                  D ]4}t          |          D ]"\  }}d|_
        |                    ||           #5t          |          D ]*\  }}t          |          s|                    ||           +d| j        j        j        v rIt          |          D ];\  }}|D ]1\  }}	}
}}t          ||	          D ]}|                    ||           2:d S d S )Nr   index)r   r   r   gettext_compactrq   tocsfindallr   toctreer   rC   rI   #_is_node_in_substitution_definitiongettext_additional_targetsr   r   )r-   r   r   catalogr   noder?   entries
entry_typevalue
_target_id_main_category_keyms                 r.   	write_doczI18nBuilder.write_doc   s[   - 1'4;;V W WXx}W-55h6FGG 	' 	'G-g66 ' '	cC&&&&' *'22 	' 	'ID#6t<< 'C&&&dho@@@!<W!E!E - -gKR - -GJz5-,Z?? - -At,,,,-- A@- -r0   rW   r,   )r   r&   r   r   r9   r&   r9   r   )r   r   r9   r:   )r   r   rT   r&   r9   r:   )r   r&   r   r   r9   r:   )r2   r3   r4   r5   namer   use_message_catalogr   r   r   r   r   r   r{   r|   s   @r.   r   r   }   s          DH H H H H H    # # # #      - - - - - - - -r0   r   SOURCE_DATE_EPOCHz%Y-%m-%d %H:%M%zfilepathr&   new_contentr9   r   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           r.   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#r   
nodes.Nodec                h    | j         r*t          | t          j                  rdS | j         } | j         *dS )z;Check "node" to test if it is in a substitution definition.TF)parent
isinstancer   substitution_definition)r   s    r.   r   r      s@    
+ dE9:: 	4{ +  5r0   c                  l     e Zd ZdZdZ ed          Zd fdZddZdd	Z		 	 dd fdZ
d fdZ xZS )MessageCatalogBuilderz=
    Builds gettext-style message catalogs (.pot files).
    re   z'The message catalogs are in %(outdir)s.r9   r:   c                    t                                                       |                                  | j                            |            d S r,   )rp   r   create_template_bridgerd   r   s    r.   r   zMessageCatalogBuilder.init   sB    ##%%%D!!!!!r0   r   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   ro   appsrcdirr   endswithr   rI   )	r-   template_filesr_   tmpl_abs_pathdirpath_dirsfilesfnrt   s	            r.   _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
 r0   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}
| d
|
}t+          |          |
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   lenrd   environmentextract_translationsr   r   	verbosityr   r   rY   r   rI   	Exceptionr   )r-   r   r   templatefru   rG   _methr?   r@   excs              r.   _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 
	/ 
	/H/(W555 'ffhhG' ' ' ' ' ' ' ' ' ' ' ' ' ' '(<(<W(E(E = =$D%&x66FM(+//V<<<<=  / / /!,,S,, oo3./
	/ 
	/s=   4E5D&E5&D*	*E5-D*	.AE55
F?FFNupdater   Iterable[str] | Nonesummaryr   methodr&   c                v    |                                   t                                          |||           d S r,   )r   rp   build)r-   r   r   r   rs   s       r.   r   zMessageCatalogBuilder.build   s7     	##%%%h00000r0   c           	     j   t                                                       | j        j        | j        j        | j        j        | j        j        | j        j        t          | j        j	        | j        j
        d}t          | j                                        t          d          dt          | j                  | j        j        d           D ]\  }}t%          t'          j        | j        t'          j        |                               t/          |          |d<   t1          | j                                      d|          }t'          j        | j        |dz             }t5          ||          r?t7          |d	d
          5 }|                    |           d d d            n# 1 swxY w Y   d S )N)version	copyrightprojectlast_translatorlanguage_teamctimedisplay_locationdisplay_uuidzwriting message catalogs... 	darkgreenc                    | d         S )Nr   r6   )textdomain__s    r.   <lambda>z.MessageCatalogBuilder.finish.<locals>.<lambda>  s    UV r0   r<   )ra   zmessage.pot_tz.potwr   r   )rp   finishr   r   r   r   gettext_last_translatorgettext_language_teamr   gettext_locationr   r   r   itemsr   r   r   r   r   r   ro   ra   dirnamer   r^   rz   r   r   write)r-   ru   
textdomainr   contentpofnpofilers   s          r.   r  zMessageCatalogBuilder.finish  s   {*.{*#{B![> $ < 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   F''F+	.F+	rW   r   )Nr   )r   r   r   r   r   r&   r9   r:   )r2   r3   r4   r5   r   r   epilogr   r   r   r   r  r{   r|   s   @r.   r   r      s          DR9::F" " " " " "
	 	 	 	/ / / /. #	1 1 1 1 1 1 1* * * * * * * * * *r0   r   r   r"   rv   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   Tre   r  r   Fgettext_auto_buildrq   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    r.   setupr  #  s    OO)****D)dC[III+T9===	:::-tU;;;5r5AAA24OQZ[[[02H)TTT "#  r0   )r   r&   r   r&   r9   r   )r   r   r9   r   )r   r"   r9   rv   )Mr5   
__future__r   timecodecsr   collectionsr   osr   r   r   typingr	   r
   rO   r   docutilsr   r   r   r   sphinx.buildersr   sphinx.errorsr   sphinx.localer   sphinx.utilr   sphinx.util.consoler   sphinx.util.displayr   sphinx.util.i18nr   r   sphinx.util.index_entriesr   sphinx.util.nodesr   r   sphinx.util.osutilr   r   r   sphinx.util.tagsr   sphinx.util.templater   collections.abcr   r    docutils.nodesr!   sphinx.applicationr"   	getLoggerr2   r   r$   r8   rY   r^   r~   r   source_date_epochgmtimefloat	timestamp	localtimestrftimer   r   r   r   r  r6   r0   r.   <module>r5     s   & & " " " " " "        # # # # # # ! ! ! ! ! ! ! ! ! ! % % % % % % % %             ( ( ( ( ( ( ( ( # # # # # # $ $ $ $ $ $             $ $ $ $ $ $ / / / / / / ; ; ; ; ; ; ; ; 5 5 5 5 5 5 K K K K K K K K = = = = = = = = = = ! ! ! ! ! ! / / / / / / *III33333333&&&&&&))))))		8	$	$       5 5 5 5 5 5 5 5<       1 1 1 1 1n 1 1 16    t   -- -- -- -- --' -- -- --d   3444AEE"34455II   I()44   $   N* N* N* N* N*K N* N* N*b     r0   