
    Ri=                    J   d 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 er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	jB                        Z" G d d      Z# G d dee	jH                        Z%y)z5Manual page writer, extended for Sphinx custom nodes.    )annotations)TYPE_CHECKINGcast)nodes)manpage)addnodes)_admonitionlabels)logging)SphinxTranslator)format_date)NodeMatcher)Iterable)Any)Element)Builderc                  (     e Zd Zd fdZddZ xZS )ManualPageWriterc                0    t         |           || _        y N)super__init__builder)selfr   	__class__s     N/home/agent/.friday_env/lib/python3.12/site-packages/sphinx/writers/manpage.pyr   zManualPageWriter.__init__   s        c                `   | j                   J t        | j                         }|j                          | j                  j	                  | j                   | j                        }t        d|      | _        | j                   j                  |       | j                  j                         | _	        y )NManualPageTranslator)
documentNestedInlineTransformapplyr   create_translatorr   visitor	walkaboutastextoutput)r   	transformr$   s      r   	translatezManualPageWriter.translate!   s}    }}((()$--8	,,00M2G<(ll))+r   )r   r   returnNone)r*   r+   )__name__
__module____qualname__r   r)   __classcell__r   s   @r   r   r      s    ,r   r   c                       e Zd ZdZddZddZy)r!   zFlatten nested inline nodes:

    Before:
        <strong>foo=<emphasis>1</emphasis>
        &bar=<emphasis>2</emphasis></strong>
    After:
        <strong>foo=</strong><emphasis>var</emphasis>
        <strong>&bar=</strong><emphasis>2</emphasis>
    c                    || _         y r   )r    )r   r    s     r   r   zNestedInlineTransform.__init__6   s	     r   c                   t        t        j                  t        j                  t        j                        t        j                  | j                              D ]  }t        fd|D              s|j                  j                  |      }t        t        |            D ]y  }|j                  |        |      r |j                  j                  |dz   |       < |j                  dd|fi |j                  }|j                  j                  |dz   |       { t!        |      r|j                  j                  |        y )Nc              3  .   K   | ]  } |        y wr    ).0subnodematchers     r   	<genexpr>z.NestedInlineTransform.apply.<locals>.<genexpr><   s     877#8s       )r   r   literalemphasisstronglistfindallr    anyparentindexreversedremoveinsertr   
attributeslen)r   kwargsnodeposr7   newnoder8   s         @r   r"   zNestedInlineTransform.apply9   s    emmU^^U\\J78 	-D8488kk''-'T
3 =GKK(w'**37G<"0$..R"TDOO"T**37G<= 4yKK&&t,	-r   N)r    nodes.documentr*   r+   )rI   r   r*   r+   )r,   r-   r.   __doc__r   r"   r5   r   r   r!   r!   +   s    !-r   r!   c                      e Zd ZU dZi Zded<   dZ fdZd[dZd\dZd\dZ	d]dZ
d]d	Zd^d
Zd^dZd\dZd\dZd_dZd_dZd\dZd\dZd\dZd\dZd\dZd\dZd\dZd\dZd\dZd\dZd\dZd\dZd\dZd\dZd\dZ d\dZ!d\d Z"d\d!Z#d\d"Z$d\d#Z%d\d$Z&d\d%Z'd`d&Z(d`d'Z)d^ fd(Z*d\d)Z+da fd*Z,d\d+Z-d\d,Z.dbd-Z/dbd.Z0d\d/Z1d\d0Z2d\d1Z3d\d2Z4d\d3Z5dcd4Z6d\d5Z7d\d6Z8d\d7Z9d\d8Z:d\d9Z;d\d:Z<d\d;Z=d\d<Z>d\d=Z?d\d>Z@d\d?ZAd\d@ZBd\dAZCdddBZDdddCZEd\dDZFd\dEZGdedFZHdedGZIdfdHZJdfdIZKd\dJZLd\dKZMdfdLZNdfdMZOdg fdNZPdg fdOZQdh fdPZRdh fdQZSd\dRZTd\dSZUd\dTZVd\dUZWdidVZXdidWZYdjdXZZdjdYZ[ xZ\S )kr   zCustom man page translator.zdict[str, Any]_docinfoc                <   t         |   ||       d| _        | j                  j                  | j
                  d<   | j                  j                  | j
                  d<   | j                  j                  r#| j                  j                  | j
                  d<   | j                  j                  | j
                  d<   | j
                  d   j                         | j
                  d<   | j                  j                  r$| j                  j                  | j
                  d<   nQ| j                  j                  xs t        d      }t        || j                  j                  	      | j
                  d<   | j                  j                   | j
                  d
<   | j                  j"                  | j
                  d<   | j                  j$                  | j
                  d<   t'        j(                         D ]-  \  }}| j+                  |      | j                  j,                  |<   / y )Ntitlesubtitleauthormanual_sectiontitle_upperdatez	%b %d, %Y)language	copyrightversionmanual_group)r   r   section_levelsettingsrS   rP   rT   authorssectionupperconfigtoday	today_fmtr	   r   rY   rZ   r[   projectr
   items	deunicodelabels)r   r    r   rd   labeltranslationr   s         r   r   zManualPageTranslator.__init__O   s   7+   "&!4!4g$(MM$:$:j!==  &*mm&;&;DMM(#*.--*?*?&' (,}}W'='C'C'Em$;;$(KK$5$5DMM&!--?;I$/DKK$8$8%DMM&! &*[[%:%:k"#';;#6#6i (,(;(;n% #3"8"8": 	FE;*...*EDMM  '	Fr   c                L    d}| j                   d   r|dz  }|| j                   z  S )NzW.TH "%(title_upper)s" "%(manual_section)s" "%(date)s" "%(version)s" "%(manual_group)s"
rT   z#.SH NAME
%(title)s \- %(subtitle)s
)rP   )r   tmpls     r   headerzManualPageTranslator.headero   s4    = 	 ==$<<Ddmm##r   c                     y r   r5   r   rJ   s     r   visit_start_of_filez(ManualPageTranslator.visit_start_of_filex       r   c                     y r   r5   ro   s     r   depart_start_of_filez)ManualPageTranslator.depart_start_of_file{   rq   r   c                &    | j                  |       y r   )visit_definition_listro   s     r   
visit_desczManualPageTranslator.visit_desc       ""4(r   c                &    | j                  |       y r   )depart_definition_listro   s     r   depart_descz ManualPageTranslator.depart_desc   s    ##D)r   c                H    | j                  |       | j                  |       y r   )visit_definition_list_item
visit_termro   s     r   visit_desc_signaturez)ManualPageTranslator.visit_desc_signature   s    ''-r   c                &    | j                  |       y r   )depart_termro   s     r   depart_desc_signaturez*ManualPageTranslator.depart_desc_signature   s    r   c                     y r   r5   ro   s     r   visit_desc_signature_linez.ManualPageTranslator.visit_desc_signature_line   rq   r   c                :    | j                   j                  d       y )N bodyappendro   s     r   depart_desc_signature_linez/ManualPageTranslator.depart_desc_signature_line       		r   c                &    | j                  |       y r   )visit_definitionro   s     r   visit_desc_contentz'ManualPageTranslator.visit_desc_content       d#r   c                &    | j                  |       y r   )depart_definitionro   s     r   depart_desc_contentz(ManualPageTranslator.depart_desc_content       t$r   c                     y r   r5   ro   s     r   visit_desc_inlinez&ManualPageTranslator.visit_desc_inline   rq   r   c                     y r   r5   ro   s     r   depart_desc_inlinez'ManualPageTranslator.depart_desc_inline   rq   r   c                     y r   r5   ro   s     r   visit_desc_namez$ManualPageTranslator.visit_desc_name   rq   r   c                     y r   r5   ro   s     r   depart_desc_namez%ManualPageTranslator.depart_desc_name   rq   r   c                     y r   r5   ro   s     r   visit_desc_addnamez'ManualPageTranslator.visit_desc_addname   rq   r   c                     y r   r5   ro   s     r   depart_desc_addnamez(ManualPageTranslator.depart_desc_addname   rq   r   c                     y r   r5   ro   s     r   visit_desc_typez$ManualPageTranslator.visit_desc_type   rq   r   c                     y r   r5   ro   s     r   depart_desc_typez%ManualPageTranslator.depart_desc_type   rq   r   c                :    | j                   j                  d       y )Nz -> r   ro   s     r   visit_desc_returnsz'ManualPageTranslator.visit_desc_returns   s    		 r   c                     y r   r5   ro   s     r   depart_desc_returnsz(ManualPageTranslator.depart_desc_returns   rq   r   c                H    | j                   j                  d       d| _        y )N(r:   r   r   first_paramro   s     r   visit_desc_parameterlistz-ManualPageTranslator.visit_desc_parameterlist       		r   c                :    | j                   j                  d       y )N)r   ro   s     r   depart_desc_parameterlistz.ManualPageTranslator.depart_desc_parameterlist   r   r   c                H    | j                   j                  d       d| _        y )N[r:   r   ro   s     r   visit_desc_type_parameter_listz3ManualPageTranslator.visit_desc_type_parameter_list   r   r   c                :    | j                   j                  d       y N]r   ro   s     r   depart_desc_type_parameter_listz4ManualPageTranslator.depart_desc_type_parameter_list   r   r   c                b    | j                   s| j                  j                  d       y d| _         y )N, r   )r   r   r   ro   s     r   visit_desc_parameterz)ManualPageTranslator.visit_desc_parameter   s%    IIT" Dr   c                     y r   r5   ro   s     r   depart_desc_parameterz*ManualPageTranslator.depart_desc_parameter   rq   r   c                &    | j                  |       y r   )r   ro   s     r   visit_desc_type_parameterz.ManualPageTranslator.visit_desc_type_parameter   s    !!$'r   c                &    | j                  |       y r   )r   ro   s     r   depart_desc_type_parameterz/ManualPageTranslator.depart_desc_type_parameter   rw   r   c                :    | j                   j                  d       y )Nr   r   ro   s     r   visit_desc_optionalz(ManualPageTranslator.visit_desc_optional   r   r   c                :    | j                   j                  d       y r   r   ro   s     r   depart_desc_optionalz)ManualPageTranslator.depart_desc_optional   r   r   c                     y r   r5   ro   s     r   visit_desc_annotationz*ManualPageTranslator.visit_desc_annotation   rq   r   c                     y r   r5   ro   s     r   depart_desc_annotationz+ManualPageTranslator.depart_desc_annotation   rq   r   c                &    | j                  |       y r   )visit_paragraphro   s     r   visit_versionmodifiedz*ManualPageTranslator.visit_versionmodified       T"r   c                &    | j                  |       y r   )depart_paragraphro   s     r   depart_versionmodifiedz+ManualPageTranslator.depart_versionmodified   r   r   c                    t        |j                  t        j                              r| j                  j                  d       y t        |   |       y N
)rA   r@   r   r>   r   r   r   r}   r   rJ   r   s     r   r}   zManualPageTranslator.visit_term   s7    t||ELL)*IIT"Gt$r   c                "    t         j                  r   r   SkipNodero   s     r   visit_commentz"ManualPageTranslator.visit_comment       nnr   c                D    | j                          t        | 	  |       y r   )
ensure_eolr   visit_footnoter   s     r   r   z#ManualPageTranslator.visit_footnote   s    t$r   c                h   | j                          t        |      dk(  ry|j                         dt        d      hv r\| j                  j                  d| j                  |j                               j                         z   dz          t        j                  | j                  j                  d       y )Nr:   	Footnotes.SH r   .sp
)
r   rH   r&   r	   r   r   rg   ra   r   r   ro   s     r   visit_rubricz!ManualPageTranslator.visit_rubric  s}    t9>dkkmQ{^/LLIIVdnnT[[]&C&I&I&KKdRS.. 		!r   c                :    | j                   j                  d       y r   r   ro   s     r   depart_rubricz"ManualPageTranslator.depart_rubric  s    		r   c                (    | j                  |d       y )Nseealso)visit_admonitionro   s     r   visit_seealsoz"ManualPageTranslator.visit_seealso  s    dI.r   c                &    | j                  |       y r   )depart_admonitionro   s     r   depart_seealsoz#ManualPageTranslator.depart_seealso  r   r   c                Z    | j                          | j                  j                  d       y )Nz.sp
.nf
r   r   r   ro   s     r   visit_productionlistz)ManualPageTranslator.visit_productionlist      		&r   c                :    | j                   j                  d       y )Nz
.fi
r   ro   s     r   depart_productionlistz*ManualPageTranslator.depart_productionlist  s    		#r   c                     y r   r5   ro   s     r   visit_productionz%ManualPageTranslator.visit_production  rq   r   c                     y r   r5   ro   s     r   depart_productionz&ManualPageTranslator.depart_production  rq   r   c                    d|j                   v r-| j                  j                  t        d      |d   z  dz          | j                  j                  t        d      dz          t        j
                  )Naltz[image: %s]r   z[image])rG   r   r   r	   r   r   ro   s     r   visit_imagez ManualPageTranslator.visit_image  sX    DOO#IIQ}-U;dBC		9,-nnr   c                   |j                  dd      }|j                  d      }|r| j                  j                  d| d       | j                  j                  | j                  d   d          | j                  |       | j                  j                  | j                  d   d          |r|j                  d	      sz| j                  j                  rd|j                         |k7  rQ|j                  d
      }| j                  j                  d| j                  d   d   || j                  d   d   dg       |r| j                  j                  d       t        j                  )Nrefurir;   )mailto:zhttp:zhttps:zftp:z\X'tty: link '	referencer   r:   #r   z <r>   >z\X'tty: link')get
startswithr   r   defs
visit_Textrb   man_show_urlsr&   removeprefixextendr   r   )r   rJ   uriis_safe_to_clicks       r   visit_referencez$ManualPageTranslator.visit_reference&  s*   hhx$>>*PQIIcU!45		;/23 			;/23s~~c*{{((T[[]c-A&&y1		  IIh'*IIh'*"  II-.nnr   c                    t        j                  |j                  dd            }| j                  |       t         j                  )NrS   r   )r   Textr   r   r   )r   rJ   texts      r   visit_number_referencez+ManualPageTranslator.visit_number_referenceC  s1    zz$((7C01nnr   c                Z    | j                          | j                  j                  d       y )Nz.sp
.ce
r   ro   s     r   visit_centeredz#ManualPageTranslator.visit_centeredH  r   r   c                :    | j                   j                  d       y )Nz
.ce 0
r   ro   s     r   depart_centeredz$ManualPageTranslator.depart_centeredL  s    		%r   c                     y r   r5   ro   s     r   visit_compact_paragraphz,ManualPageTranslator.visit_compact_paragraphO  rq   r   c                     y r   r5   ro   s     r   depart_compact_paragraphz-ManualPageTranslator.depart_compact_paragraphR  rq   r   c                     y r   r5   ro   s     r   visit_download_referencez-ManualPageTranslator.visit_download_referenceU  rq   r   c                     y r   r5   ro   s     r   depart_download_referencez.ManualPageTranslator.depart_download_referenceX  rq   r   c                "    t         j                  r   r   ro   s     r   visit_toctreez"ManualPageTranslator.visit_toctree[  r   r   c                "    t         j                  r   r   ro   s     r   visit_indexz ManualPageTranslator.visit_index^  r   r   c                "    t         j                  r   r   ro   s     r   visit_tabular_col_specz+ManualPageTranslator.visit_tabular_col_speca  r   r   c                     y r   r5   ro   s     r   visit_glossaryz#ManualPageTranslator.visit_glossaryd  rq   r   c                     y r   r5   ro   s     r   depart_glossaryz$ManualPageTranslator.depart_glossaryg  rq   r   c                L   t        d|d         }t        d|      }| j                          t        d|d         }t        d|      }| j                  j                  dj	                  d |D              dz          | j                  j                  d       t
        j                  )Nnodes.bullet_listr   zIterable[nodes.list_item]r   c              3  <   K   | ]  }|j                           y wr   )r&   )r6   ns     r   r9   z2ManualPageTranslator.visit_acks.<locals>.<genexpr>p  s     "B!188:"Bs   .r   )r   r   r   r   joinr   r   )r   rJ   bullet_list
list_itemss       r   
visit_ackszManualPageTranslator.visit_acksj  s    .Q85{C
.Q85{C
		"Bz"BBSHI		nnr   c                &    | j                  |       y r   )visit_bullet_listro   s     r   visit_hlistz ManualPageTranslator.visit_hlistt  r   r   c                &    | j                  |       y r   )depart_bullet_listro   s     r   depart_hlistz!ManualPageTranslator.depart_hlistw  s    %r   c                     y r   r5   ro   s     r   visit_hlistcolz#ManualPageTranslator.visit_hlistcolz  rq   r   c                     y r   r5   ro   s     r   depart_hlistcolz$ManualPageTranslator.depart_hlistcol}  rq   r   c                $    | j                  |      S r   )visit_emphasisro   s     r   visit_literal_emphasisz+ManualPageTranslator.visit_literal_emphasis  s    ""4((r   c                $    | j                  |      S r   )depart_emphasisro   s     r   depart_literal_emphasisz,ManualPageTranslator.depart_literal_emphasis  s    ##D))r   c                $    | j                  |      S r   visit_strongro   s     r   visit_literal_strongz)ManualPageTranslator.visit_literal_strong        &&r   c                $    | j                  |      S r   depart_strongro   s     r   depart_literal_strongz*ManualPageTranslator.depart_literal_strong      !!$''r   c                     y r   r5   ro   s     r   visit_abbreviationz'ManualPageTranslator.visit_abbreviation  rq   r   c                     y r   r5   ro   s     r   depart_abbreviationz(ManualPageTranslator.depart_abbreviation  rq   r   c                $    | j                  |      S r   r;  ro   s     r   visit_manpagez"ManualPageTranslator.visit_manpage  r>  r   c                $    | j                  |      S r   r@  ro   s     r   depart_manpagez#ManualPageTranslator.depart_manpage  rC  r   c                    t        |j                  t        j                        r7|j                  j	                  d      r| j
                  j                  d       y t        | !  |       y )Nliteral_blockr   )	
isinstancerB   r   	containerr   r   r   r   visit_captionr   s     r   rP  z"ManualPageTranslator.visit_caption  sD    t{{EOO40IIW%G!$'r   c                    t        |j                  t        j                        r7|j                  j	                  d      r| j
                  j                  d       y t        | !  |       y )NrM  r   )	rN  rB   r   rO  r   r   r   r   depart_captionr   s     r   rR  z#ManualPageTranslator.depart_caption  sD    t{{EOO40IIT"G"4(r   c                   t        |j                  t        j                        r| j                  j                  d       y t        |j                  t        j                        r| j                  dk(  rt        j                  | j                  dk(  rZ| j                  j                  d| j                  |j                         j                                d       t        j                  t        | 9  |      S )Nz.IP "r   r:   r   r   )rN  rB   r   r   r   r   r   r`   r]   r   rg   r&   ra   r   visit_titler   s     r   rT  z ManualPageTranslator.visit_title  s    dkk8#3#34IIW%U]]3!!Q&nn$##q(		  4t{{}7J7J7L(M'Nb!QRnn$w"4((r   c                    t        |j                  t        j                        r| j                  j                  d       y t        |   |      S )Nz"
)rN  rB   r   r   r   r   r   depart_titler   s     r   rV  z!ManualPageTranslator.depart_title  s<    dkk8#3#34IIU#w#D))r   c                    d|j                  dd      j                         v r)| j                  j                  |j	                                t
        j                  )Nr   formatr;   )r   splitr   r   r&   r   r   ro   s     r   	visit_rawzManualPageTranslator.visit_raw  s@    2.4466IIT[[]+nnr   c                "    t         j                  r   r   ro   s     r   
visit_metazManualPageTranslator.visit_meta  r   r   c                     y r   r5   ro   s     r   visit_inlinez!ManualPageTranslator.visit_inline  rq   r   c                     y r   r5   ro   s     r   depart_inlinez"ManualPageTranslator.depart_inline  rq   r   c                     y r   r5   ro   s     r   
visit_mathzManualPageTranslator.visit_math  rq   r   c                     y r   r5   ro   s     r   depart_mathz ManualPageTranslator.depart_math  rq   r   c                &    | j                  |       y r   )r  ro   s     r   visit_math_blockz%ManualPageTranslator.visit_math_block  s    D!r   c                &    | j                  |       y r   )r  ro   s     r   depart_math_blockz&ManualPageTranslator.depart_math_block  r   r   )r    rM   r   r   r*   r+   )r*   str)rJ   r   r*   r+   )rJ   znodes.definition_listr*   r+   )rJ   z
nodes.termr*   r+   )rJ   znodes.definitionr*   r+   )rJ   znodes.paragraphr*   r+   )rJ   znodes.footnoter*   r+   )rJ   znodes.admonitionr*   r+   )rJ   znodes.referencer*   r+   )rJ   r"  r*   r+   )rJ   znodes.emphasisr*   r+   )rJ   znodes.strongr*   r+   )rJ   znodes.captionr*   r+   )rJ   znodes.titler*   r+   )rJ   z
nodes.mathr*   r+   )rJ   znodes.math_blockr*   r+   )]r,   r-   r.   rN   rP   __annotations__r   rm   rp   rs   rv   rz   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r}   r   r   r   r   r   r   r   r   r   r   r   r  r
  r  r  r  r  r  r  r  r  r  r  r   r)  r,  r/  r1  r3  r6  r9  r=  rB  rE  rG  rI  rK  rP  rR  rT  rV  rZ  r\  r^  r`  rb  rd  rf  rh  r/   r0   s   @r   r   r   J   s   %!Hn!F@$)*$%!!()
#$%%
"/%'$:
'&%&)*'('(())*
"#r   r   N)&rN   
__future__r   typingr   r   docutilsr   docutils.writersr   sphinxr   sphinx.localer	   r
   sphinx.utilr   sphinx.util.docutilsr   sphinx.util.i18nr   sphinx.util.nodesr   collections.abcr   r   docutils.nodesr   sphinx.buildersr   	getLoggerr,   loggerWriterr   r!   
Translatorr   r5   r   r   <module>r|     sx    ; " &  $  -  1 ( )(&'			8	$,w~~ ,- ->M#+W-?-? M#r   