
    zi)&                       d Z ddlmZ ddlZddl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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 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l,m-Z-m.Z. erddl/m0Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6  ej7        e8          Z9ej        :                    edd          Z; G d de          Z<d'd"Z=d(d&Z>dS ))zTexinfo builder.    )annotationsN)path)TYPE_CHECKINGAny)nodes)OptionParser)
FileOutput)addnodespackage_dir)Builder)ImageAdapter)NoUri)___)logging)	darkgreen)progress_messagestatus_iterator)new_document)copy_asset_file)inline_all_toctrees)SEP	ensuredirmake_filename_from_project)TexinfoTranslatorTexinfoWriter)Iterable)Node)Sphinx)Config	templatestexinfoc                      e Zd ZdZdZdZ ed          Zej        dk    re ed          z  Zg dZ	e
Zd$d	Zd%dZd&d'dZd&d(dZd$dZd)dZd*dZd$d Zd+d"Zd$d#ZdS ),TexinfoBuilderz=
    Builds Texinfo output to create Info documentation.
    r"   z$The Texinfo files are in %(outdir)s.posixzl
Run 'make' in that directory to run these through makeinfo
(use 'make info' here to do that automatically).)z	image/pngz
image/jpegz	image/gifreturnNonec                "    g | _         g | _        d S N)docnamesdocument_dataselfs    b/var/www/tmov.alphamb/tmov_inventario/venv/lib/python3.11/site-packages/sphinx/builders/texinfo.pyinitzTexinfoBuilder.init8   s    ')SU    str | list[str]c                    dS )Nzall documents r,   s    r.   get_outdated_docsz TexinfoBuilder.get_outdated_docs<   s    r0   Ndocnamestrtyp
str | Nonec                >    || j         vrt          ||          d|z   S )N%)r*   r   )r-   r5   r7   s      r.   get_target_urizTexinfoBuilder.get_target_uri?   s)    $-''%%%W}r0   from_toc                .    |                      ||          S r)   )r;   )r-   r<   r=   r7   s       r.   get_relative_urizTexinfoBuilder.get_relative_uriD   s    ""2s+++r0   c                   d | j         j        D             }|s)t                              t	          d                     d S g | _        |D ]}|d         }|| j        j        vr)t                              t	          d          |           A| j        	                    |           |
                    t          dz             r
|d d         }| j        	                    ||d         f           d S )Nc                ,    g | ]}t          |          S r3   )list).0xs     r.   
<listcomp>z5TexinfoBuilder.init_document_data.<locals>.<listcomp>I   s    $T$T$TT!WW$T$T$Tr0   zGno "texinfo_documents" config value found; no documents will be writtenr   z?"texinfo_documents" config value references unknown document %sindex   )configtexinfo_documentsloggerwarningr   titlesenvall_docsr+   appendendswithr   )r-   preliminary_document_dataentryr5   s       r.   init_document_dataz!TexinfoBuilder.init_document_dataH   s   $T$Tdk6S$T$T$T!( 	NN2 0 1 1 2 2 2F-/. 		4 		4EAhGdh///r #0  1  129; ; ;%%e,,,g.. '!#2#,Kq23333		4 		4r0   ignoredr   c                   |                                   |                                  | j        D ];}|d d         \  }}}}|dz  }dx}x}}	t          |          dk    r|dd         \  }}}	d}
t          |          dk    r|d         }
t	          t          j        | j        |          d          }t          t          d	          |z            5  | j
        j        pg }|                     ||
|
          }d d d            n# 1 swxY w Y   t          t          d                    5  |                     |           t          |           }t          j                    5  t          j        dt$                     t'          | j        j        |fd                                          }d d d            n# 1 swxY w Y   ||_        ||_        |d d         dz   |_        | j
        j        |_        |pd|_        |	pd|_        |pd|_        ||_        ||_        |                    ||           |                      |d d                    d d d            n# 1 swxY w Y   =d S )N   z.texi       Fzutf-8)destination_pathencodingzprocessing %s)
appendiceswritingignore)categoryT)defaults
componentsread_config_filesrG   z.info)!rT   copy_assetsr+   lenr	   r   joinoutdirr   r   rI   texinfo_appendicesassemble_doctreepost_process_imagesr   warningscatch_warningsfilterwarningsDeprecationWarningr   rN   settingsget_default_valuesauthortitletexinfo_filenametexinfo_elementstexinfo_dir_entrytexinfo_dir_categorytexinfo_dir_descriptionr5   writecopy_image_files)r-   rU   rS   r5   
targetnamerr   rq   direntrydescriptionr`   toctree_onlydestinationr]   doctree	docwriterro   s                   r.   rx   zTexinfoBuilder.write[   sn   !!!' %	7 %	7E16rr.GZ'!J022H2{X5zzA~~27!*/+x L5zzA~~$Qx$!%4;
!C!C " " "K ""_"5"5
"BCC ^ ^![;Ar
//R\/]]^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ""Y--00 7 7((111)$//	,.. E E+H?QRRRR %1!%!2$-<*.%0 %0 %0 1C0B0D0D 	E E E E E E E E E E E E E E E #)!&,6ssOg,E),0K,H)-5^*08B-3>3D"0#* #+ 555%%j"o666+7 7 7 7 7 7 7 7 7 7 7 7 7 7 7!%	7 %	7sJ   'DD
	D
	-8I %AF<0I <G  I G BI  I$	'I$		indexfiler}   boolr]   	list[str]nodes.documentc           	        t          |g|z             | _        t                              t	          |          dz   d           | j                            |          }||d<   |rht          d          }t          j	                    }|t          j
        dd          z  }||z  }|                    t          j                  D ]}||z  }|}t          | | j        ||t          |g          }||d<   |D ]6}	| j                            |	          }
|	|
d<   |                    |
           7t                              d           t                              t!          d                     | j                            |||            |                    t          j                  D ]}|d	         }	|d
         }t          j        ||          g}| j        D ]\  }}|	                    |          r|                    t          j        t/          d                               |                    t          j        ||                     |                    t          j        d                      n	 |                    |           |S )N Tnonlr5   z<texinfo output>z<Set title in conf.py>rX   zresolving references...
refdocnamerefsectnamez (in ))setr*   rK   infor   rN   get_doctreer   r   sectionrr   findallr
   toctreer   rP   r   resolve_referencespending_xrefemphasisrM   
startswithTextr   replace_self)r-   r   r}   r]   treenew_treenew_sectnode	largetreer5   appendixpendingnodesectnamenewnodessubdirrr   s                   r.   ri   zTexinfoBuilder.assemble_doctree   s    YK*455Ii((3.T:::x##I..#Y 
	 $$677H}H$<$<> > >H HX%566 ! !D D'dmY(1I;@ @	(	)! 	' 	'Gx++G44H")HYX&&&&BB011222##Iy$???$,,X-BCC 	/ 	/K!,/G"=1H$)N8X$F$F#GH!%  %%f-- OOEJqzz$:$:;;;OOEN5%$@$@AAAOOEJsOO444E	 $$X....r0   c                .    |                                   d S r)   )copy_support_filesr,   s    r.   rd   zTexinfoBuilder.copy_assets   s    !!!!!r0   rz   c           	     |   | j         r1t          | j        j                  j        }t          | j         t          d          dt          | j                   | j        j        |          D ]}| j         |         }	 t          j
        | j        |dz             }t          |           t          t          j
        | j        |          t          j
        ||                     x# t          $ rK}t                               t          d          t          j
        | j        |          |           Y d }~d }~ww xY wd S d S )Nzcopying images... brown)stringify_funcz-figureszcannot copy image file %r: %s)imagesr   apprN   get_original_image_urir   r   re   	verbosityr   rf   rg   r   r   srcdir	ExceptionrK   rL   )r-   rz   r   srcdestimagedirerrs          r.   ry   zTexinfoBuilder.copy_image_files   sl   ; 	E)$(,77NN&t{B7K4L4Lg'*4;'7'79K6DF F F E E {3'E#yj:6MNNHh'''#DIdk3$?$?$(Ih$=$=? ? ? ?  E E ENN2&E#F#F#'9T[##>#>E E E E E E E EE	E 	EE Es   :A'C""
D7,AD22D7c                   	 t          t          d                    5  t                              dd           t	          t
          j                            t          d          | j	                   d d d            d S # 1 swxY w Y   d S # t          $ r3}t                              t          d          |           Y d }~d S d }~ww xY w)Nzcopying Texinfo support filesz	Makefile Tr   Makefilezerror writing file Makefile: %s)r   r   rK   r   r   osr   rf   template_dirrg   OSErrorrL   )r-   r   s     r.   r   z!TexinfoBuilder.copy_support_files   s#   	G!"%D"E"EFF U UKd333\: F FTTTU U U U U U U U U U U U U U U U U U  	G 	G 	GNN2?@@#FFFFFFFFF	Gs;   B AB 3B  BB BB 
C
(CC
)r&   r'   )r&   r1   r)   )r5   r6   r7   r8   r&   r6   )r<   r6   r=   r6   r7   r8   r&   r6   )rU   r   r&   r'   )r   r6   r}   r   r]   r   r&   r   )rz   r6   r&   r'   )__name__
__module____qualname____doc__nameformatr   epilogr   supported_image_typesr   default_translator_classr/   r4   r;   r?   rT   rx   ri   rd   ry   r   r3   r0   r.   r$   r$   (   sb         DFR677F	w'"" H I I 	I* * *0V V V V       
, , , , ,4 4 4 4&(7 (7 (7 (7T* * * *X" " " "E E E E G G G G G Gr0   r$   rI   r    r&   .list[tuple[str, str, str, str, str, str, str]]c                \    t          | j                  }| j        || j        | j        |ddfgS )z, Better default texinfo_documents settings. zOne line description of projectMiscellaneous)r   projectroot_docrq   )rI   filenames     r.   default_texinfo_documentsr      s;     *&.99H_hx.A B Br0   r   r   dict[str, Any]c                   |                      t                     |                     dt          d           |                     dg d           |                     di d           |                     dddt          g           |                     ddd           |                     d	dd           |                     d
dd           ddddS )NrJ   Frh   rt   texinfo_domain_indicesTtexinfo_show_urlsfootnotetexinfo_no_detailmenutexinfo_cross_referencesbuiltin)versionparallel_read_safeparallel_write_safe)add_builderr$   add_config_valuer   rB   )r   s    r.   setupr      s    OON###,.GOOO-r5999+R77714GGG,j%@@@0%???3T5AAA "#  r0   )rI   r    r&   r   )r   r   r&   r   )?r   
__future__r   r   rk   r   typingr   r   docutilsr   docutils.frontendr   docutils.ior	   sphinxr
   r   sphinx.buildersr   !sphinx.environment.adapters.assetr   sphinx.errorsr   sphinx.localer   r   sphinx.utilr   sphinx.util.consoler   sphinx.util.displayr   r   sphinx.util.docutilsr   sphinx.util.fileutilr   sphinx.util.nodesr   sphinx.util.osutilr   r   r   sphinx.writers.texinfor   r   collections.abcr   docutils.nodesr   sphinx.applicationr   sphinx.configr    	getLoggerr   rK   rf   r   r$   r   r   r3   r0   r.   <module>r      s     " " " " " " 				        % % % % % % % %       * * * * * * " " " " " " ( ( ( ( ( ( ( ( # # # # # # : : : : : :                     ) ) ) ) ) ) A A A A A A A A - - - - - - 0 0 0 0 0 0 1 1 1 1 1 1 I I I I I I I I I I C C C C C C C C %((((((######))))))$$$$$$		8	$	$w||Ki@@bG bG bG bG bGW bG bG bGJB B B B     r0   