
    -Ph                    B   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	 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 ddlmZmZ ddlmZmZ er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&  ej'        e(          Z) G d de          Z*d dZ+d!dZ,dS )"zManual pages builder.    )annotationsN)TYPE_CHECKING)OptionParser)
FileOutput)addnodes)	darkgreen)Builder)__)logging)progress_message)inline_all_toctrees)	ensuredirmake_filename_from_project)ManualPageTranslatorManualPageWriter)Set)Any)Sphinx)Config)ExtensionMetadatac                      e Zd ZU dZdZdZ ed          ZeZ	g Z
ded<   ddZdd
ZdddZ e ed                    dd            ZddZdS )ManualPageBuilderz*Builds groff output in manual page format.manz#The manual pages are in %(outdir)s.z	list[str]supported_image_typesreturnNonec                p    | j         j        s)t                              t	          d                     d S d S )NzBno "man_pages" config value found; no manual pages will be written)config	man_pagesloggerwarningr
   selfs    W/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sphinx/builders/manpage.pyinitzManualPageBuilder.init*   sE    {$ 	NNWXX    	 	    str | list[str]c                    dS )Nzall manpages r"   s    r$   get_outdated_docsz#ManualPageBuilder.get_outdated_docs0   s    ~r&   Ndocnamestrtyp
str | Nonec                    dS )N r)   )r#   r+   r-   s      r$   get_target_uriz ManualPageBuilder.get_target_uri3   s    rr&   writing	_docnamesSet[str]c           	        t          |           }t          j                    5  t          j        dt                     t          | j        j        |fd                                          }d d d            n# 1 swxY w Y   | j	        j
        D ]}|\  }}}}}	|| j        j        vr)t                              t          d          |           Bt          |t                     r|r|g}ng }||_        ||_        ||_        |	|_        | j	        j        r'd|	z  }
t-          | j        |
z             |
 d| d|	 }n| d|	 }t                              d	t3          |                     t5          | j        |z  d
          }| j                            |          }t9                      }t;          | |||t2          |g          }||_        t                              dd           | j                            |||            |                    t@          j!                  D ]}|"                    |j#                   |$                    ||           d S )Nignore)categoryT)defaults
componentsread_config_filesz7"man_pages" config value references unknown document %szman%s/.z%s { zutf-8)destination_pathencodingz} )nonl)%r   warningscatch_warningsfilterwarningsDeprecationWarningr   envsettingsget_default_valuesr   r   all_docsr    r!   r
   
isinstancer,   titlesubtitleauthorssectionman_make_section_directoryr   outdirinfor   r   get_doctreesetr   resolve_referencesfindallr   pending_xrefreplace_selfchildrenwrite)r#   r3   	docwriterdocsettingsrO   r+   namedescriptionrK   rL   dirname
targetnamedestinationtreedocnames	largetreependingnodes                    r$   write_documentsz!ManualPageBuilder.write_documents6   s   $T**	$&& 	# 	##H7IJJJJ  ,*%<"&      ! ""	 		# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# K) ,	4 ,	4D;?8GT;dh///PQQ   '3'' ! !&iGG G $K#.K ")K")K{5 1!G+$+/000 '::$::::

 $00w00
KK:!6!6777$!%z!9   K
 8''00D!$H+hy7) I "-IKK4K(((H''	7DAAA(001FGG ? ?(()=>>>>OOI{3333Y,	4 ,	4s   AA::A>A>c                    d S Nr)   r"   s    r$   finishzManualPageBuilder.finishq   s    r&   )r   r   )r   r'   re   )r+   r,   r-   r.   r   r,   )r3   r4   r   r   )__name__
__module____qualname____doc__rZ   formatr
   epilogr   default_translator_classr   __annotations__r%   r*   r1   r   rc   rf   r)   r&   r$   r   r       s         44DFR566F3')))))           bbmm$$84 84 84 %$84t     r&   r   r   r   r   *list[tuple[str, str, str, list[str], int]]c                n    t          | j                  }| j        || j         d| j         | j        gdfgS )z"Better default man_pages settings.    )r   projectroot_docreleaseauthor)r   filenames     r$   default_man_pagesrx   u   sI    )&.99H O~0000]O	
 r&   appr   r   c           	     `   |                      t                     |                     dt          dt	          t
          t          h                     |                     dddt	          t          h                     |                     dddt	          t          h                     dddd	S )
Nr   r0   )typesman_show_urlsFrM   builtinT)versionparallel_read_safeparallel_write_safe)add_builderr   add_config_valuerx   	frozensetlisttuplebool)ry   s    r$   setupr      s    OO%&&&&)T5M2J2J     %9dV;L;LMMM$eRy$7H7H    
 "#  r&   )r   r   r   ro   )ry   r   r   r   )-rj   
__future__r   r@   typingr   docutils.frontendr   docutils.ior   sphinxr   sphinx._cli.util.colourr   sphinx.buildersr	   sphinx.localer
   sphinx.utilr   sphinx.util.displayr   sphinx.util.nodesr   sphinx.util.osutilr   r   sphinx.writers.manpager   r   collections.abcr   r   sphinx.applicationr   sphinx.configr   sphinx.util.typingr   	getLoggerrg   r    r   rx   r   r)   r&   r$   <module>r      s     " " " " " "              * * * * * * " " " " " "       - - - - - - # # # # # #             0 0 0 0 0 0 1 1 1 1 1 1 D D D D D D D D I I I I I I I I 5######))))))$$$$$$444444		8	$	$R R R R R R R Rj        r&   