
    7 f>                    6   d 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
 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  ej         e!          Z" G d de          Z# G d d          Z$ G d dee          Z%dS )z5Manual page writer, extended for Sphinx custom nodes.    )annotations)Iterable)TYPE_CHECKINGAnycast)nodes)
Translator)Writer)addnodes)_admonitionlabels)logging)SphinxTranslator)format_date)NodeMatcher)Element)Builderc                  (     e Zd Zd fdZddZ xZS )	ManualPageWriterbuilderr   returnNonec                V    t                                                       || _        d S N)super__init__r   )selfr   	__class__s     L/var/www/equiseq/venv/lib/python3.11/site-packages/sphinx/writers/manpage.pyr   zManualPageWriter.__init__   s$        c                D   t          | j                  }|                                 | j                            | j        | j                  }t          t          |          | _        | j                            |           | j        	                                | _
        d S r   )NestedInlineTransformdocumentapplyr   create_translatorr   ManualPageTranslatorvisitor	walkaboutastextoutput)r   	transformr'   s      r   	translatezManualPageWriter.translate    s}    )$-88	,00MM0'::(((l))++r    )r   r   r   r   )r   r   )__name__
__module____qualname__r   r,   __classcell__r   s   @r   r   r      sQ             , , , , , , , ,r    r   c                  "    e Zd ZdZddZdd	Zd
S )r"   a  
    Flatten 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>
    r#   nodes.documentr   r   c                    || _         d S r   )r#   )r   r#   s     r   r   zNestedInlineTransform.__init__4   s     r    kwargsr   c                   t          t          j        t          j        t          j                  t          | j                                                D ]}t          fd|D                       r|j	        
                    |          }t          t          |                    D ]t}|                    |            |          r|j	                            |dz   |           A |j        dd|fi |j        }|j	                            |dz   |           ut!          |          s|j	                            |           d S )Nc              3  .   K   | ]} |          V  d S r    ).0subnodematchers     r   	<genexpr>z.NestedInlineTransform.apply.<locals>.<genexpr>:   s-      88777##888888r        )r   r   literalemphasisstronglistr#   findallanyparentindexreversedremoveinsertr   
attributeslen)r   r5   nodeposr:   newnoder;   s         @r   r$   zNestedInlineTransform.apply7   sH   emU^U\JJ..w7788 	- 	-D8888488888 -k''--'T

33 = =GKK(((ww'' =**37G<<<<"0$.R"T"TDO"T"T**37G<<<<4yy -K&&t,,,	- 	-r    N)r#   r3   r   r   )r5   r   r   r   )r-   r.   r/   __doc__r   r$   r8   r    r   r"   r"   )   sF        	 	! ! ! !- - - - - -r    r"   c                      e Zd ZU dZi Zded<   db fd
ZdcdZdddZdddZ	dddZ
dddZdddZdddZdddZdddZdddZdddZdddZdddZdddZdddZdddZdddZdddZddd Zddd!Zddd"Zddd#Zddd$Zddd%Zddd&Zddd'Z ddd(Z!ddd)Z"ddd*Z#ddd+Z$ddd,Z%ddd-Z&ddd.Z'ddd/Z(ddd0Z)dd fd1Z*ddd2Z+dd fd3Z,ddd4Z-ddd5Z.ddd6Z/ddd7Z0ddd8Z1ddd9Z2ddd:Z3ddd;Z4ddd<Z5ddd=Z6ddd>Z7ddd?Z8ddd@Z9dddAZ:dddBZ;dddCZ<dddDZ=dddEZ>dddFZ?dddGZ@dddHZAdddIZBdddJZCdddKZDdddLZEdddMZFdddNZGdddOZHdddPZIdddQZJdddRZKdddSZLdddTZMdddUZNdd fdVZOdd fdWZPdd fdXZQdd fdYZRdddZZSddd[ZTddd\ZUddd]ZVddd^ZWddd_ZXddd`ZYdddaZZ xZ[S )er&   z%
    Custom man page translator.
    zdict[str, Any]_docinfor#   r3   r   r   r   r   c                   t                                          ||           d| _        d| _        | j        j        | j        d<   | j        j        | j        d<   | j        j        r| j        j        | j        d<   | j        j	        | j        d<   | j        d         
                                | j        d<   | j        j        r| j        j        | j        d<   n<t          | j        j        pt          d	          | j        j        
          | j        d<   | j        j        | j        d<   | j        j        | j        d<   | j        j        | j        d<   t)          j                    D ]'\  }}|                     |          | j        j        |<   (d S )Nr   titlesubtitleauthormanual_sectiontitle_upperdatez	%b %d, %Y)language	copyrightversionmanual_group)r   r   in_productionlistsection_levelsettingsrT   rQ   rU   authorssectionupperconfigtodayr   	today_fmtr   rZ   r[   r\   projectr   items	deunicodelabels)r   r#   r   labeltranslationr   s        r   r   zManualPageTranslator.__init__O   s|   7+++!"   "&!4g$(M$:j!=  	<&*m&;DM(#*.-*?&' (,}W'='C'C'E'Em$; 	O$(K$5DM&!!$/0E0W;9=9M%O %O %ODM&!%)[%:k"#';#6i (,(;n% #3"8":": 	F 	FE;*...*E*EDM ''	F 	Fr    strc                >    d}| j         d         r|dz  }|| j         z  S )NzW.TH "%(title_upper)s" "%(manual_section)s" "%(date)s" "%(version)s" "%(manual_group)s"
rU   z#.SH NAME
%(title)s \- %(subtitle)s
)rQ   )r   tmpls     r   headerzManualPageTranslator.headero   s5    G=$ 	5 4 5Ddm##r    rL   r   c                    d S r   r8   r   rL   s     r   visit_start_of_filez(ManualPageTranslator.visit_start_of_filew       r    c                    d S r   r8   rr   s     r   depart_start_of_filez)ManualPageTranslator.depart_start_of_filez   rt   r    c                0    |                      |           d S r   )visit_definition_listrr   s     r   
visit_desczManualPageTranslator.visit_desc       ""4(((((r    c                0    |                      |           d S r   )depart_definition_listrr   s     r   depart_descz ManualPageTranslator.depart_desc   s    ##D)))))r    c                Z    |                      |           |                     |           d S r   )visit_definition_list_item
visit_termrr   s     r   visit_desc_signaturez)ManualPageTranslator.visit_desc_signature   s.    ''---r    c                0    |                      |           d S r   )depart_termrr   s     r   depart_desc_signaturez*ManualPageTranslator.depart_desc_signature   s    r    c                    d S r   r8   rr   s     r   visit_desc_signature_linez.ManualPageTranslator.visit_desc_signature_line   rt   r    c                :    | j                             d           d S )N bodyappendrr   s     r   depart_desc_signature_linez/ManualPageTranslator.depart_desc_signature_line       	r    c                0    |                      |           d S r   )visit_definitionrr   s     r   visit_desc_contentz'ManualPageTranslator.visit_desc_content       d#####r    c                0    |                      |           d S r   )depart_definitionrr   s     r   depart_desc_contentz(ManualPageTranslator.depart_desc_content       t$$$$$r    c                    d S r   r8   rr   s     r   visit_desc_inlinez&ManualPageTranslator.visit_desc_inline   rt   r    c                    d S r   r8   rr   s     r   depart_desc_inlinez'ManualPageTranslator.depart_desc_inline   rt   r    c                    d S r   r8   rr   s     r   visit_desc_namez$ManualPageTranslator.visit_desc_name   rt   r    c                    d S r   r8   rr   s     r   depart_desc_namez%ManualPageTranslator.depart_desc_name   rt   r    c                    d S r   r8   rr   s     r   visit_desc_addnamez'ManualPageTranslator.visit_desc_addname   rt   r    c                    d S r   r8   rr   s     r   depart_desc_addnamez(ManualPageTranslator.depart_desc_addname   rt   r    c                    d S r   r8   rr   s     r   visit_desc_typez$ManualPageTranslator.visit_desc_type   rt   r    c                    d S r   r8   rr   s     r   depart_desc_typez%ManualPageTranslator.depart_desc_type   rt   r    c                :    | j                             d           d S )Nz -> r   rr   s     r   visit_desc_returnsz'ManualPageTranslator.visit_desc_returns   s    	     r    c                    d S r   r8   rr   s     r   depart_desc_returnsz(ManualPageTranslator.depart_desc_returns   rt   r    c                H    | j                             d           d| _        d S )N(r=   r   r   first_paramrr   s     r   visit_desc_parameterlistz-ManualPageTranslator.visit_desc_parameterlist   &    	r    c                :    | j                             d           d S )N)r   rr   s     r   depart_desc_parameterlistz.ManualPageTranslator.depart_desc_parameterlist   r   r    c                H    | j                             d           d| _        d S )N[r=   r   rr   s     r   visit_desc_type_parameter_listz3ManualPageTranslator.visit_desc_type_parameter_list   r   r    c                :    | j                             d           d S N]r   rr   s     r   depart_desc_type_parameter_listz4ManualPageTranslator.depart_desc_type_parameter_list   r   r    c                Z    | j         s| j                            d           d S d| _         d S )N, r   )r   r   r   rr   s     r   visit_desc_parameterz)ManualPageTranslator.visit_desc_parameter   s7     	!IT""""" Dr    c                    d S r   r8   rr   s     r   depart_desc_parameterz*ManualPageTranslator.depart_desc_parameter   rt   r    c                0    |                      |           d S r   )r   rr   s     r   visit_desc_type_parameterz.ManualPageTranslator.visit_desc_type_parameter   s    !!$'''''r    c                0    |                      |           d S r   )r   rr   s     r   depart_desc_type_parameterz/ManualPageTranslator.depart_desc_type_parameter   rz   r    c                :    | j                             d           d S )Nr   r   rr   s     r   visit_desc_optionalz(ManualPageTranslator.visit_desc_optional   r   r    c                :    | j                             d           d S r   r   rr   s     r   depart_desc_optionalz)ManualPageTranslator.depart_desc_optional   r   r    c                    d S r   r8   rr   s     r   visit_desc_annotationz*ManualPageTranslator.visit_desc_annotation   rt   r    c                    d S r   r8   rr   s     r   depart_desc_annotationz+ManualPageTranslator.depart_desc_annotation   rt   r    c                0    |                      |           d S r   )visit_paragraphrr   s     r   visit_versionmodifiedz*ManualPageTranslator.visit_versionmodified       T"""""r    c                0    |                      |           d S r   )depart_paragraphrr   s     r   depart_versionmodifiedz+ManualPageTranslator.depart_versionmodified   r   r    c                    t          |                    t          j                            r| j                            d           d S t                                          |           d S N
)rD   rC   r   rA   r   r   r   r   r   rL   r   s     r   r   zManualPageTranslator.visit_term   s[    t||EL))** 	%IT"""""GGt$$$$$r    c                    t           j        r   r   SkipNoderr   s     r   visit_commentz"ManualPageTranslator.visit_comment   
    nr    c                r    |                                   t                                          |           d S r   )
ensure_eolr   visit_footnoter   s     r   r   z#ManualPageTranslator.visit_footnote   s1    t$$$$$r    c                   |                                   t          |          dk    r|                                dt          d          fv rc| j                            d|                     |                                                                          z   dz              t          j	        | j                            d           d S )Nr=   	Footnotesz.SH r   .sp
)
r   rK   r)   r   r   r   ri   rc   r   r   rr   s     r   visit_rubricz!ManualPageTranslator.visit_rubric   s    t99>>dkkmmQ{^^/LLLIVdnnT[[]]&C&C&I&I&K&KKdRSSS. 	!!!!!r    c                :    | j                             d           d S r   r   rr   s     r   depart_rubricz"ManualPageTranslator.depart_rubric  s    	r    c                2    |                      |d           d S )Nseealso)visit_admonitionrr   s     r   visit_seealsoz"ManualPageTranslator.visit_seealso
  s    dI.....r    c                0    |                      |           d S r   )depart_admonitionrr   s     r   depart_seealsoz#ManualPageTranslator.depart_seealso  r   r    c                   |                                   g }| xj        dz  c_        | j                            d           t	          t
          t          j                 |          }|D ]}|                    |d                    t          d |D                       }d }|D ]"}|d         r|d         	                    |          }| j                            | j
        d         d                    | j                            |                     |                     | j                            | j
        d         d                    | j                            d           n/|-| j                            dd	t          |          z  z             |                    |            | j                            d
           $| j                            d           | xj        dz  c_        t          j        )Nr=   z.sp
.nf
	tokennamec              3  4   K   | ]}t          |          V  d S r   )rK   )r9   names     r   r<   z<ManualPageTranslator.visit_productionlist.<locals>.<genexpr>  s(      114SYY111111r    rA   r   z ::= z%s     r   r   z
.fi
)r   r^   r   r   r   r   r   
productionmaxljustdefsri   rK   r(   r   r   )r   rL   namesproductionlistr   maxlenlastnames          r   visit_productionlistz)ManualPageTranslator.visit_productionlist  s   !#	&&&hx':;TBB( 	2 	2JLLK0111111511111( 
	# 
	#J+& D%k288@@	  8!4Q!7888	  !9!9:::	  8!4Q!7888	  ))))%	  cCMM.A!BCCC  &&&IT""""	###!#nr    c                    d S r   r8   rr   s     r   visit_productionz%ManualPageTranslator.visit_production)  rt   r    c                    d S r   r8   rr   s     r   depart_productionz&ManualPageTranslator.depart_production,  rt   r    c                    d|j         v r3| j                            t          d          |d         z  dz              | j                            t          d          dz              t          j        )Naltz[image: %s]r   z[image])rJ   r   r   r   r   r   rr   s     r   visit_imagez ManualPageTranslator.visit_image0  sd    DO##IQ}--U;dBCCC	9,---nr    c                N   | j                             | j        d         d                    |                     |           | j                             | j        d         d                    |                    dd          }|                    d          r| j        j        rx|                                |k    r`|                    d          r
|dd          }| j         	                    d	| j        d
         d         || j        d
         d         dg           t          j        )N	referencer   r=   refurir>   )mailto:zhttp:zhttps:zftp:r     z <rA   >)r   r   r   
visit_Textget
startswithrd   man_show_urlsr)   extendr   r   )r   rL   uris      r   visit_referencez$ManualPageTranslator.visit_reference7  s   	;/2333 		;/2333hhx$$>>@AA 	{( T[[]]c-A-A>>),, "abb'C	  Ih'*C81DQ1G"    nr    c                    t          j        |                    dd                    }|                     |           t           j        )NrT   #)r   Textr  r  r   )r   rL   texts      r   visit_number_referencez+ManualPageTranslator.visit_number_referenceJ  s9    z$((7C0011nr    c                b    |                                   | j                            d           d S )Nz.sp
.ce
)r   r   r   rr   s     r   visit_centeredz#ManualPageTranslator.visit_centeredO  s.    	&&&&&r    c                :    | j                             d           d S )Nz
.ce 0
r   rr   s     r   depart_centeredz$ManualPageTranslator.depart_centeredS  s    	%%%%%r    c                    d S r   r8   rr   s     r   visit_compact_paragraphz,ManualPageTranslator.visit_compact_paragraphV  rt   r    c                    d S r   r8   rr   s     r   depart_compact_paragraphz-ManualPageTranslator.depart_compact_paragraphY  rt   r    c                    d S r   r8   rr   s     r   visit_download_referencez-ManualPageTranslator.visit_download_reference\  rt   r    c                    d S r   r8   rr   s     r   depart_download_referencez.ManualPageTranslator.depart_download_reference_  rt   r    c                    t           j        r   r   rr   s     r   visit_toctreez"ManualPageTranslator.visit_toctreeb  r   r    c                    t           j        r   r   rr   s     r   visit_indexz ManualPageTranslator.visit_indexe  r   r    c                    t           j        r   r   rr   s     r   visit_tabular_col_specz+ManualPageTranslator.visit_tabular_col_spech  r   r    c                    d S r   r8   rr   s     r   visit_glossaryz#ManualPageTranslator.visit_glossaryk  rt   r    c                    d S r   r8   rr   s     r   depart_glossaryz$ManualPageTranslator.depart_glossaryn  rt   r    c                   t          t          j        |d                   }t          t          t          j                 |          }|                                  t          t          j        |d                   }t          t          t          j                 |          }| j                            d                    d |D                       dz              | j                            d           t          j	        )Nr   r   c              3  >   K   | ]}|                                 V  d S r   )r)   )r9   ns     r   r<   z2ManualPageTranslator.visit_acks.<locals>.<genexpr>w  s*      "B"B!188::"B"B"B"B"B"Br    .r   )
r   r   bullet_listr   	list_itemr   r   r   joinr   )r   rL   r+  
list_itemss       r   
visit_ackszManualPageTranslator.visit_acksq  s    5,d1g66(5?3[AA
5,d1g66(5?3[AA
	"B"Bz"B"B"BBBSHIII	nr    c                0    |                      |           d S r   )visit_bullet_listrr   s     r   visit_hlistz ManualPageTranslator.visit_hlist{  r   r    c                0    |                      |           d S r   )depart_bullet_listrr   s     r   depart_hlistz!ManualPageTranslator.depart_hlist~  s    %%%%%r    c                    d S r   r8   rr   s     r   visit_hlistcolz#ManualPageTranslator.visit_hlistcol  rt   r    c                    d S r   r8   rr   s     r   depart_hlistcolz$ManualPageTranslator.depart_hlistcol  rt   r    c                ,    |                      |          S r   )visit_emphasisrr   s     r   visit_literal_emphasisz+ManualPageTranslator.visit_literal_emphasis  s    ""4(((r    c                ,    |                      |          S r   )depart_emphasisrr   s     r   depart_literal_emphasisz,ManualPageTranslator.depart_literal_emphasis  s    ##D)))r    c                ,    |                      |          S r   visit_strongrr   s     r   visit_literal_strongz)ManualPageTranslator.visit_literal_strong        &&&r    c                ,    |                      |          S r   depart_strongrr   s     r   depart_literal_strongz*ManualPageTranslator.depart_literal_strong      !!$'''r    c                    d S r   r8   rr   s     r   visit_abbreviationz'ManualPageTranslator.visit_abbreviation  rt   r    c                    d S r   r8   rr   s     r   depart_abbreviationz(ManualPageTranslator.depart_abbreviation  rt   r    c                ,    |                      |          S r   rA  rr   s     r   visit_manpagez"ManualPageTranslator.visit_manpage  rD  r    c                ,    |                      |          S r   rF  rr   s     r   depart_manpagez#ManualPageTranslator.depart_manpage  rI  r    c                    t          |j        t          j                  r6|j                            d          r| j                            d           d S t                                          |           d S )Nliteral_blockr   )	
isinstancerE   r   	containerr  r   r   r   visit_captionr   s     r   rV  z"ManualPageTranslator.visit_caption  sh    dk5?33 	(8X8X 	(IW%%%%%GG!!$'''''r    c                    t          |j        t          j                  r6|j                            d          r| j                            d           d S t                                          |           d S )NrS  r   )	rT  rE   r   rU  r  r   r   r   depart_captionr   s     r   rX  z#ManualPageTranslator.depart_caption  sh    dk5?33 	)8X8X 	)IT"""""GG""4(((((r    c                   t          |j        t          j                  r| j                            d           d S t          |j        t          j                  r| j        dk    rt          j	        | j        dk    r`| j                            d| 
                    |                                                                          z             t          j	        t                                          |          S )Nz.IP "r   r=   z.SH %s
)rT  rE   r   r   r   r   r   rb   r_   r   ri   r)   rc   r   visit_titler   s     r   rZ  z ManualPageTranslator.visit_title  s    dk8#344 
	%IW%%%4U]33 	%!Q&&n$#q((	  !%0C0C0E0E!F!F"G H H Hn$ww""4(((r    c                    t          |j        t          j                  r| j                            d           d S t                                          |          S )Nz"
)rT  rE   r   r   r   r   r   depart_titler   s     r   r\  z!ManualPageTranslator.depart_title  sM    dk8#344 	IU###4ww##D)))r    c                    d|                     dd                                          v r,| j                            |                                           t
          j        )Nmanpageformatr>   )r  splitr   r   r)   r   r   rr   s     r   	visit_rawzManualPageTranslator.visit_raw  sM    2..446666IT[[]]+++nr    c                    t           j        r   r   rr   s     r   
visit_metazManualPageTranslator.visit_meta  r   r    c                    d S r   r8   rr   s     r   visit_inlinez!ManualPageTranslator.visit_inline  rt   r    c                    d S r   r8   rr   s     r   depart_inlinez"ManualPageTranslator.depart_inline  rt   r    c                    d S r   r8   rr   s     r   
visit_mathzManualPageTranslator.visit_math  rt   r    c                    d S r   r8   rr   s     r   depart_mathz ManualPageTranslator.depart_math  rt   r    c                0    |                      |           d S r   )r  rr   s     r   visit_math_blockz%ManualPageTranslator.visit_math_block  s    D!!!!!r    c                0    |                      |           d S r   )r  rr   s     r   depart_math_blockz&ManualPageTranslator.depart_math_block  r   r    )r#   r3   r   r   r   r   )r   rm   )rL   r   r   r   )\r-   r.   r/   rO   rQ   __annotations__r   rp   rs   rv   ry   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/  r2  r5  r7  r9  r<  r?  rC  rH  rK  rM  rO  rQ  rV  rX  rZ  r\  ra  rc  re  rg  ri  rk  rm  ro  r0   r1   s   @r   r&   r&   H   s/           "H!!!!F F F F F F@$ $ $ $      ) ) ) )* * * *            $ $ $ $% % % %                        ! ! ! !               ! ! ! !   ( ( ( () ) ) )            
# # # #$ $ $ $% % % % % %   % % % % % %
" " " "   / / / /% % % %   2            &   
' ' ' '& & & &                              % % % %& & & &      ) ) ) )* * * *' ' ' '( ( ( (      ' ' ' '( ( ( (( ( ( ( ( () ) ) ) ) )) ) ) ) ) )* * * * * *   
               " " " "# # # # # # # #r    r&   N)&rO   
__future__r   collections.abcr   typingr   r   r   docutilsr   docutils.writers.manpager	   BaseTranslatorr
   sphinxr   sphinx.localer   r   sphinx.utilr   sphinx.util.docutilsr   sphinx.util.i18nr   sphinx.util.nodesr   docutils.nodesr   sphinx.buildersr   	getLoggerr-   loggerr   r"   r&   r8   r    r   <module>r     s   ; ; " " " " " " $ $ $ $ $ $ + + + + + + + + + +       A A A A A A + + + + + +       - - - - - - - -       1 1 1 1 1 1 ( ( ( ( ( ( ) ) ) ) ) ) (&&&&&&''''''		8	$	$, , , , ,v , , ,- - - - - - - ->Q# Q# Q# Q# Q#+^ Q# Q# Q# Q# Q#r    