o
    g                     @   s   d Z dZddlZddlZddlmZ ddlZddlmZm	Z	 ddl
mZ G dd de	ZG d	d
 d
eZi ddddddddddddddddddddddddddddddd d!d"d!d#d$d%Zd&d' ZdS )(z0
This package contains Docutils Writer modules.
reStructuredText    N)import_module)	languages	Component)	universalc                   @   sX   e Zd ZdZdZdZdd ZdZ	 dZ	 dZ		 dZ
	 dd Zd	d
 Zdd Zdd ZdS )Writera  
    Abstract base class for docutils Writers.

    Each writer module or package must export a subclass also called 'Writer'.
    Each writer must support all standard node types listed in
    `docutils.nodes.node_class_names`.

    The `write()` method is the main entry point.
    writerwritersc                 C   s   t | tjtjtjg S N)r   get_transformsr   MessagesFilterMessagesStripClassesAndElementsself r   W/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/docutils/writers/__init__.pyr   "   s
   zWriter.get_transformsNc                 C   s
   i | _ d S r
   )partsr   r   r   r   __init__6   s   zWriter.__init__c                 C   s:   || _ t|jj|j| _|| _|   | j	| j
}|S )a/  
        Process a document into its final form.

        Translate `document` (a Docutils document tree) into the Writer's
        native format, and write it out to its `destination` (a
        `docutils.io.Output` subclass object).

        Normally not overridden or extended in subclasses.
        )documentr   get_languagesettingslanguage_codereporterlanguagedestination	translatewriteoutput)r   r   r   r   r   r   r   r   ?   s   
zWriter.writec                 C   s   t d)a  
        Do final translation of `self.document` into `self.output`.  Called
        from `write`.  Override in subclasses.

        Usually done with a `docutils.nodes.NodeVisitor` subclass, in
        combination with a call to `docutils.nodes.Node.walk()` or
        `docutils.nodes.Node.walkabout()`.  The ``NodeVisitor`` subclass must
        support all standard elements (listed in
        `docutils.nodes.node_class_names`) and possibly non-standard elements
        used by the current Reader as well.
        z"subclass must override this method)NotImplementedErrorr   r   r   r   r   R   s   zWriter.translatec                 C   s,   | j | jd< | jjj| jd< tj| jd< dS )z<Assemble the `self.parts` dictionary.  Extend in subclasses.wholeencodingversionN)r   r   r   r   output_encodingdocutils__version__r   r   r   r   assemble_parts`   s   zWriter.assemble_parts)__name__
__module____qualname____doc__component_typeconfig_sectionr   r   r   r   r   r   r   r   r&   r   r   r   r   r      s"    
	r   c                   @   s   e Zd ZdZdd ZdS )UnfilteredWriterz
    A writer that passes the document tree on unchanged (e.g. a
    serializer.)

    Documents written by UnfilteredWriters are typically reused at a
    later date using a subclass of `readers.ReReader`.
    c                 C   s
   t | S r
   )r   r   r   r   r   r   r   q   s   
zUnfilteredWriter.get_transformsN)r'   r(   r)   r*   r   r   r   r   r   r-   g   s    r-   html	html4css1html4xhtml10html5html5_polyglotxhtmls5s5_htmllatexlatex2exelatexxetexluatexlualatexodfodf_odtodtooffice
openofficelibreofficepprint	pseudoxmlpformatrlpdfdocutils_xml)pdfxmlc                 C   st   |   } | tv rt|  } z
td|  }W |jS  ty9   z	t| }W Y |jS  ty8 } ztd|  d}~ww w )z6Return the Writer class from the `writer_name` module.zdocutils.writers.zNo writer named "%s".N)lower_writer_aliasesr   ImportErrorr   )writer_namemoduleerrr   r   r   get_writer_class   s   rP   )r*   __docformat__os.pathossys	importlibr   r$   r   r   docutils.transformsr   r   r-   rK   rP   r   r   r   r   <module>   sb   T	
