
    O&i                     V   d Z ddlZddlZddlmZmZmZm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! ddl"m#Z# ddl$m%Z%m&Z&m'Z'm(Z( ddl)m*Z*m+Z+m,Z, ddl-m.Z. ddl/m0Z0m1Z1m2Z2 ddl3m4Z4 ddl5m6Z6 erddl7m8Z8  e2j9        e:          Z; G d dej<                  Z= G d de=          Z> G d de=          Z? G d de          Z@ded ed!ed"efd#ZA G d$ d%e          ZBd&d'd(e#d)eCd"e	jD        fd*ZEd&d'd+eCd"efd,ZFdS )-zInput/Output files    N)TYPE_CHECKINGAnyListType)nodes)	Publisher)Values)	FileInputInput
NullOutputParser)
standalone)	Transform)DanglingReferences)UnfilteredWriter)addnodes)RemovedInSphinx70Warning)BuildEnvironment)AutoIndexUpgraderDoctreeReadEventFigureAlignerSphinxTransformer)LocalePreserveTranslatableMessagesRemoveTranslatableInline)SphinxDomains)UnicodeDecodeErrorHandlerget_filetypelogging)LoggingReporter)UIDTransformSphinxc                        e Zd ZU dZg Zeee                  ed<   de	de	ddf fdZ
dd
Zdeee                  f fdZdej        f fdZ xZS )SphinxBaseReaderzm
    A base class of readers for Sphinx.

    This replaces reporter by Sphinx's on generating document.
    
transformsargskwargsreturnNc                     ddl m} t          |          dk    r>t          |d         |          r(|d         | _        | j        j        | _        |dd          } t                      j        |i | d S )Nr   r#      )	sphinx.applicationr$   len
isinstance_appenv_envsuper__init__)selfr(   r)   r$   	__class__s       V/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/sphinx/io.pyr4   zSphinxBaseReader.__init__.   s{    ------t99q==ZQ88=QDI	DI8D$)&)))))    appr$   c                 ,    || _         |j        | _        d S N)r0   r1   r2   )r5   r9   s     r7   setupzSphinxBaseReader.setup7   s    	G			r8   c                     t                                                      | j        z   }t          g}|D ]}||v r|                    |           |S r;   )r3   get_transformsr'   r   remove)r5   r'   unused	transformr6   s       r7   r>   zSphinxBaseReader.get_transforms;   s^    WW++--?
 %% 	- 	-IJ&&!!),,,r8   c                    t                                                      }t          j        |_        t          |          |_        |j                            | j        j	                   |j
        }t          j        |          |_
        |S )zm
        Creates a new document object which has a special reporter object good
        for logging.
        )r3   new_documentr   documentr6   r   transformerset_environmentsettingsr1   reporterr!   from_reporter)r5   rD   rH   r6   s      r7   rC   zSphinxBaseReader.new_documentF   su    
 77''))%.  1::,,T]->??? $+9(CCr8   r9   r$   r*   N)__name__
__module____qualname____doc__r'   r   r   r   __annotations__r   r4   r<   r>   r   rD   rC   __classcell__r6   s   @r7   r&   r&   %   s           )+JT)_%****c *S *T * * * * * *   	T)_ 5 	 	 	 	 	 	en          r8   r&   c                   V     e Zd ZdZd fdZdeded	edej	        fd
Z
dedefdZ xZS )SphinxStandaloneReaderz-
    A basic document reader for Sphinx.
    r9   r$   r*   Nc                     | j         |j                                        z   | _         t                                          |           d S r;   )r'   registryr>   r3   r<   )r5   r9   r6   s     r7   r<   zSphinxStandaloneReader.setup^   s;    /CL,G,G,I,IIcr8   sourceparserrG   c                     || _         | j        s|| _        || _        |                     |j                  | _        |                                  | j        S r;   )rV   rW   rG   read_sourcer1   inputparserD   )r5   rV   rW   rG   s       r7   readzSphinxStandaloneReader.readb   sM    { 	! DK %%hl33


}r8   r1   c                     | j                                         }|g}|j                            d|j        |           |d         S )z-Read content from source and do post-process.zsource-readr   )rV   r\   eventsemitdocname)r5   r1   contentargs       r7   rY   z"SphinxStandaloneReader.read_sourcek   sA    +""$$ i
s{C8881vr8   rJ   )rK   rL   rM   rN   r<   r   r   r	   r   rD   r\   r   strrY   rP   rQ   s   @r7   rS   rS   Y   s              5 & F u~    / C        r8   rS   c                   $     e Zd ZdZd fdZ xZS )SphinxI18nReadera  
    A document reader for i18n.

    This returns the source line number of original text as current source line number
    to let users know where the error happened.
    Because the translated texts are partial and they don't have correct line numbers.
    r9   r$   r*   Nc                 J   t                                          |           | j        |j                                        z   | _        t
          t          t          t          t          t          t          t          g}|D ]%}|| j        v r| j                            |           &d S r;   )r3   r<   r'   rU   r>   r   r   r   r   r   r   r   r"   r?   )r5   r9   r@   rA   r6   s       r7   r<   zSphinxI18nReader.setup~   s    c/CL,G,G,I,II.8P#]MCS    	2 	2IDO++&&y111	2 	2r8   rJ   )rK   rL   rM   rN   r<   rP   rQ   s   @r7   re   re   u   sG         	2 	2 	2 	2 	2 	2 	2 	2 	2 	2r8   re   c                       e Zd ZdZdZddZdS )SphinxDummyWriterz0Dummy writer module used for generating doctree.)htmlr*   Nc                     d S r;    )r5   s    r7   	translatezSphinxDummyWriter.translate   s    r8   )r*   N)rK   rL   rM   rN   	supportedrl   rk   r8   r7   rh   rh      s3        ::I     r8   rh   rV   r(   r)   r*   c                     | S )z.Bypass source object as is to cheat Publisher.rk   )rV   r(   r)   s      r7   SphinxDummySourceClassro      s    Mr8   c                   0     e Zd ZdZdededdf fdZ xZS )SphinxFileInputzA basic FileInput for Sphinx.r(   r)   r*   Nc                 D    d|d<    t                      j        |i | d S )Nsphinxerror_handler)r3   r4   )r5   r(   r)   r6   s      r7   r4   zSphinxFileInput.__init__   s/    "*$)&)))))r8   )rK   rL   rM   rN   r   r4   rP   rQ   s   @r7   rq   rq      sX        ''*c *S *T * * * * * * * * * *r8   rq   r9   r$   r1   filenamec                    t          j        dt          d           t          |j                  }t          j        d|           t                      }|                    |            t          | j
        j        |          }| j                            | |          }|j        j        dk    r|j        dk    rt"          j        |_        t%          ||t'                      t(          t+                                }|                    d|j        d           |                    |	           |                                 |j        S )
z(Parse a document and convert to doctree.z#sphinx.io.read_doc() is deprecated.   )
stacklevelrs   CommonMarkParserrk   readerrW   writersource_classdestinationN)source_path)warningswarnr   r   r`   codecsregister_errorrS   r<   r   configsource_suffixrU   create_source_parserr6   rK   settings_spec	RSTParserr   rh   rq   r   process_programmatic_settingsrG   
set_sourcepublishrD   )r9   r1   ru   rt   r{   filetyperW   pubs           r7   read_docr      s-   M7*q: : : : .ck::M
(M222#%%F
LLCJ4h??H\..sH==F $6666;OSU;U;U  )6
6!,..!0 *	. . .C
 %%dCL$???NNxN(((KKMMM<r8   r   c                    t                      }|                    |            | j                            | |          }|j        j        dk    r|j        dk    rddlm} |j        |_        t          ||t                      t          t                                }ddi| j        j        }t          j        d d         d	k    r |j        di | n$ |j        di |                                |_        |S )
Nry   rk   r   r   rz   	tracebackTrw   )r      )rS   r<   rU   r   r6   rK   r   docutils.parsers.rstr   r   rh   rq   r   r1   rG   docutils__version_info__get_settingssetup_option_parserget_default_values)r9   r   r{   rW   r   r   defaultss          r7   create_publisherr      s   #%%F
LL\..sH==F $6666;OSU;U;U 	=<<<<<(6
 ""$LL  C T6SW%56H !$//$$8$$$$.s.::::MMOOJr8   )GrN   r   r   typingr   r   r   r   r   r   docutils.corer   docutils.frontendr	   docutils.ior
   r   r   docutils.parsersr   r   r   docutils.readersr   docutils.transformsr   docutils.transforms.referencesr   docutils.writersr   rs   r   sphinx.deprecationr   sphinx.environmentr   sphinx.transformsr   r   r   r   sphinx.transforms.i18nr   r   r   sphinx.transforms.referencesr   sphinx.utilr   r   r    sphinx.util.docutilsr!   sphinx.versioningr"   r-   r$   	getLoggerrK   loggerReaderr&   rS   re   rh   ro   rq   rc   rD   r   r   rk   r8   r7   <module>r      s       1 1 1 1 1 1 1 1 1 1 1 1        # # # # # # $ $ $ $ $ $ 4 4 4 4 4 4 4 4 4 4 # # # # # # 4 4 4 4 4 4 ' ' ' ' ' ' ) ) ) ) ) ) = = = = = = - - - - - -       7 7 7 7 7 7 / / / / / /2 2 2 2 2 2 2 2 2 2 2 2> > > > > > > > > > 6 6 6 6 6 6 H H H H H H H H H H 0 0 0 0 0 0 * * * * * * *)))))) 
	8	$	$1 1 1 1 1z( 1 1 1h    -   82 2 2 2 2' 2 2 2*    (   3 s c c    
* * * * *i * * *( !1 S U^    @( c i      r8   