
    zi                       d Z ddlmZ ddlmZmZ ddl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mZ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% er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/  e!j0        e1          Z2 G d dej3                  Z4 G d de4          Z5 G d de4          Z6 G d de          Z7d-d$Z8 G d% d&e          Z9d.d,Z:dS )/zInput/Output files    )annotations)TYPE_CHECKINGAnyN)nodes)	Publisher)	FileInputInput
NullOutput)
standalone)DanglingReferences)UnfilteredWriter)addnodes)AutoIndexUpgraderDoctreeReadEventSphinxTransformer)LocalePreserveTranslatableMessagesRemoveTranslatableInline)SphinxDomains)logging)LoggingReporter)UIDTransform)ValuesParser)	TransformSphinx)BuildEnvironmentc                  T     e Zd ZU dZg Zded<   d fd	ZddZd fdZd fdZ	 xZ
S )SphinxBaseReaderzm
    A base class of readers for Sphinx.

    This replaces reporter by Sphinx's on generating document.
    list[type[Transform]]
transformsargsr   kwargsreturnNonec                    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       T/var/www/tmov.alphamb/tmov_inventario/venv/lib/python3.11/site-packages/sphinx/io.pyr1   zSphinxBaseReader.__init__/   s{    ------t99q==ZQ88=QDI	DI8D$)&)))))    appr   c                ,    || _         |j        | _        d S N)r-   r.   r/   )r2   r6   s     r4   setupzSphinxBaseReader.setup8   s    	G			r5   c                    t                                                      | j        z   }t          g}|D ]}||v r|                    |           |S r8   )r0   get_transformsr#   r   remove)r2   r#   unused	transformr3   s       r4   r;   zSphinxBaseReader.get_transforms<   s^    WW++--?
 %% 	- 	-IJ&&!!),,,r5   nodes.documentc                   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.
        )r0   new_documentr   documentr3   r   transformerset_environmentsettingsr.   reporterr   from_reporter)r2   rB   rF   r3   s      r4   rA   zSphinxBaseReader.new_documentG   su    
 77''))%.  1::,,T]->??? $+9(CCr5   r$   r   r%   r   r&   r'   r6   r   r&   r'   )r&   r"   )r&   r?   )__name__
__module____qualname____doc__r#   __annotations__r1   r9   r;   rA   __classcell__r3   s   @r4   r!   r!   &   s           )+J***** * * * * *   	 	 	 	 	 	         r5   r!   c                  4     e Zd ZdZd fdZddZddZ xZS )SphinxStandaloneReaderz-
    A basic document reader for Sphinx.
    r6   r   r&   r'   c                    | j         |j                                        z   | _         t                                          |           d S r8   )r#   registryr;   r0   r9   )r2   r6   r3   s     r4   r9   zSphinxStandaloneReader.setup_   s;    /CL,G,G,I,IIcr5   sourcer	   parserr   rE   r   r?   c                    || _         | j        s|| _        || _        |                     |j                  | _        |                                  | j        S r8   )rU   rV   rE   read_sourcer.   inputparserB   )r2   rU   rV   rE   s       r4   readzSphinxStandaloneReader.readc   sM    { 	! DK %%hl33


}r5   r.   r   strc                    | j                                         }|g}|j                            d|j        |           |d         S )z-Read content from source and do post-process.zsource-readr   )rU   r[   eventsemitdocname)r2   r.   contentargs       r4   rX   z"SphinxStandaloneReader.read_sourcel   sA    +""$$ i
s{C8881vr5   rI   )rU   r	   rV   r   rE   r   r&   r?   )r.   r   r&   r\   )rJ   rK   rL   rM   r9   r[   rX   rO   rP   s   @r4   rR   rR   Z   so                        r5   rR   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.
    r6   r   r&   r'   c                >   t                                          |           | j        |j                                        z   | _        t
          t          t          t          t          t          t          g}|D ]%}|| j        v r| j                            |           &d S r8   )r0   r9   r#   rT   r;   r   r   r   r   r   r   r   r<   )r2   r6   r=   r>   r3   s       r4   r9   zSphinxI18nReader.setup   s    c/CL,G,G,I,II.8P#]4D    	2 	2IDO++&&y111	2 	2r5   rI   )rJ   rK   rL   rM   r9   rO   rP   s   @r4   rd   rd   v   sG         	2 	2 	2 	2 	2 	2 	2 	2 	2 	2r5   rd   c                      e Zd ZdZdZddZdS )SphinxDummyWriterz0Dummy writer module used for generating doctree.)htmlr&   r'   c                    d S r8    )r2   s    r4   	translatezSphinxDummyWriter.translate   s    r5   N)r&   r'   )rJ   rK   rL   rM   	supportedrk   rj   r5   r4   rg   rg      s3        ::I     r5   rg   rU   r   r$   r%   r&   c                    | S )z.Bypass source object as is to cheat Publisher.rj   )rU   r$   r%   s      r4   SphinxDummySourceClassrn      s    Mr5   c                  $     e Zd ZdZd fdZ xZS )	SphinxFileInputzA basic FileInput for Sphinx.r$   r   r%   r&   r'   c                D    d|d<    t                      j        |i | d S )Nsphinxerror_handler)r0   r1   )r2   r$   r%   r3   s      r4   r1   zSphinxFileInput.__init__   s/    "*$)&)))))r5   rH   )rJ   rK   rL   rM   r1   rO   rP   s   @r4   rp   rp      sC        ''* * * * * * * * * *r5   rp   r6   r   filetyper\   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 )
NCommonMarkParserrj   r   r   )readerrV   writersource_classdestination	tracebackT   )r      )rR   r9   rT   create_source_parserr3   rJ   settings_specdocutils.parsers.rstr   r   rg   rp   r
   r.   rE   docutils__version_info__get_settingssetup_option_parserget_default_values)r6   rt   rw   rV   	RSTParserpubdefaultss          r4   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Jr5   )rU   r   r$   r   r%   r   r&   r   )r6   r   rt   r\   r&   r   );rM   
__future__r   typingr   r   r   r   docutils.corer   docutils.ior   r	   r
   docutils.readersr   docutils.transforms.referencesr   docutils.writersr   rr   r   sphinx.transformsr   r   r   sphinx.transforms.i18nr   r   r   sphinx.transforms.referencesr   sphinx.utilr   sphinx.util.docutilsr   sphinx.versioningr   docutils.frontendr   docutils.parsersr   docutils.transformsr   r*   r   sphinx.environmentr   	getLoggerrJ   loggerReaderr!   rR   rd   rg   rn   rp   r   rj   r5   r4   <module>r      s     " " " " " " % % % % % % % %        # # # # # # 4 4 4 4 4 4 4 4 4 4 ' ' ' ' ' ' = = = = = = - - - - - -       T T T T T T T T T T         
 7 6 6 6 6 6       0 0 0 0 0 0 * * * * * * 4((((((''''''------))))))333333 
	8	$	$1 1 1 1 1z( 1 1 1h    -   82 2 2 2 2' 2 2 2*    (      
* * * * *i * * *     r5   