
    L&i)                        d 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mZm	Z	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 ddlmZ ddlm Z m!Z! ddl"m#Z# ddl$m%Z%  ej&        e'          Z( ej)         ej*        e+                    Z, ee'd          Z- ej.        d          Z/dZ0de1dede1fdZ2 G d de          Z3dedee1ef         fdZ4dS )z
    sphinxcontrib.qthelp
    ~~~~~~~~~~~~~~~~~~~~

    Build input files for the Qt collection generator.

    :copyright: Copyright 2007-2019 by the Sphinx team, see README.
    :license: BSD, see LICENSE for details.
    N)path)AnyDictIterableListTuplecast)nodes)Node)addnodes)Sphinx)StandaloneHTMLBuilder)IndexEntries)get_translation)logging)NodeMatcher)
canon_pathmake_filename)SphinxRenderer)__version__consolezB(?P<title>.+) (\((class in )?(?P<id>[\w\.]+)( (?P<descr>\w+))?\))$z*<section title="%(title)s" ref="%(ref)s"/>filenamekwargsreturnc                 b    t          j        t          d|           }t          j        ||          S )N	templates)r   joinpackage_dirr   render_from_file)r   r   pathnames      j/home/geonatureadmin/si_en_reseau/tutos/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eeef         fd
ZddZdededdfdZdedefdZddededee         fdZdededefdZdedee         dedee         fdZdedee         f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   Nc                 d    t                                                       d| _        d| _        d S )N.html)superinit
out_suffixlink_suffix)self	__class__s    r!   r*   zQtHelpBuilder.initN   s)    !"r#   c                 2    | j         j        | j         j        fS N)configqthelp_themeqthelp_theme_optionsr-   s    r!   get_theme_configzQtHelpBuilder.get_theme_configU   s    {')IIIr#   c                 P    |                      | j        | j        j                   d S r0   )	build_qhpoutdirr1   qthelp_basenamer4   s    r!   handle_finishzQtHelpBuilder.handle_finishX   s#    t{DK$?@@@@@r#   r8   outnamec                    t                               t          d                     | j                            | j        j        | d          }g }t          t          j	        d          }|
                    |          D ]*}|                    |                     |                     +| j        D ]4\  }}}	}
t          |j        d|z  dz  }|                    d|z              5d	                    |          }g }t%          | j                                      | d
          }|D ];\  }}|D ]3\  }\  }}}|                    |                     |||                     4<d	                    |          }| j        j        r| j        j        }nd|d| j        j        }t/          j        dd|          }t/          j        dd|                              d          }|                                }t7          t9          j        ||dz             dd          5 }t;          d|| j        j        | j        j        | j        j        || j        j        |||                      |          
  
        }|!                    |           d d d            n# 1 swxY w Y   dtE          j        |d| #                    | j        j                            z   }dtE          j        |dd          z   }t                               t          d                     t7          t9          j        ||dz             dd          5 }t;          d|| j        j$        ||          }|!                    |           d d d            d S # 1 swxY w Y   d S )Nzwriting project file...F)prune_toctreesT)toctreez%s.htmltitlerefz                
)group_entrieszorg.sphinx..z[^a-zA-Z0-9.\-] z\.+z.qhpwzutf-8)encodingzproject.qhp)	r;   r@   versionproject	namespace
master_docsectionskeywordsfilesz	qthelp://docz
index.htmlz"writing collection project file...z.qhcpzproject.qhcp)r;   r@   homepage	startpage)%loggerinfo__envget_and_resolve_doctreer1   rK   r   r   compact_paragraphtraverseextend	write_tocdomain_indicessection_template	localnameappendr   r   create_indexbuild_keywordsqthelp_namespacerH   resubstriploweropenr   r"   
html_titlerI   get_project_fileswrite	posixpathget_target_urihtml_short_title)r-   r8   r;   tocdocrL   matchernode	indexnameindexclscontentcollapseitemrM   indexkeygroupr@   refssubitemskey_nspacefbodyrP   rQ   s                            r!   r7   zQtHelpBuilder.build_qhp[   s)   B011222 11$+2H$AF 2 H H h8$GGGOOG,, 	2 	2DOODNN40011116:6I 	0 	02Ix(#0B.7).C'E 'E EDOOK$.////99X&& TX&&33D3NN! 	L 	LLS%16 L L--h 3 3E4 J JKKKKL99X&&
 ;' 	I[1FF	I ,377DK4G4GHF*B77V,,22377 $)FGf$455sWMMM 	QR}g%)[%;T[EX'+{':f*.+*@(08%)%;%;F%C%CE E ED GGDMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 E4..t{/EFF"H "H H)."M"MM	B;<<===$)FGg$566gNNN 	RS~w%)[%A(0IG G GD GGDMMM		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s%   !A*JJJ 4NNNro   c                 J   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dS dS )NF   r      T)	
isinstancer
   	list_itemlenchildrenr   rW   	referencebullet_list)r-   ro   s     r!   	isdocnodezQtHelpBuilder.isdocnode   s    $00 	5t}""5$q'8#=>> 	5$q'!*eo66 	5$q'5#455 	5tr#      indentlevelc                    g }t          |t          j                  rN|                     |          r8t	          t
          j        |d                   }t	          t          j        |d                   }|d         }t          j	        |
                                                              dd          }d||dz  }|                    d|z  |z              t	          t          j        |d                   }	t	          t          t          j                 |	          }
|
D ].}|                    |                     ||dz                        /|                    d|z  d	z              nt          |t          j                  r0|D ]+}|                    |                     ||                     ,n>t          |t          j                  r|d         }t          j	        |
                                                              dd          }t"          ||dz  }d|z  |z   }|                    |                    d
d                                                     nt          |t          j                  r/|D ]+}|                    |                     ||                     ,nHt          |t
          j                  r.|D ]+}|                    |                     ||                     ,|S )Nr   refuri"z&quot;z)<section title="%(title)s" ref="%(ref)s">r?   z    r   z
</section>asciixmlcharrefreplace)r   r
   r   r   r	   r   rW   r   htmlescapeastextreplacer^   r   r   rY   rZ   r\   encodedecode)r-   ro   r   partsrW   r   linkr@   rt   r   
list_itemsr   subnodes                r!   rZ   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>--.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e/00 	C C CT^^G[AABBBBCh899 	C C CT^^G[AABBBBr#   namerA   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 )Nr@   idz()rD   T)quoter   z            z<keyword name="z" id="z" ref="z"/>r   r   )
_idpatternmatch	groupdictgetendswithr   r   r   )
r-   r   rA   matchobjr   	shortnamer   nameattrrefattrrt   s
             r!   keyword_itemzQtHelpBuilder.keyword_item   s   ##D)) 		 **,,I!'*It$$B!!$'' +%crcN	II6==BBB;t4000+c!fD111 	T8SUSUSUW^W^W^__DD8777SSDG0111r#   r@   rx   ry   c                    g }t          |          dk    r0|                    |                     ||d                              nQt          |          dk    r>t          |          D ].\  }}|                    |                     ||                     /|r;|D ]8}|                    |                     |d         |d         g                      9|S )Nr   r   )r   r^   r   	enumeraterY   r`   )r-   r@   rx   ry   rM   irA   subitems           r!   r`   zQtHelpBuilder.build_keywords   s     t99>>OOD--eT!W==>>>>YY]]#D// ? ?3  1 1% = =>>>> 	Q# Q Q 3 3GAJ
B O OPPPPr#   c                 @   |                     t          j                  s|t          j        z  }t          |          }g }t	          j        |d          }t	          j        || j                  }t          j        |          D ]\  }}}|                    ||f          }	t          |          D ]m}
|	r|
                     d          r|
                     d          r?t	          j        ||
          |d          }|
                    t          |                     n|S )N_staticz.jsr(   )r   ossepr   r   r   imagedirwalk
startswithsortedr^   r   )r-   r8   olenproject_files	staticdir	imagesdirrootdirsrN   resourcedirfnr   s               r!   rh   zQtHelpBuilder.get_project_files   s   rv&& 	bfF6{{Ifi00	Ifdm44	!# 	? 	?D$//9i*@AAKUmm ? ? ?E(:(: ?r{{7?S?S ?#yr224559H!((H)=)=>>>?
 r#   )r   N)r   )__name__
__module____qualname____doc__r   rT   epilog
copysourcesupported_image_typesadd_permalinksembeddeddownload_supportsearchr*   r   strr   r5   r:   r7   r   boolr   intr   rZ   r   r   r`   rh   __classcell__)r.   s   @r!   r%   r%   3   s         DR I J JF J+ + + N H F# # # # # #J%T	"2 J J J JA A A A9 9c 9d 9 9 9 9vd t       d    T#Y        D 3 3    ,C tCy C DQTI    , S	        r#   r%   appc                    |                      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sphinx.builders.htmllocalesr9   c                 *    t          | j                  S r0   )r   rI   r4   s    r!   <lambda>zsetup.<locals>.<lambda>  s    t|9T9T r#   r   ra   r2   nonavr3   T)rH   parallel_read_safeparallel_write_safe)setup_extensionadd_builderr%   add_message_catalogr   r   r   r   add_config_valuer   r   )r   s    r!   setupr     s    .///OOM"""HdiY&G&GHHH*,T,TV\]]]+T6C5AAA&999/V<<< "#  r#   )5r   r   r   rj   rb   r   typingr   r   r   r   r   r	   docutilsr
   docutils.nodesr   sphinxr   sphinx.applicationr   sphinx.builders.htmlr   (sphinx.environment.adapters.indexentriesr   sphinx.localer   sphinx.utilr   sphinx.util.nodesr   sphinx.util.osutilr   r   sphinx.util.templater   sphinxcontrib.qthelp.versionr   	getLoggerr   rR   abspathdirname__file__r   rT   compiler   r\   r   r"   r%   r    r#   r!   <module>r      sN     				     				       9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9                   % % % % % % 6 6 6 6 6 6 A A A A A A ) ) ) ) ) )       ) ) ) ) ) ) 8 8 8 8 8 8 8 8 / / / / / / 4 4 4 4 4 4 
	8	$	$dl<4<1122_Xy)) RZIK K
 @ =# = = = = = =
L L L L L) L L L^v $sCx.      r#   