
    O&i                        d Z ddlZddlmZ ddl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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  ej         e!          Z" G d de          Z#dedee$ef         fdZ%dS )zChangelog builder.    N)path)AnyDictListTuplecast)package_dir)Sphinx)Builder)ChangeSetDomain)___)HTMLThemeFactory)logging)bold)copy_asset_file)	ensurediros_pathc                   x    e Zd ZdZdZ ed          ZddZdefdZ	dd	d
dZ
deddfdZdededefdZddZdS )ChangesBuilderzC
    Write a summary with all versionadded/changed directives.
    changesz#The overview file is in %(outdir)s.returnNc                     |                                   t          | j                  }|                    d          | _        | j                            | | j                   d S )Ndefault)create_template_bridger   appcreatetheme	templatesinit)selftheme_factorys     d/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/sphinx/builders/changes.pyr    zChangesBuilder.init   sX    ##%%%(22")))44
D$*-----    c                     | j         S N)outdirr!   s    r#   get_outdated_docsz ChangesBuilder.get_outdated_docs"   s
    {r$   addedchanged
deprecated)versionaddedversionchangedr,   ignoredc           
      &   | j         j        }t          t          | j                            d                    }i }g }i }|                    |          }|s9t                              t          t          d          |z                       d S t                              t          t          d                               |D ]}t          |j        t                    r|j        d         }	n|j        }	| j        |j                 }
|j                            dd          }|	rT|j                            d          r:|rd|	d	|
d
|}n	d|	d	|
d}|                    ||j        |j        f           |	s|j        rv|j        pt/          d          }|	st/          d          }	|rd|	d	|
d
|}n	d|	d	|
d}|                    |g                               ||j        |j        f           4|s8d|
                                d
|}| j        j        |j                                                 }|                    |j        |fg                               ||j        |j        f           | j         j        || j         j        | j         j        t?          |                                           t?          |          t?          |                                           | j         j!        | j         j"        d	}tG          tI          j%        | j&        d          dd          5 }|'                    | j(        )                    d|                     d d d            n# 1 swxY w Y   tG          tI          j%        | j&        d          dd          5 }|'                    | j(        )                    d|                     d d d            n# 1 swxY w Y   d|z  d|z  d|z  gdtT          dtV          dtV          ffdt                              t          t          d                               | j        j,        D ]}tG          | j        -                    |          | j        j         j.                  5 }	 |/                                }nC# t`          $ r6 t          1                    t          d          |           Y d d d            w xY w	 d d d            n# 1 swxY w Y   tI          j%        | j&        d te          |                    d!z   }tg          tI          j4        |                     tG          |dd"          5 }d#%                    fd$tk          |          D                       }| j        -                    |d%          |d&}|'                    | j(        )                    d'|                     d d d            n# 1 swxY w Y   d( | j6        7                    i                                            D             }tq          tI          j%        tr          d)d*d+d,          | j&        || j(        -           tq          tI          j%        tr          d)d.d+d/          | j&                   d S )0N	changesetzno changes in version %s.zwriting summary file...r   
 zc-apiz<b>z	</b>: <i>z:</i> z</i>.BuiltinszModule levelz<i>)	projectversion	docstitle
shorttitle
libchanges
apichangesotherchangesshow_copyrightshow_sphinxz
index.htmlwutf8)encodingzchanges/frameset.htmlzchanges.htmlzchanges/versionchanges.htmlz.. versionadded:: %sz.. versionchanged:: %sz.. deprecated:: %snoliner   c                 \    d| z  t          j        |          z   }D ]}||v rd|z  } n|S )Nz<a name="L%s"> </a>z<span class="hl">%s</span>)htmlescape)rA   rB   xhltexts      r#   hlz ChangesBuilder.write.<locals>.hll   sO    (2-D0A0AAD  997$>DE  Kr$   zcopying source files...z(could not read %r for changelog creationrstz.htmlzutf-8 c              3   <   K   | ]\  }} |d z   |          V  dS )   N ).0irB   rH   s      r#   	<genexpr>z'ChangesBuilder.write.<locals>.<genexpr>   s5      QQ9Atrr!a%QQQQQQr$   F)filenametextzchanges/rstsource.htmlc                      i | ]\  }}d |z   |S )theme_rM   )rN   keyvals      r#   
<dictcomp>z(ChangesBuilder.write.<locals>.<dictcomp>   s.     8 8 8JS#HsNC 8 8 8r$   themesr   staticzdefault.css_t)contextrendererbasicz	basic.css):configr6   r   r   env
get_domainget_changesets_forloggerinfor   r   
isinstancedescnametupletypemaptypecontentreplacedocname
startswithappendlinenomoduler   
setdefault
capitalizetitlesastextr5   
html_titlehtml_short_titlesorteditemshtml_show_copyrighthtml_show_sphinxopenr   joinr'   writer   renderintstrall_docsdoc2pathsource_encoding	readlinesUnicodeDecodeErrorwarningr   r   dirname	enumerater   get_optionsr   r	   )r!   r/   r6   domainr9   r:   r;   
changesetsr1   rd   ttextrZ   entryrn   titlectxfrj   linestargetfnrR   themectxrH   rG   s                         @@r#   r{   zChangesBuilder.write+   s    +%otx':':;'G'GHH<>
13
JL..w77
 	KKR ;<<wFGGHHHFD56677888# 	B 	BI),e44 .$-a0$-L0E'//c::G BI-88AA B H H:B((EEE:A'CEEH 8@xxGE!!5)*;Y=M"NOOOO BY- B"):Qz]] 1 00H H H:B((EEE:A'CEEH 8@xxGE%%fb1188%AR:C:J:L M M M M  +0+;+;+=+=+=+=wwG	(9:AACC''):E(BBGGNNI-y/?@B B B B {*/+6 !1!1!3!344 ,,"<#5#5#7#788"k=;7

 

 $)DK66fMMM 	IQRGGDN))*A3GGHHH	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I$)DK88#OOO 	OSTGGDN))*GMMNNN	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O )72*W4&02	3 	c 	c 	 	 	 	 	 	 	D56677888x( 	N 	NGdh''00#x>@ @ @ CDKKMMEE)   NN2&P#Q#QSZ[[[                      yeWW5E5EFFPHdl8,,---hg666 N!wwQQQQ	%@P@PQQQQQ $ 1 1'5 A A   --.FLLMMMN N N N N N N N N N N N N N N8 8J**2..44668 8 8	+xHo^^X	P 	P 	P 	P	+x(KXX	% 	% 	% 	% 	%sm   5/M00M47M4%/O  O$'O$S6R&%S6&2S&S6%S&&S66S:	=S:	A;W&&W*	-W*	rR   r6   c           	      ~    t          j        |          }dD ]%}|                    d|d|d|d|d          }&|S )N)r.   r-   r,   z.. z:: z<b>.. z</b>)rD   rE   ri   )r!   rR   r6   	directives       r#   rH   zChangesBuilder.hl   s`    {4  I 	L 	LI<<<			77 C C7@yy''' JL LDDr$   c                     d S r&   rM   r(   s    r#   finishzChangesBuilder.finish   s    r$   )r   N)__name__
__module____qualname____doc__namer   epilogr    r~   r)   rf   r   r{   rH   r   rM   r$   r#   r   r      s          DR566F. . . .3      #" G`%c `%d `% `% `% `%Ds S S         r$   r   r   r   c                 B    |                      t                     ddddS )NbuiltinT)r6   parallel_read_safeparallel_write_safe)add_builderr   )r   s    r#   setupr      s.    OON### "#  r$   )&r   rD   osr   typingr   r   r   r   r   sphinxr	   sphinx.applicationr
   sphinx.buildersr   sphinx.domains.changesetr   sphinx.localer   r   sphinx.themingr   sphinx.utilr   sphinx.util.consoler   sphinx.util.fileutilr   sphinx.util.osutilr   r   	getLoggerr   ra   r   r~   r   rM   r$   r#   <module>r      s            / / / / / / / / / / / / / /       % % % % % % # # # # # # 4 4 4 4 4 4         + + + + + +       $ $ $ $ $ $ 0 0 0 0 0 0 1 1 1 1 1 1 1 1		8	$	$@ @ @ @ @W @ @ @Fv $sCx.      r$   