+
    Ni                      .   ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
HtHt ^ RIHu Ht ^ RIt^ RIt^ RI	Ht ^ RIt^ RIHt ^ RIHu Ht ^ RIt^ RIHt ^ RIHt  ^ RIHt R	t^RI H!t! R2t"Rt#Rt$ ! R R]%4      t&R t'R3R lt(R3R lt)R t*R t+R4R lt,RRR
. R3R lt-R t.R t/R R lt0R t1R t2R t3R5R R llt4R5R  R! llt5R" t6R6R# lt7R$ t8R% t9R& R' lt:R( R) lt;R* R+ lt<R, R- lt=R. t>R/ t?R0 t@R1 tAR#   ] d    R
t Li ; i)7    N)environ)AnyDict)Path)urljoin)Template)utils)
depdiagramTF)DoxyfileWriterContextzdoxygen-warnings.loghtmlc                   .   a  ] tR t^At o RtRtR tRtV tR# )r   zA
Holds parameters used by the various functions of the generator
c                T   VP                   V n         VP                  V n        VP                  V n        VP                  V n        VP                  V n        VP
                  V n        V P                   F1  p\        W4      '       d   K  \        WVP                  V4      4       K3  	  R # N)
title
doxdatadir	man_pagesqhpdoxygenqhelpgenerator	__slots__hasattrsetattrget)selfargskwargskeys   &&, S/tmp/fempkg/build/kf6/DESTDIR/usr/lib/python3.14/site-packages/kapidox/generator.py__init__Context.__init__`   sr    ZZ
//88||"11>>C4%%6::c?3 "    )r   r   r   r   r   r   N)
modulename	fancynamer   fwinfor   resourcedirsrcdirtagfilesdependency_diagram	copyrightis_qdoc	outputdirhtmldirtagfiler   r   r   r   )	__name__
__module____qualname____firstlineno____doc__r   r    __static_attributes____classdictcell__)__classdict__s   @r   r   r   A   s     I64 4r"   c                     \         P                  ! \        P                  P	                  V R 4      4      p\         P
                  ! VR7      # )	templates)loader)jinja2FileSystemLoaderospathjoinEnvironment)r   r9   s   & r   create_jinja_environmentr@   q   s2    $$RWW\\*k%JKFV,,r"   c                 4   R  pVP                  VR7       RRRVRVRRRR	R
R/./RV/p\        V4      P                  R4      p\        P                  ! V RR4      ;_uu_ 4       pVP                  VP                  V4      4       RRR4       \        V4      P                  R4      p	Rp
\        P                  ! V
RR4      ;_uu_ 4       pVP                  V	P                  V4      4       RRR4       R#   + '       g   i     Lw; i  + '       g   i     R# ; i)c                     \        V P                  4       V P                  R 8X  d   R# V P                  R8X  d   R# V P                  P                  4       # )zThe KDE FrameworksaazKDE PIMab)printr$   lower)products   &r   sort_product0process_toplevel_html_file.<locals>.sort_productx   sH    g  44	)  &&((r"   r   	resourcesz./resourcesr   qchbreadcrumbsentrieshref./index.htmltextKDE API Referenceproduct_listzfrontpage.htmlwutf-8Nsearch.html)sortr@   get_templatecodecsopenwriterender)
outputfiler   productsr   qch_enabledrH   mappingtmploutftmpl2search_outputs   &&&&&      r   process_toplevel_html_filere   v   s    ) MMlM# U; 3 H
G  $J/<<=MND	Zg	.	.$

4;;w'( 
/ %Z0==mLE!M	]C	1	1T

5<<() 
2	1 
/	.
 
2	1	1s   #!C3!D3D	D	c                 <   V EFl  pR RRVRVRRRRRR	/RR
RVP                   /./RVR\        V4      /p\        P                  P	                  VP
                  4      '       g!   \        P                  ! VP
                  4       VP
                  R,           p \        V4      P                  R4      p\        P                  ! V RR4      ;_uu_ 4       p	V	P                  VP                  V4      4       RRR4       \        V4      P                  R4      p
VP
                  R,           p\        P                  ! VRR4      ;_uu_ 4       p	V	P                  V
P                  V4      4       RRR4       EKo  	  R#   + '       g   i     L; i  + '       g   i     EK  ; i)rK   z../resourcesr   rL   rM   rN   rO   z../index.htmlrQ   rR   rP   groupavailable_platforms/index.htmlzsubgroup.htmlrT   rU   NrV   z/search.html)r$   sortedr<   r=   isdirnamemkdirr@   rX   rY   rZ   r[   r\   )r]   r   groupsrh   r   r_   rg   r`   ra   rb   rc   rd   s   &&&&&&      r   process_subgroup_html_filesro      sP   U; 3
 	 U!6*=#>#
( ww}}UZZ((HHUZZ ZZ-/
'
3@@Q[[S'22dJJt{{7+, 3 )4AA-P

^3[[W55JJu||G,- 65= 2 32
 655s   !E6!F	6F	Fc                 |   \         P                  P                  V P                  \        4      V n        \         P                  P                  V P
                  V P                  P                  R ,           4      V n        \         P                  P                  V P                  4      '       g!   \         P                  ! V P                  4       \         P                  P                  V P
                  4      '       d!   \        P                  ! V P
                  4       \         P                  ! V P
                  4       R# ).tagsN)r<   r=   r>   r,   HTML_SUBDIRr-   r%   r$   r.   existsmakedirsshutilrmtree)ctxs   &r   create_dirsrx      s    '',,s}}k:CK'',,s{{CJJ,@,@7,JKCK77>>#--((
CMM"	ww~~ckk""
 	ckk"KKr"   c                     \         P                  ! V R RR7      P                  4       p \        P                  ! V4      #   \        P
                  P                   d    \        P                  ! RT  24       h i ; i)rU   ignore)encodingerrorszFailed to parse template )	rY   rZ   readr:   r   
exceptionsTemplateSyntaxErrorloggingerror)r=   contents   & r   load_templater      se     kk$BGGIGw''00 1$89s	   ? :A9c           
     x  aaa
 \         P                  P                  V 4      '       g   . # Sf   V oRoR o
VVV
3R lp. p\         P                  ! V 4      pV F  pW8X  d   K  \         P                  P	                  W4      p	\         P                  P                  V	4      '       d-   VP                  R4      '       d   VP                  V	S34       K{  V^ 8X  g   V^8X  g   K  VR8X  g   K  \         P                  P                  V	4      '       g   K  V\        W! V4      SV^,           VR7      ,          pK  	  V# )aL  Find Doxygen-generated tag files in a directory.

The tag files must have the extension .tags, and must be in the listed
directory, a subdirectory or a subdirectory named html of a subdirectory.

Args:
    docdir:       (string) the directory to search.
    doclink:      (string) the path or URL to use when creating the
                  documentation links; if None, this will default to
                  docdir. (optional, default None)
    flattenlinks: (bool) if True, generated links will assume all the html
                  files are directly under doclink; else the html files are
                  assumed to be at the same relative location to doclink as
                  the tag file is to docdir; ignored if doclink is not set.
                  (optional, default False)

Returns:
    A list of pairs of (tag_file,link_path).
Fc                    RV 9   d.   V P                  R4      '       g
   V R,          p \        V .VO5!  # \        P                  P                  ! V .VO5!  # )zWJoin paths or URLS

It figures out which it is from whether the first contains a "://"
z:///)endswithr   r<   r=   r>   )
pathorurl1r   s   &*r   	smartjoin find_tagfiles.<locals>.smartjoin   sO    
 J&&s++c!
:---77<<
2T22r"   c                 *   < S'       d   S# S! SV 4      # r    )subdirdoclinkflattenlinksr   s   &r   
nestedlink!find_tagfiles.<locals>.nestedlink  s    NWf--r"   rq   r   )r   _depthexclude)	r<   r=   rk   listdirr>   isfiler   appendfind_tagfiles)docdirr   r   r   r   r   r(   rN   er=   r   s   &ff&&     @r   r   r      s    * 77==  	
3. Hjj G<ww||F&77>>$AJJw$7$7OOT7O,kfka6kd@S@SdJqM3?-3AX.57 7H  Or"   c                   V e   \         P                  P                  V 4      '       g   \        P                  ! V R,           4       M<\        WW$4      p\        V4      ^ 8X  d   \        P                  ! V R,           4       MV# V F@  p\        WaW$4      p\        V4      ^ 8  g   K!  \        P                  ! RV,           4       Vu # 	  . # )a  Find Doxygen-generated tag files

See the find_tagfiles documentation for how the search is carried out in
each directory; this just allows a list of directories to be searched.

At least one of docdir or searchpaths must be given for it to find anything.

Args:
    suggestion:   the first place to look (will complain if there are no
                  documentation tag files there)
    doclink:      the path or URL to use when creating the documentation
                  links; if None, this will default to docdir
    flattenlinks: if this is True, generated links will assume all the html
                  files are directly under doclink; if False (the default),
                  the html files are assumed to be at the same relative
                  location to doclink as the tag file is to docdir; ignored
                  if doclink is not set
    searchpaths:  other places to look for documentation tag files

Returns:
    A list of pairs of (tag_file,link_path)
z is not a directoryz does not contain any tag filesz!Documentation tag files found at )r<   r=   rk   r   warningr   leninfo)
suggestionr   r   searchpathsr   r(   ds   &&&&&  r   search_for_tagfilesr     s    0 ww}}Z((OOJ)>>?$Z,PH8}!
-N NO \Cx=1LL<q@AO	  Ir"   c                   a  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VR,           /RRRR/.p\        \        V 3R lV4      4      # )aX  Menu items for standard Doxygen files

Looks for a set of standard Doxygen files (like namespaces.html) and
provides menu text for those it finds in htmldir.

Args:
    htmldir:    (string) the directory the HTML files are contained in.
    modulename: (string) the name of the library

Returns:
    A list of maps with 'text' and 'href' keys.
rQ   z	Main PagerO   
index.htmlzNamespace Listnamespaces.htmlzNamespace Membersznamespacemembers.htmlzAlphabetical Listclasses.htmlz
Class Listzannotated.htmlzClass Hierarchyzhierarchy.htmlz	File Listz
files.htmlzFile Memberszglobals.htmlModuleszmodules.htmlDirectoriesz	dirs.htmlDependenciesz-dependencies.htmlzRelated Pagesz
pages.htmlc                    < \         P                  P                  \         P                  P                  SV R ,          4      4      # )rO   )r<   r=   r   r>   )r   r-   s   &r   <lambda>menu_items.<locals>.<lambda>c  s%    bggnnRWW\\'1V9%EFr"   )listfilter)r-   r#   rN   s   f& r   
menu_itemsr   E  s     [&,7%v/@A(&2IJ(&.A\6+;<&0@A[&,7^V^<Y7]FK8^VZ:N-NO_fl;G  F  r"   c                   aaaaa / o. oVVV3R loVV3R loVV3R loSpVe)   V P                  4       P                  4       pV! V4      pK,  RP                  S4      SR&   S# )a  Parse the HTML files produced by Doxygen, extract the key/value block we
add through header.html and return a dict ready for the Jinja template.

The HTML files produced by Doxygen with our custom header and footer files
look like this:

@code
<!--
key1: value1
key2: value2
...
-->
<html>
<head>
...
</head>
<body>
...
</body>
</html>
@endcode

The parser fills the dict from the top key/value block, and add the content
of the body to the dict using the "content" key.

We do not use an XML parser because the HTML file might not be well-formed,
for example if the documentation contains raw HTML.

The key/value block is kept in a comment so that it does not appear in Qt
Compressed Help output, which is not post processed by us.
c                    < V R 8X  d   S# V R8X  d   S# V P                  R4      '       d   S# V P                  R^4      w  rVSV&   S# )z<!--z-->z<!DOCTYPE htmlz: )
startswithsplit)liner   valuedctparse_key_value_block	skip_heads   &  r   r   -parse_dox_html.<locals>.parse_key_value_block  sT    6>((5=??+,,ZZa(
C$$r"   c                    < V R 8X  d   S# S# )z<body>r   )r   extract_bodyr   s   &r   r   !parse_dox_html.<locals>.skip_head  s    8r"   c                 <   < V R 8X  d   R# SP                  V 4       S# )</body>N)r   )r   bodyr   s   &r   r   $parse_dox_html.<locals>.extract_body  s     9Dr"   
r   )readlinerstripr>   )streamparserr   r   r   r   r   r   s   &  @@@@@r   parse_dox_htmlr   g  s`    @ CD	% #F

 '')YYt_C	NJr"   c                ^    V ^8  d   QhR\         R\        R\        \         \        3,          /# )   r-   ra   env)strr   r   r   )formats   "r   __annotate__r     s)     ! !s !( !c3h !r"   c           	        \         P                   ! \        P                  P                  V R4      4       F  pV R2p\	        V4      P                  4       pVP                  R4      ^,          P                  R4      ^ ,          VR&   \        P                  ! VRR4      ;_uu_ 4       p VP                  V4      pTP                  T4       R
R
R
4       \        P                  ! T4       \        P                  ! YC4       K  	  R
#   \         d    \        P                  ! RT R	24       h i ; i  + '       g   i     Ll; i)Substitute text in HTML files

Performs text substitutions on each line in each .html file in a directory.

Args:
    htmldir: (string) the directory containing the .html files.
    mapping: (dict) a dict of mappings.

z*.html.newr   r   docsrT   rU   zPostprocessing  failedN)globr<   r=   r>   r   	read_text	partitionrY   rZ   r\   BaseExceptionr   r   r[   removerename)r-   ra   r   r=   newpathtxtrb   r   s   &&&     r   postprocess_internal_qdocr     s     		"'',,w9:F$-4j""$mmF+A.88CAFF[[#w//4{{3'
 JJt 0 			$
		' ! ; ! vW=> 0/s$   'D/)D:D/'D,	,D//D?c           	     ,   \         P                  ! V 4       EF  pVP                  R4      '       g   K  \         P                  P	                  W4      pVR,           pVR8w  dO   VP                  R4      '       d8   V^R P                  R4      R,          VR&   V^R P                  RR4      VR&   M]VP                  R	4      '       d=   VR
8w  d6   VP                  R4      '       g   RVR&   V^	R P                  RR4      VR&   M
RVR&   RVR&   \        P                  ! VRRRR7      ;_uu_ 4       p\        V4      VR&   RRR4       \        P                  ! VRR4      ;_uu_ 4       p VP                  V4      pTP                  T4       RRR4       \         P                   ! T4       \         P"                  ! YT4       EK  	  R#   + '       g   i     L; i  \         d    \        P                  ! RT R24       h i ; i  + '       g   i     L; i)r   z.htmlr   r   class_1_1	classnamez::fullname	namespacer   namespacemembersNrrU   rz   )r|   doxrT   zpostprocessing r   )r<   r   r   r=   r>   r   r   replacerY   rZ   r   r\   	Exceptionr   r   r[   r   r   )	r-   ra   r`   rl   r=   r   frb   r   s	   &&&      r   postprocess_internalr     s    

7#==!!77<<.DVmG~%$//'*B*B'+Abz'7'7'?'C$&*1Rj&8&8&F
#--$:K2KTXTcTcdvTwTw'+$&*1Rj&8&8&F
#'+$&*
#T3AAQ!/!2 B Wc733t;;w/D 

4  4 IIdOIIg$5 $ BA ! MMOD6"AB 43s0   0G'H)G:HG'H 	 HHc                J   ^ RI Hu Hp VP                  ! V 4      pVP	                  4       p. pV Fo  pVP                  R4      pVR8X  g
   VR8X  g   K$  VP                  R4      pVP                  R4      pVP                  RVP                  RVP                  /4       Kq  	  V# )zParses a tagfile to get a map from classes to files

Args:
    tagfile: the Doxygen-generated tagfile to parse.

Returns:
    A list of maps (keys: classname and filename).
Nkindr   r   rl   filenamer   )	xml.etree.ElementTreeetreeElementTreeparsegetrootr   findr   rQ   )	r.   ETtreetagfile_rootr`   compoundr   name_elfilename_els	   &        r   build_classmapr     s     '&88GD<<>LG ||F#7?dk1mmF+G"--
3KNNK&(8(8: ; ! Nr"   c           
        \         P                  P                  VR4      p\         P                  P                  WR,           4      p\        V4      p\        P
                  ! VRR4      ;_uu_ 4       pVP                  RVR\         P                  P                  V4      /4      pVP                  V4       RRR4       V#   + '       g   i     T# ; i)z0Create `modulename`-dependencies.md in `tmp_dir`zdependencies.md.tmplz-dependencies.mdrT   rU   r#   diagramnameN)	r<   r=   r>   r   rY   rZ   r\   basenamer[   )	tmp_dirr   r#   r)   template_pathout_pathra   rb   r   s	   &&&&     r   generate_dependencies_pager     s    GGLL-CDMww||G2D%DEH'D	XsG	,	,kkjrww//0BC  	

3 
- O 
-	, Os   2AC  C	c                0    V ^8  d   QhR\         R\        /# )r   rw   r   )r   r   )r   s   "r   r   r     s     C Cw C Cr"   c                    \         P                  ! \        P                  P	                  V P
                  R 4      4      P                  4       pV P                  \        R&   \        P                  ! RV P                  P                   RV 24       \        P                  ! RV P                  P                  R,           RV 2.4      pV^ 8w  d   \        R4      hR# )	r   KAPIDOX_DIRzRunning QDoc (qdoc z/.qdocconf --outputdir=qdocz
/.qdocconfz--outputdir=z'QDoc exited with a non-zero status codeN)pathlibr   r<   r=   r>   r,   absoluter   r   r   r   r%   
subprocesscallr   )rw   r   doxyfile_entrieskeep_temp_dirsr  rets   &&&&  r   generate_apidocs_qdocr    s    ||BGGLL?@IIKH ^^GMLL&szz&77NxjYZ
//63::??\#A\RZQ[C\]
^C
axABB r"   c                $    V ^8  d   QhR\         /# r   rw   r   )r   s   "r   r   r     s     c2 c2' c2r"   c                  a  S P                   '       d   \        S WV4      # RV 3R llp. p\        P                  P	                  S P
                  P                  R,           4      '       d.   VP                  S P
                  P                  R,           4       Ml\        P                  P	                  S P
                  P                  R,           4      '       d-   VP                  S P
                  P                  R,           4       VP                  V! S P
                  P                  4      4       VP                  V! S P
                  P                  4      4       . pS P                  '       dW   VP                  \        VS P                  S P                  S P                  4      4       VP                  S P                  4       \        P                  P                  VR4      p\        P                   ! VRR4      ;_uu_ 4       p\        P                   ! \        P                  P                  S P                  R4      R	R4      ;_uu_ 4       p	V	 F  p
VP#                  V
4       K  	  RRR4       \%        V4      pVP'                  R
S P(                  4       VP                  V! S P
                  P                  R4      4       VP+                  VV! S P
                  P                  R4      V! S P
                  P,                  4      VR7       TP'                  RS P.                   U	Uu. uF  w  rV	R,           V,           NK  	  upp	4       VP+                  S P0                  S P2                  \4        \        P                  P                  S P0                  \6        4      R7       VP+                  S P                  R,           S P                  R,           R7       VP+                  S P                  R,           R7       VP+                  S P                  RS P                  ,           S P8                  R7       VP+                  S P:                  S P<                  R7       V'       d   VP*                  ! R/ VB  V! S P
                  P                  4      '       d   \        P                  P                  V! S P
                  P                  4      ^ ,          R4      p\        P                  P	                  V4      '       dD   \        P                   ! VR	R4      ;_uu_ 4       p	V	 F  p
VP#                  V
4       K  	  RRR4       RRR4       \>        P@                  ! R4       \B        PD                  ! S PF                  V.4       R#   + '       g   i     EL$; iu upp	i   + '       g   i     Ll; i  + '       g   i     Lw; i)z5Generate the API documentation for a single directoryNc                   < . pV  F  p\         P                  P                  SP                  P                  V4      pVe    \         P                  P                  WA4      p\         P                  P	                  V4      '       g&   \         P                  P                  V4      '       d   VP                  V4       K  K  	  V# r   )r<   r=   r>   r%   rk   r   r   )dirlistdeeper_subd
returnlistr   pthrw   s   &&   r   find_src_subdir)generate_apidocs.<locals>.find_src_subdir$  s    
A'',,szz2C&ggll34ww}}S!!RWW^^C%8%8!!#&  r"   z/Mainpage.doxz
/README.mdDoxyfilerT   rU   zDoxyfile.globalr   PROJECT_NAMEpicsdot)INPUTDOTFILE_DIRSEXAMPLE_PATH
IMAGE_PATHTAGFILES=)OUTPUT_DIRECTORYGENERATE_TAGFILEHTML_OUTPUTWARN_LOGFILEz/header.htmlz/footer.html)HTML_HEADERHTML_FOOTERz/DoxygenLayout.xml)LAYOUT_FILEorg.kde.)QHP_VIRTUAL_FOLDERQHP_NAMESPACEQHG_LOCATION)GENERATE_MANGENERATE_QHPzDoxyfile.localzRunning Doxygenr   r   )$r+   r  r<   r=   r   r%   r   extendsrcdirsr   r)   r   r   r#   r>   rY   rZ   r[   r   write_entryr$   write_entriesexampledirsr(   r,   r.   rr   r$  r   r   r   r   r   r  r  r   )rw   r   r  r	  r  
input_listimage_path_listdoxyfile_pathdoxyfiler   r   writerloclocaldoxyfiles   f&&&          r   generate_apidocsr:    s$    {{{$S'^TT
 J	ww~~cjjoo788#**//O;<	

,6	7	7#**//L89ocjj&8&89:ocjj&7&789O
4W58^^58^^585K5KM 	N 	s556GGLL*5M	]C	1	1X[[cnn6GHg' '*+t$ '
  )>3==9 	szz/@/@&IJ ,SZZ->->F,SZZ-C-CD*	 	 	, 	:CLL'QL&!C#L'QR 	!$!$'WW\\#--F	 	 	H 	NN^;NN^; 	 	 	)== 	 	 	#&>>(3>>9 // 	 	1
 	 ]] WW 	 	&   4#34 3::,,--GGLL9J9J)KA)NP`aMww~~m,,[[W== ! t, !" >u 
2| LL"#OOS[[-01{' ' '$ (RL >=u 
2	1s^   A	V0V	(C V0(VD V0$3V0A%V0> V0V	9V0VV0V-(V00W 	c           	     <   R p\         P                  ! R4       \        P                  P	                  W1R,           4      p\        VR4      ;_uu_ 4       pRp\        P                  ! WbVVR7      pV'       g"   \         P                  ! R4        RRR4       R#  RRR4       \         P                  ! R	4       \        P                  P	                  W1R
,           4      p	\        V	R4      ;_uu_ 4       pV! RV.VR7      '       g    RRR4       R#  RRR4       \         P                  ! R4       V! RRRV ,           V	.4      '       g   R# \        P                  ! V4       \        P                  ! V	4       R#   + '       g   i     L; i  + '       g   i     L; i)z3Generate a dependency diagram for a framework.
    c                      \         P                  ! V 3/ VB  R#   \         P                   d=   p\        P                  ! R TP
                   RTP                   R24        Rp?R# Rp?ii ; i)zCommand z failed with error code .NFT)r  
check_callCalledProcessErrorr   r   cmd
returncode)r@  r   excs   &, r   run_cmd!generate_diagram.<locals>.run_cmd  s`    	!!#00  ,, 	MMHSWWI-EcnnEUUVWX	s    A,1A''A,zGenerating dependency diagramz.dotrT   F)	frameworkwith_qtzGenerating diagram failedNz- Simplifying diagramz-simplified.dottred)stdoutz- Generating diagram pngr  z-Tpng-oT)
r   r   r<   r=   r>   rZ   r
   generater   unlink)
png_pathr$   	dot_filesr   rC  dot_pathr   rF  oksimplified_dot_paths
   &&&&      r   generate_diagramrQ    s5    LL01ww||G%78H	h		  )02MM56 
	 	 
 LL()'',,w<M0MN	!3	'	'1)!44 
(	'4 
( LL+,E7D8O5HIJJ IIhII!"3 
	 
(	's   ;E82F8F	F	c                 T   VP                   '       d   . p\        \        V4      4       F  pW%,          ^,          P                  R4      '       g%   W%,          ^,          P                  R4      '       d   VP	                  W%,          4       Kd  VP	                  W%,          ^ ,          RW%,          ^,          ,           34       K  	  MTp\        T VP                  VP                  TVP                   '       d   RMRVVVP                  VP                  VP                  R,          R7
      # )   zhttp://zhttps://../z../../../resourcesz../../resourcesr  )	r#   r$   r%   r&   r*   r(   r)   r,   r+   )part_of_groupranger   r   r   r   rl   r$   r)   r,   metainfo)r   libr(   r*   corrected_tagfilesks   &&&&  r   create_fw_contextr[    s     s8}%A {1~((33x{1~7P7PQ[7\7\"))(+6"))8;q>58;q>;Q*RS & &4!hh ]]8;8I8I8I 4%6&.&)&<&< ]]<</ r"   c                     \        V 4       \        P                  ! V P                  R ,           VR7      p\	        W\        RR7      R7       R# )-)prefixdirT)WARN_IF_UNDOCUMENTED)r  N)rx   tempfilemkdtempr#   r:  dict)rw   tmp_base_dirr   s   && r   gen_fw_apidocsre    s7    cnns&:MGS&*&Er"   c                    \         P                  P                  \         P                  P                  V P                  R V P
                  R,           4      4      pV P                  '       d   RpMRpWV P                  ,           R,           3# )r   rq   z../..//html/)r<   r=   abspathr>   r,   r$   rU  )rX  r.   r^  s   &  r   create_fw_tagfile_tupleri    si    ggooMMMM')+,G
 S]]*X555r"   c                R    V ^8  d   QhR\         R\        \        \        3,          /# r   rw   r   r   r   r   r   )r   s   "r   r   r     s"     & &7 &c3h &r"   c                    \        V P                  4      P                  R 4      p\        V P                  W!4       \        V P                  4      P                  R4      pV P
                  P                  R,           p\        P                  ! VRR4      ;_uu_ 4       pVP                  VP                  V4      4       RRR4       R#   + '       g   i     R# ; i)zlibrary.htmlrV   z/html/search.htmlrT   rU   N)r@   r   rX   r   r-   r%   r,   rY   rZ   r[   r\   )rw   r   ra   rc   rd   rb   s   &&    r   finish_fw_apidocs_doxygenrn    s    #CNN3@@PDd0$S^^4AA-PEJJ((+>>M	]C	1	1T

5<<$% 
2	1	1	1s   !CC	c                R    V ^8  d   QhR\         R\        \        \        3,          /# rk  rl  )r   s   "r   r   r     s"     6 6 6d38n 6r"   c                 z    \        V P                  4      P                  R 4      p\        V P                  W!4       R# )zqdoc-wrapper.htmlN)r@   r   rX   r   r-   )rw   r   ra   s   && r   finish_fw_apidocs_qdocrq    s*    #CNN3@@ATUDckk45r"   c                R    V ^8  d   QhR\         R\        \        \        3,          /# )r   rw   returnrl  )r   s   "r   r   r     s"      ' d38n r"   c                    \        V P                  4      pR RRR/.pV P                  P                  '       dU   RV^ ,          R ,          ,           V^ ,          R &   VP	                  R RRV P                  P
                  P                  /4       VP	                  R RRV P                  /4       RV P                  RRR	V P                  R
V P                  RV P                  RR\        P                  P                  4       P                   R2RR\        V P                  V P                   4      /RRV/R\"        P$                  ! 4       RRV//
pV# )rO   z../../index.htmlrQ   rR   rT  r   rL   
doxygencsszdoxygen.cssrK   r   r%   r*   z1996-z The KDE developersdoxygen_menurN   	class_mapclasseskapidox_versionrM   )r   r.   r%   rU  r   rG   r$   r   r&   r   datetimedatetodayyearr   r-   r#   r	   get_kapidox_version)rw   classmaprN   r`   s   &   r   gen_template_environmentr    s1   ckk*H 	"# G
 zz"WQZ%77
6 2FCJJ<N<N<X<XZ[NNFL&#--AB 	swwmS__#**uX]]0027788KLJs{{CNN$KLi*5446w
G Nr"   c                $    V ^8  d   QhR\         /# r  r  )r   s   "r   r   r     s     , ,7 ,r"   c                     \        V 4      pV P                  '       d$   \        P                  ! R 4       \	        W4       R# \        P                  ! R4       \        W4       R# )zPostprocessing QtDoc...zPostprocessing Doxygen...N)r  r+   r   r   rq  rn  )rw   r   s   & r   finish_fw_apidocsr    sA    
"3
'C
{{{./s( 	01!#+r"   c                   . p\         P                  ! V P                  R,           4      pVP                  4        EF  p/ pV F  pVP                  R,          R8X  d'   VP
                  R8X  d   Rp MVP
                  VR&   KA  VP                  R,          R8X  d   VP
                  VR&   Kj  VP                  R,          R8X  d   VP
                  VR&   K  VP                  R,          R8X  d   VP
                  VR&   K  VP                  R,          R	8X  g   K  VP
                  f   R
MVP
                  VR	&   K  	  Vf   EK  VP                  V4       EK  	  RV P                  RV P                  RV/p\        V P                  R,           R4      ;_uu_ 4       p\        P                  ! 4       P                  V4       F  pVP                  V4       K  	  RRR4       R#   + '       g   i     R# ; i)a  Create json index from xml
<add>
  <doc>
    <field name="type">source</field>
    <field name="name">kcmodule.cpp</field>
    <field name="url">kcmodule_8cpp_source.html#l00001</field>
    <field name="keywords"></field>
    <field name="text"></field>
  </doc>
</add>
z/searchdata.xmlrl   typesourceNurlkeywordskeywordrQ    r$   	docfields/html/searchdata.jsonrT   )xmlETr   r,   r   attribrQ   r   rl   r$   rZ   jsonJSONEncoder
iterencoder[   )	rX  doclistr   	doc_childfieldchildindexdicr   chunks	   &        r   indexerr  #  s}    G;;s}}'889D\\^	E||F#v-::) E %

ff%/ %

ff%.$zzef%3#(::i f%/&+jj&8ejjf  NN5!# $( 	S]]W
H 
cmm55s	;	;q%%'228<EGGEN = 
<	;	;	;s   =G  G1	c                 
   . pV P                    F  p\        VP                  R ,           R4      ;_uu_ 4       p\        P                  ! V4      pVR,           F\  pVP
                  '       d5   VP                  P                  4       R,           VR,          ,           VR&   KI  RVR,          ,           VR&   K^  	  VP                  V4       RRR4       K  	  RV P                  RV P                  R	V/p\        V P                  R
,           R4      ;_uu_ 4       p\        P                  ! 4       P                  V4       F  pVP                  V4       K  	  RRR4       R#   + '       g   i     EK_  ; i  + '       g   i     R# ; i)r  r   r  rg  r  html/Nrl   r$   	libraries/searchdata.jsonrT   )r  rZ   r,   r  loadrU  rl   rF   r   r$   r  r  r[   )rG   r  rX  r   libindexitemr  r  s   &       r   create_product_indexr  P  s-   G  #-- 77==yy|H --$$$"%((.."2X"=U"KDK")DK"7DK	 .
 NN8$ >= ! 	W&&W
H 
g"44c	:	:a%%'228<EGGEN = 
;	: >== 
;	:	:s   BE=E1E.1F	c           
         . pV  F  pVP                   R ,          '       d   K  \        VP                  R,           R4      ;_uu_ 4       p\        P                  ! V4      pVR,           FG  pVR,           F7  p\
        P                  P                  VP                  VR,          4      VR&   K9  	  KI  	  VP                  V4       RRR4       K  	  RV/p\        RR	4      ;_uu_ 4       p\        P                  ! 4       P                  V4       F  pVP                  V4       K  	  RRR4       R#   + '       g   i     EK<  ; i  + '       g   i     R# ; i)
r  r  r   r  r  r  Nallzsearchdata.jsonrT   )rW  rZ   r,   r  r  r<   r=   r>   rl   r   r  r  r[   )	r^   r  rG   r   	prodindexproditemr  r  r  s	   &        r   create_global_indexr  g  s   GF##'##$66<<		!I%k22$[11D"$'',,w||T%["IDK 2 3 NN9% =<	  	w
H 
	%	%%%'228<EGGEN = 
&	% =<< 
&	%	%s   A<D/(=E/EE	c                 R   R pRpRpRpRpV  EF  p\         P                  ! \         P                  ! V4      4      pVP                  4       p	V	P	                  RR4       \         P
                  ! V	R4      p
RVP                  ,           V
n        \         P
                  ! V	R	4      pVP                  Vn        \         P
                  ! W4      p\         P
                  ! VR
4      pRVn        \         P
                  ! VR4      p\         P
                  ! W4      p\        VP                  4      ^ 8  d[   VP                  ^ ,          P                  '       d8   \         P
                  ! VRRVP                  R,           RVP                  /4      p\         P
                  ! W4      p\        VP                  R R7       EF  p\         P                  ! VP                  R,           4      pVP                  4       pVP                  R4       F  pVP                  '       d:   VP                  R,           VP                   R,          ,           VP                   R&   M'RVP                   R,          ,           VP                   R&   VP                  R,           VP                   R,          ,           VP                   R&   K  	  VP#                  RV,           4       F9  pVP                  '       d   XP%                  V4       K(  VP%                  V4       K;  	  VP#                  R4       F  pVP%                  V4       K  	  RVP                  R,           RRRRRR .pVP                  '       d   VP'                  VP                  R!,           VP                  R,           VP                  ,           R",           VP                  R,           VP                  ,           R#,           VP                  R,           VP                  ,           R$,           VP                  R,           VP                  ,           R%,           VP                  R,           VP                  ,           R&,           .4       MYVP'                  VP                  R",           VP                  R#,           VP                  R$,           VP                  R%,           .4       V F!  p\         P
                  ! VR'4      pVVn        K#  	  EK!  	  \(        P*                  P-                  R(4      '       g   \(        P.                  ! R(4       VP                  R),           pVP                  R*,           pVP1                  VR+R,R-7       \2        P4                  ! R.4      pVf   R0p\6        P8                  ! VVR1R2V,           .4       \(        P:                  ! V4       EK  	  R/# )3QtHelpProjectfilesfilterSectionr  tocversionz1.0r   r(  virtualFolderfilterAttributer   sectionrefri   r   c                     V P                   # r   )rl   )rX  s   &r   r   create_qch.<locals>.<lambda>  s    SXXr"   rJ   z/html/index.qhpz
.//*[@ref]rg  r  r   z.//z.//keywordsz*.jsonz/*.jsonzresources/css/*.cssz'resources/3rd-party/bootstrap/css/*.cssz.resources/3rd-party/jquery/jquery-3.1.0.min.jszresources/*.svgzresources/js/*.jszresources/icons/*z/*.htmlz/html/*.htmlz/html/*.pngz/html/*.cssz
/html/*.jsz/html/*.jsonfilerL   z.qhpz.qchrU   T)r{   xml_declarationzqhelpgenerator-qt5Nr   rI  zqch/)r   r   Elementr   set
SubElementrl   rQ   r   r  rU  r$   rj   r   r,   findallr  r   r   r.  r<   r=   rk   rm   r[   ru   whichr  r  r   )r^   r(   tag_root	tag_filestag_filter_sectiontag_keywordstag_tocrG   tree_outroot_outr   virtual_folderfilter_sectionfilter_attributer  r  product_index_sectionr  rX  r   rootr  rK   resource	file_elemrl   outnamer   s   &&                          r   
create_qchr  |  sG   HI(LG>>"**X"67##%Y&MM(K8	#gll2	xA%llxD==9JK )mmNE2==>w  !A%  #111(*c9ugll]jNjlsu|  vG  vG  GH  )I%n8'++1EFFC88CMM,==>D<<>Dl3$$$*-((X*=U@S*SELL'*1ELL4G*GELL'&-llS&85<<;N&NU# 4 5=1$$$)007JJu%	 2 =1& 2 y(%9@!##	I $$$  LL9,LL3&1NBLL3&1MALL3&1MALL3&1L@LL3&1NB"    LL>1LL=0LL=0LL</	"  &MM%8	!)	 &_ Gf ww}}U##HHUO||F",,v%tgtD
  &:;!-NtVG^DE
		$k r"   )r   r:  r   r$  r   postprocessrx   r@   )F)NFNr   )NF)r  )BrY   rz  r<   r   r   ru   r  ra  sysr  typingr   r   r   r   r   r   rer   r   r:   urllib.parser   r  r  jinja2.environmentr   kapidoxr	   r
   DEPDIAGRAM_AVAILABLEImportErrordoxyfilewriterr   __all__r$  rr   objectr   r@   re   ro   rx   r   r   r   r   r   r   r   r   r   r  r:  rQ  r[  re  ri  rn  rq  r  r  r  r  r  r  r   r"   r   <module>r     s=     	      
   " " 	      % %  ' !" +	 &-4f -4`-
"*J!.H =@ $(EWYcg (VD@F!:$%N.Cc2L'TD
6&6
@,*Z.*[k  ! !s   .D 	DD