
    -Ph)                       d Z ddlmZ ddlZddl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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 ddlmZ ddlmZ ddlmZm Z  ddl!m"Z" erddl#m$Z$ ddl%m&Z& dZ'dZ( ej)        e*          Z+ e	j,         e	j-        e.                    Z/ ee*d          Z0 ej1        d          Z2dZ3d$dZ4 G d de          Z5d%d#Z6dS )&z2Build input files for the Qt collection generator.    )annotationsN)Iterable)path)Path)TYPE_CHECKINGAnycast)nodes)addnodes)StandaloneHTMLBuilder)IndexEntries)get_translation)logging)NodeMatcher)
canon_pathmake_filename)SphinxRenderer)Node)Sphinxz2.0.0)   r   r   consolezB(?P<title>.+) (\((class in )?(?P<id>[\w\.]+)( (?P<descr>\w+))?\))$z*<section title="%(title)s" ref="%(ref)s"/>filenamestrkwargsr   returnc                b    t          j        t          d|           }t          j        ||          S )N	templates)r   joinpackage_dirr   render_from_file)r   r   pathnames      ]/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sphinxcontrib/qthelp/__init__.pyrender_filer#   ,   s(    yk8<<H*8V<<<    c                       e Zd ZdZdZ ed          ZdZg dZdZ	dZ
dZdZd% fd	Zd&dZd%dZd'dZd(dZd)d*dZd+dZd,d#Zd-d$Z xZS ).QtHelpBuilderzN
    Builder that also outputs Qt help project, contents and index files.
    qthelpzYou can now run "qcollectiongenerator" with the .qhcp project file in %(outdir)s, like this:
$ qcollectiongenerator %(outdir)s/%(project)s.qhcp
To view the help file:
$ assistant -collectionFile %(outdir)s/%(project)s.qhcF)zimage/svg+xmlz	image/pngz	image/gifz
image/jpegTr   Nonec                d    t                                                       d| _        d| _        d S )N.html)superinit
out_suffixlink_suffix)self	__class__s    r"   r,   zQtHelpBuilder.initL   s)    !"r$   'tuple[str, dict[str, str | int | bool]]c                2    | j         j        | j         j        fS N)configqthelp_themeqthelp_theme_optionsr/   s    r"   get_theme_configzQtHelpBuilder.get_theme_configS   s    {')IIIr$   c                    | j         d| j        j        dz  | _         |                     | j        | j        j                   d S )Nz
%(outdir)s)outdirproject)epilogr4   qthelp_basename	build_qhpr:   r7   s    r"   handle_finishzQtHelpBuilder.handle_finishV   sH    k"{2%
 %
 
 	t{DK$?@@@@@r$   r:   str | os.PathLike[str]outnamer   c                   t                               t          d                     | j                            | j        j        | d          }g }t          t          j	        d          }|
                    |          D ]*}|                    |                     |                     +| j        D ]9\  }}}	}
t          |j        || j        z   dz  }|                    d|z              :d                    |          }g }t'          | j                                      | d	          }|D ];\  }}|D ]3\  }\  }}}|                    |                     |||                     4<d                    |          }| j        j        r| j        j        }nd
| d| j        j         }t1          j        dd|          }t1          j        dd|                              d          }|                                }t9          d|| j        j        | j        j        | j        j        || j        j        |||                     |          
  
        }tA          || d          }|!                    |d           dtE          j        |d| #                    | j        j                            z   }dtE          j        |dd| j$                   z   }t                               t          d                     t9          d|| j        j%        ||          }tA          || d          }|!                    |d           d S )Nzwriting project file...F)prune_toctreesT)toctreetitlerefz                
)group_entrieszorg.sphinx..z[^a-zA-Z0-9.\-] z\.+zproject.qhp)	rA   rF   versionr;   	namespace
master_docsectionskeywordsfilesz.qhpzutf-8)encodingz	qthelp://docindexz"writing collection project file...zproject.qhcp)rA   rF   homepage	startpagez.qhcp)&loggerinfo__envget_and_resolve_doctreer4   rN   r   r   compact_paragraphfindallextend	write_tocdomain_indicessection_template	localnamer-   appendr   r   create_indexbuild_keywordsqthelp_namespacerL   resubstriplowerr#   
html_titler;   get_project_filesr   
write_text	posixpathget_target_urir.   html_short_title)r/   r:   rA   tocdocrO   matchernode	indexnameindexcls_content	_collapseitemrP   rT   
_group_keygrouprF   refssubitems_category_keynspacebodyr   rU   rV   s                            r"   r>   zQtHelpBuilder.build_qhp]   s{   B011222 11$+2H$AF 2 H H h8$GGGNN7++ 	2 	2DOODNN40011118<8K 	0 	04Ix9#0B.7$/.I'K 'K KDOOK$.////99X&& TX&&33D3NN#( 	L 	LZ:? L L66h 3 3E4 J JKKKKL99X&&
 ;' 	C[1FFB7BBT[-@BBF*B77V,,22377 ='!%!7AT#';#6&&*k&<$,x!%!7!7!?!?A A A 7 0 0 011D7333E4..t{/EFF"H "H H).@ZHX@Z@Z"["[[	B;<<===>7!%!=$,	C C C 7 1 1 122D733333r$   rs   r   boolc                B   t          |t          j                  sdS t          |j                  dk    rdS t          |d         t
          j                  sdS t          |d         d         t          j                  sdS t          |d         t          j                  S )NFr   r      )	
isinstancer
   	list_itemlenchildrenr   r\   	referencebullet_list)r/   rs   s     r"   	isdocnodezQtHelpBuilder.isdocnode   s    $00 	5t}""5$q'8#=>> 	5$q'!*eo66 	5$q'5#4555r$      indentlevelint	list[str]c                t   g }t          |t          j                  rO|                     |          r9t	          t
          j        |d                   }t	          t          j        |d                   }|d         }t          j	        |
                                                              dd          }d| d| d}|                    d|z  |z              t	          t          j        |d	                   }	t	          t          t          j                 |	          }
|
D ].}|                    |                     ||d	z                        /|                    d|z  d
z              nKt          |t          j                  r0|D ]+}|                    |                     ||                     ,nt          |t          j                  r|d         }t          j	        |
                                                              dd          }t"          ||dz  }d|z  |z   }|                    |                    dd                                                     nTt          |t          j        t
          j        f          r.|D ]+}|                    |                     ||                     ,|S )Nr   refuri"z&quot;z<section title="" ref="z">z    r   z
</section>rE   asciixmlcharrefreplace)r   r
   r   r   r	   r   r\   r   htmlescapeastextreplacerc   r   r   r^   r_   ra   encodedecode)r/   rs   r   partsr\   r   linkrF   rx   r   
list_itemsr   subnodes                r"   r_   zQtHelpBuilder.write_toc   s   dEO,, 	C1E1E 	C $X%?a I IU_.?.BCCIX&DK	 0 0 2 233;;CJJE<e<<D<<<DLL;.5666u0$q'::Khu7EEJ' I I	T^^I{QGGHHHHLL;.=>>>>eo.. 	C C CT^^G[AABBBBCeo.. 	C>DK..66sHEEE#d&C&CCD[(4/DLLW.ABBIIKKLLLLu0(2LMNN 	C C CT^^G[AABBBBr$   namerG   r   c                   t                               |          }|rk|                                }|d         }|                    d          }|                    d          r
|d d         }t          j        | d| d          }nd }t          j        |d          }t          j        |d         d          }|rd	d
| d| d| dz   }	nd	d
| d| dz   }	|	                    dd           |	S )NrF   idz()rJ   T)quoter   z            z<keyword name="z" id="r   z"/>r   r   )
_idpatternmatch	groupdictgetendswithr   r   r   )
r/   r   rG   matchobjr   	shortnamer   nameattrrefattrrx   s
             r"   keyword_itemzQtHelpBuilder.keyword_item   s'   ##D)) 		 **,,I!'*It$$B!!$'' +%crcN	00Y00$77BBB;t4000+c!fD111 	NWWWWW7WWWWDDMMMMMMMDG0111r$   rF   r{   	list[Any]r|   c                   g }t          |          dk    r0|                    |                     ||d                              nQt          |          dk    r>t          |          D ].\  }}|                    |                     ||                     /|r;|D ]8}|                    |                     |d         |d         g                      9|S )Nr   r   )r   rc   r   	enumerater^   re   )r/   rF   r{   r|   rP   _irG   subitems           r"   re   zQtHelpBuilder.build_keywords   s      t99>>OOD--eT!W==>>>>YY]]$T?? ? ?C  1 1% = =>>>> 	Q# Q Q 3 3GAJ
B O OPPPPr$   c                   g }t          j        |d          }t          j        || j                  }t          j        |          D ]\  }}}|                    ||f          }t          |          D ]x}	|r|	                    d          r|	                    d          rJt          j        t          j        ||	          |          }
|	                    t          |
                     y|S )N_staticz.jsr*   )r   r   imagediroswalk
startswithsortedr   relpathrc   r   )r/   r:   project_files	staticdir	imagesdirroot_dirsrQ   resourcedirfnr   s              r"   rl   zQtHelpBuilder.get_project_files   s    Ifi00	Ifdm44	"$'&// 	? 	?D%//9i*@AAKUmm ? ? ?E(:(: ?r{{7?S?S ?#|DIdB,?,?HHH!((H)=)=>>>?
 r$   )r   r(   )r   r1   )r:   r@   rA   r   r   r(   )rs   r   r   r   )r   )rs   r   r   r   r   r   )r   r   rG   r   r   r   )rF   r   r{   r   r|   r   r   r   )r:   r@   r   r   )__name__
__module____qualname____doc__r   rY   r<   
copysourcesupported_image_typesadd_permalinksembeddeddownload_supportsearchr,   r8   r?   r>   r   r_   r   re   rl   __classcell__)r0   s   @r"   r&   r&   1   sI         DR I J JF J+ + + N H F# # # # # #J J J JA A A A94 94 94 94v	6 	6 	6 	6    <   ,   ,       r$   r&   appr   dict[str, Any]c                   |                      d           |                     d           |                     t                     |                     t
          t          j        t          d                     | 	                    dd d           | 	                    dd dt          g           | 	                    dd	d           | 	                    d
i d           t          dddS )Nz5.0zsphinx.builders.htmllocalesr=   c                *    t          | j                  S r3   )r   r;   r7   s    r"   <lambda>zsetup.<locals>.<lambda>  s    t|9T9T r$   r   rf   r5   nonavr6   T)rL   parallel_read_safeparallel_write_safe)require_sphinxsetup_extensionadd_builderr&   add_message_catalogr   r   r   r   add_config_valuer   __version__)r   s    r"   setupr      s    u.///OOM"""HdiY&G&GHHH*,T,TV\]]]+T6C5AAA&999/V<<< "#  r$   )r   r   r   r   r   r   )r   r   r   r   )7r   
__future__r   r   r   rn   rg   collections.abcr   r   pathlibr   typingr   r   r	   docutilsr
   sphinxr   sphinx.builders.htmlr   (sphinx.environment.adapters.indexentriesr   sphinx.localer   sphinx.utilr   sphinx.util.nodesr   sphinx.util.osutilr   r   sphinx.util.templater   docutils.nodesr   sphinx.applicationr   r   __version_info__	getLoggerr   rW   abspathdirname__file__r   rY   compiler   ra   r#   r&   r    r$   r"   <module>r      s@   8 8 " " " " " "  				     				 $ $ $ $ $ $             + + + + + + + + + +             6 6 6 6 6 6 A A A A A A ) ) ) ) ) )       ) ) ) ) ) ) 8 8 8 8 8 8 8 8 / / / / / / *######)))))) 		8	$	$dl<4<1122_Xy)) RZIK K
 @ = = = =
G G G G G) G G GT     r$   