
    L&i                        d Z ddlZddl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 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c mZ n# e$ r	 ddl mZ Y nw xY w	  ej"        e#          Z$ ee#d          Z% ej&         ej'        e(                    Z) G d de          Z*dedee+ef         fdZ,dS )a  
    sphinxcontrib.devhelp
    ~~~~~~~~~~~~~~~~~~~~~

    Build HTML documentation and Devhelp_ support files.

    .. _Devhelp: https://wiki.gnome.org/Apps/Devhelp

    :copyright: Copyright 2007-2019 by the Sphinx team, see README.
    :license: BSD, see LICENSE for details.
    N)path)AnyDict)nodes)addnodes)Sphinx)StandaloneHTMLBuilder)IndexEntries)get_translation)logging)NodeMatcher)make_filename)__version__F)Listconsolec                   \     e Zd ZdZdZ ed          ZdZg dZdZ	dZ
 fdZd Zd	 Z xZS )
DevhelpBuilderz7
    Builder that also outputs GNOME Devhelp file.
    devhelpzTo view the help file:
$ mkdir -p $HOME/.local/share/devhelp/books
$ ln -s $PWD/%(outdir)s $HOME/.local/share/devhelp/books/%(project)s
$ devhelpF)z	image/pngz	image/gifz
image/jpegTc                 d    t                                                       d| _        d| _        d S )Nz.html)superinit
out_suffixlink_suffix)self	__class__s    k/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/sphinxcontrib/devhelp/__init__.pyr   zDevhelpBuilder.initB   s)    !"    c                 P    |                      | j        | j        j                   d S N)build_devhelpoutdirconfigdevhelp_basenamer   s    r   handle_finishzDevhelpBuilder.handle_finishH   s%    4;(DEEEEEr   c                 x   t                               t          d                     t          j        d| j        j        | j        j        d| j        j                  }t          j	        |          }t          j
        |d          }| j                            | j        j        | d          }fdt          t          j        t"          	          }|                    |          D ]} ||           t          j
        |d
          t'          | j                                      |           }	fd|	D ]\  }
}|D ]\  }\  }}}
 |||           t+          j        ||dz             }t/          j        |d          5 }|                    |d           d d d            d S # 1 swxY w Y   d S )Nzdumping devhelp index...bookz
index.html)titlenamelinkversionchaptersF)prune_toctreesc                    t          | t          j                  st          | t          j                  r| D ]} ||           d S t          | t          j                  r(t          j        |d          }| D ]} ||           d S t          | t          j                  r.| d         |j	        d<   | 
                                |j	        d<   d S d S )Nsubrefurir*   r)   )
isinstancer   compact_paragraphr   bullet_list	list_itemetree
SubElement	referenceattribastext)nodeparentsubnodeitem	write_tocs       r   r>   z/DevhelpBuilder.build_devhelp.<locals>.write_toc^   s    $ :;; 
6$ 122
6# / /GIgv..../ /D%/22 6'66# - -GIgt,,,,- -D%/22 6(,Xf%(,f%%%6 6r   )toctree	functionsc                    t          |          dk    rnpt          |          dk    r%t          j        d| |d         d                    n8t          |          D ](\  }}t          j        dd|| fz  |d                    )|r9t	          j        dd|           }|D ]"} |d|d         |d         g            !d S d S )	Nr      function)r)   r*   z[%d] %sz\s*\(.*\)\s*$  )lenr5   r6   	enumeraterer/   )	r(   refssubitemsirefparent_titlesubitemr@   write_indexs	          r   rO   z1DevhelpBuilder.build_devhelp.<locals>.write_indext   s   4yyA~~Ta J&+$q'!*> > > > > (oo 2 2FAs$Y
*3q%j*@*-a&2 2 2 2 2  0!v&6EBB' 0 0GK<<< D '
B0 0 0 00 00 0r   z.devhelp.gzwzutf-8)loggerinfo__r5   Elementr"   
html_titleprojectr+   ElementTreer6   envget_and_resolve_doctree
master_docr   r   r2   r   traverser
   create_indexr   joingzipopenwrite)r   r!   outnameroottreer,   tocdocmatcherr:   indexkeygroupr(   rI   rJ   xmlfilefr@   rO   r>   s                    @@@r   r    zDevhelpBuilder.build_devhelpL   s?   B122333 }V#';#9"&+"5".%)[%8	: : :
  && #D*5511K"D 2 @ @	6 	6 	6 	6 	6 h8#FFFOOG,, 	& 	&DIdH%%%% $T;77	TX&&33D99	0 	0 	0 	0 	0 	0& " 	3 	3LS%05 3 3,,hE422223 )FGm$;<<Yw$$ 	#JJq'"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s   F//F36F3)__name__
__module____qualname____doc__r)   rS   epilog
copysourcesupported_image_typesadd_permalinksembeddedr   r%   r    __classcell__)r   s   @r   r   r   /   s          DR   F JDDD NH# # # # #F F FB# B# B# B# B# B# B#r   r   appreturnc                    |                      d           |                     t                     |                     t          t          j        t          d                     |                     dd d           t          dddS )Nzsphinx.builders.htmllocalesr#   c                 *    t          | j                  S r   )r   rV   r$   s    r   <lambda>zsetup.<locals>.<lambda>   s    mDL&A&A r   r   T)r+   parallel_read_safeparallel_write_safe)
setup_extensionadd_builderr   add_message_catalogrk   r   r]   package_diradd_config_valuer   )ru   s    r   setupr      s    .///OON###HdiY&G&GHHH+AA"$ $ $
 "#  r   )-rn   r^   rH   osr   typingr   r   docutilsr   sphinxr   sphinx.applicationr   sphinx.builders.htmlr	   (sphinx.environment.adapters.indexentriesr
   sphinx.localer   sphinx.utilr   sphinx.util.nodesr   sphinx.util.osutilr   sphinxcontrib.devhelp.versionr   xml.etree.ElementTreer5   rW   ImportError
lxml.etreer   	getLoggerrk   rQ   rS   abspathdirname__file__r   r   strr    r   r   <module>r      s  
 
  				                           % % % % % % 6 6 6 6 6 6 A A A A A A ) ) ) ) ) )       ) ) ) ) ) ) , , , , , , 5 5 5 5 5 5))))))))))   
 
	8	$	$_Xy))dl<4<1122_# _# _# _# _#* _# _# _#Dv $sCx.      s   	A   A.-A.