
    N&i                         d Z dZddlZddlmZ ddlmZmZmZ ddl	m
Z
  G d de          Z G d	 d
e          Zi Zd ZdS )z0
This package contains Docutils Reader modules.
reStructuredText    N)import_module)utilsparsers	Component)	universalc                   @    e Zd ZdZdZdZd ZddZd Zd Z	d	 Z
d
 ZdS )Readera9  
    Abstract base class for docutils Readers.

    Each reader module or package must export a subclass also called 'Reader'.

    The two steps of a Reader's responsibility are to read data from the
    source Input object and parse the data with the Parser object.
    Call `read()` to process a document.
    readerreadersc                 r    t          j        |           t          j        t          j        t          j        gz   S N)r   get_transformsr   DecorationsExposeInternalsStripCommentsselfs    f/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/docutils/readers/__init__.pyr   zReader.get_transforms!   s1    '--!%#1& & 	&    Nc                 f    || _         	 ||r|                     |           d| _        	 d| _        dS )z
        Initialize the Reader instance.

        Several instance attributes are defined with dummy initial values.
        Subclasses may use these attributes as they wish.
        N)parser
set_parsersourceinput)r   r   parser_names      r   __init__zReader.__init__'   sI     	E >k>OOK(((<
	$ 	$r   c                 L    t          j        |          } |            | _        dS )zSet `self.parser` by name.N)r   get_parser_classr   )r   r   parser_classs      r   r   zReader.set_parser=   s#    /<<"lnnr   c                     || _         | j        s|| _        || _        | j                                         | _        |                                  | j        S r   )r   r   settingsreadr   parsedocument)r   r   r   r"   s       r   r#   zReader.readB   sK    { 	! DK [%%''


}r   c                     |                                  x| _        }| j                            | j        |           dx|_        |_        dS )z(Parse `self.input` into a document tree.N)new_documentr%   r   r$   r   current_sourcecurrent_liner   r%   s     r   r$   zReader.parseK   sJ    #'#4#4#6#66$*h///:>>("7"7"7r   c                 N    t          j        | j        j        | j                  }|S )z8Create and return a new empty document tree (root node).)r   r'   r   source_pathr"   r*   s     r   r'   zReader.new_documentQ   s     %dk&=t}MMr   )NN)__name__
__module____qualname____doc__component_typeconfig_sectionr   r   r   r#   r$   r'    r   r   r
   r
      s          NN& & &$ $ $ $,% % %
  ? ? ?    r   r
   c                       e Zd ZdZd ZdS )ReReaderz
    A reader which rereads an existing document tree (e.g. a
    deserializer).

    Often used in conjunction with `writers.UnfilteredWriter`.
    c                 *    t          j        |           S r   )r   r   r   s    r   r   zReReader.get_transforms`   s     '---r   N)r-   r.   r/   r0   r   r3   r   r   r5   r5   W   s-         . . . . .r   r5   c                     |                                  } | t          v rt          |          } 	 t          d| z             }n# t          $ r t          |           }Y nw xY w|j        S )z6Return the Reader class from the `reader_name` module.zdocutils.readers.)lower_reader_aliasesr   ImportErrorr
   )reader_namemodules     r   get_reader_classr=   h   sv    ##%%Ko%%%k2,2;>?? , , ,{++,=s   ? AA)r0   __docformat__sys	importlibr   docutilsr   r   r   docutils.transformsr   r
   r5   r9   r=   r3   r   r   <module>rC      s   
  # 



 # # # # # # . . . . . . . . . . ) ) ) ) ) )B B B B BY B B BJ. . . . .v . . . 	 	 	 	 	r   