
    -Ph(                       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	 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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'm(Z(m)Z) ddl*m+Z+m,Z, er&ddl-m.Z.m/Z/ ddlm0Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8  ej9        e:          Z; ej<        dd          Z= G d de          Z>d'd"Z?d(d&Z@dS ))zTexinfo builder.    )annotationsN)TYPE_CHECKING)nodes)OptionParser)
FileOutput)addnodespackage_dir)	darkgreen)Builder)ImageAdapter)NoUri)___)logging)progress_messagestatus_iterator)new_document)inline_all_toctrees)SEPcopyfile	ensuredirmake_filename_from_project)TexinfoTranslatorTexinfoWriter)IterableSet)Any)Node)Sphinx)Config)ExtensionMetadata	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 ),TexinfoBuilderz3Builds 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    W/var/www/html/test/jupyter/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    r1   Ndocnamestrtyp
str | Nonec                >    || j         vrt          ||          d|z   S )N%)r+   r   )r.   r6   r8   s      r/   get_target_urizTexinfoBuilder.get_target_uri?   s)    $-''%%%W}r1   from_toc                .    |                      ||          S r*   )r<   )r.   r=   r>   r8   s       r/   get_relative_urizTexinfoBuilder.get_relative_uriD   s    ""2s+++r1   	_docnamesSet[str]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             }| j        	                    ||d         f           d S )Nc                ,    g | ]}t          |          S r4   )list).0xs     r/   
<listcomp>z2TexinfoBuilder.prepare_writing.<locals>.<listcomp>I   s    $T$T$TT!WW$T$T$Tr1   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removesuffixr   )r.   rA   preliminary_document_dataentryr6   s        r/   prepare_writingzTexinfoBuilder.prepare_writingH   s   $T$Tdk6S$T$T$T!( 	NN&    F-/. 	4 	4EAhGdh///&     %%e,,,**3=99GKq23333	4 	4r1   c                r   | j         D ]-}|d d         \  }}}}|dz  }dx}x}}	t          |          dk    r|dd         \  }}}	d}
t          |          dk    r|d         }
t          | j        |z  d          }t	          t          d	          |z  d
          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nonl)
appendiceswritingignore)categoryT)defaults
componentsread_config_filesz.info)r,   lenr   outdirr   r   rK   texinfo_appendicesassemble_doctreepost_process_imagesr   warningscatch_warningsfilterwarningsDeprecationWarningr   rP   settingsget_default_valuesauthortitletexinfo_filenametexinfo_elementstexinfo_dir_entrytexinfo_dir_categorytexinfo_dir_descriptionr6   writecopy_image_files)r.   rA   rU   r6   
targetnamert   rs   direntrydescriptionrc   toctree_onlydestinationr`   doctree	docwriterrq   s                   r/   write_documentszTexinfoBuilder.write_documentsc   s+   ' )	7 )	7E16rr.GZ'!J022H2{X5zzA~~27!*/+x L5zzA~~$Qx$!%z!9   K ""_"5"5
"BOOO  ![;Ar
//\j 0                 ""Y--00 7 7((111)$//	,.. + ++H?QRRRR %1!%!2$-<*.% % % )(**	 	+ + + + + + + + + + + + + + + #)!&,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   'CC	C	78H*/AF:H*F

H*F
BH**H.	1H.		indexfiler   boolr`   	list[str]nodes.documentc           	        |h|| _         t                              t          |                     | 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 ]x\  }}|	                    |          r^|                    t          j        t/          d                    t          j        ||          t          j        d	          f            ny|                    |           |S )
Nr6   z<texinfo output>z<Set title in conf.py>rY   zresolving references...
refdocnamerefsectnamez (in ))r+   rM   infor
   rP   get_doctreer   r   sectionrt   findallr   toctreer   rR   r   resolve_referencespending_xrefemphasisrO   
startswithextendTextr   replace_self)r.   r   r   r`   treenew_treenew_sectnode	largetreer6   appendixpendingnodesectnamenewnodessubdirrt   s                   r/   rk   zTexinfoBuilder.assemble_doctree   sZ    #0Z0Ii(()))x##I..#Y 		 $$677H}H$<>VWWWH HX%566 ! !D D'$-D)i[
 
	  )	)! 	' 	'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-- OO
1W::..ue44
3%   
 E $$X....r1   c                .    |                                   d S r*   )copy_support_filesr-   s    r/   copy_assetszTexinfoBuilder.copy_assets   s    !!!!!r1   r|   c                   | j         rt          | j                  j        }t	          | j         t          d          dt          | j                   | j        j        |          D ]}| j         |         }	 | j	        | dz  }t          |           t          | j        |z  ||z  d           J# t          $ r;}t                              t          d          | j        |z  |           Y d }~d }~ww xY wd S d S )Nzcopying images... brown)stringify_funcz-figuresTforcezcannot copy image file %r: %s)imagesr   rP   get_original_image_urir   r   rh   app	verbosityri   r   r   srcdir	ExceptionrM   rN   )r.   r|   r   srcdestimagedirerrs          r/   r{   zTexinfoBuilder.copy_image_files   sK   ; 	)$(33JN&'((DK  "-     {3'#{
-D-D-DDHh'''c) 4"    
 !   NN:;;c)       '	 	 s   49B..
C381C..C3c                n   	 t          t          d                    5  t                              dd           t	          t
          dz  | j        dz  d           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^   Makefiler   zerror writing file Makefile: %s)	r   r   rM   r   r   template_dirri   OSErrorrN   )r.   r   s     r/   r   z!TexinfoBuilder.copy_support_files   s   		G!"%D"E"EFF  Kd333 :-K*,                      	G 	G 	GNN2?@@#FFFFFFFFF	Gs:   A7 ?A*A7 *A..A7 1A.2A7 7
B4(B//B4)r'   r(   )r'   r2   r*   )r6   r7   r8   r9   r'   r7   )r=   r7   r>   r7   r8   r9   r'   r7   )rA   rB   r'   r(   )r   r7   r   r   r`   r   r'   r   )r|   r7   r'   r(   )__name__
__module____qualname____doc__nameformatr   epilogossupported_image_typesr   default_translator_classr0   r5   r<   r@   rV   r   rk   r   r{   r   r4   r1   r/   r%   r%   (   sQ       ==DFR677F	w'""?
 
 	
 EDD0V V V V       
, , , , ,4 4 4 46*7 *7 *7 *7X- - - -^" " " "   6
G 
G 
G 
G 
G 
Gr1   r%   rK   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_docrs   )rK   filenames     r/   default_texinfo_documentsr      s?     *&.99H ONM-	

 
r1   r   r   r!   c                   |                      t                     |                     dt          dt	          t
          t          h                     |                     dg dt	          t
          t          h                     |                     di dt	          t          h                     |                     dddt	          t          t
          t          t          h                     |                     dd	dt	          t          h                     |                     d
ddt	          t          h                     |                     dddt	          t          h                     ddddS )NrL   rY   )typesrj   rv   texinfo_domain_indicesTtexinfo_show_urlsfootnotetexinfo_no_detailmenuFtexinfo_cross_referencesbuiltin)versionparallel_read_safeparallel_write_safe)add_builderr%   add_config_valuer   	frozensetrE   tupledictsetr7   r   )r   s    r/   setupr      sl   OON###!
u&&	     -r2Ye}=U=UVVV+R9dV;L;LMMM 
D#u566	     ,j"IseDTDTUUU0%9dVCTCTUUU3T2YPTvEVEVWWW "#  r1   )rK   r    r'   r   )r   r   r'   r!   )Ar   
__future__r   os.pathr   rm   typingr   docutilsr   docutils.frontendr   docutils.ior   sphinxr   r	   sphinx._cli.util.colourr
   sphinx.buildersr   !sphinx.environment.adapters.assetr   sphinx.errorsr   sphinx.localer   r   sphinx.utilr   sphinx.util.displayr   r   sphinx.util.docutilsr   sphinx.util.nodesr   sphinx.util.osutilr   r   r   r   sphinx.writers.texinfor   r   collections.abcr   r   r   docutils.nodesr   sphinx.applicationr   sphinx.configr    sphinx.util.typingr!   	getLoggerr   rM   joinpathr   r%   r   r   r4   r1   r/   <module>r      s     " " " " " "                     * * * * * * " " " " " " ( ( ( ( ( ( ( ( - - - - - - # # # # # # : : : : : :                     A A A A A A A A - - - - - - 1 1 1 1 1 1 S S S S S S S S S S S S C C C C C C C C 5--------######))))))$$$$$$444444		8	$	$#{#K;;~G ~G ~G ~G ~GW ~G ~G ~GB   $     r1   