HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //lib/python3.6/site-packages/docutils/transforms/__pycache__/__init__.cpython-36.pyc
3

���Li�@sNdZdZddlmZmZmZGdd�de�ZGdd�d�ZGdd	�d	e�Zd
S)a�
This package contains modules for standard tree transforms available
to Docutils components. Tree transforms serve a variety of purposes:

- To tie up certain syntax-specific "loose ends" that remain after the
  initial parsing of the input plaintext. These transforms are used to
  supplement a limited syntax.

- To automate the internal linking of the document tree (hyperlink
  references, footnote references, etc.).

- To extract useful information from the document tree. These
  transforms may be used to construct (for example) indexes and tables
  of contents.

Each transform is an optional step that a Docutils component may
choose to perform on the parsed document.
ZreStructuredText�)�	languages�ApplicationError�
TransformSpecc@seZdZdS)�TransformErrorN)�__name__�
__module__�__qualname__�r	r	�/usr/lib/python3.6/__init__.pyrsrc@s&eZdZdZdZddd�Zdd�ZdS)�	Transformz;
    Docutils transform component abstract base class.
    NcCs$||_||_tj|jj|j�|_dS)zA
        Initial setup for in-place document transforms.
        N)�document�	startnoderZget_languageZsettingsZ
language_code�reporterZlanguage)�selfrr
r	r	r
�__init__*s
zTransform.__init__cKstd��dS)z5Override to apply the transform to the document tree.z"subclass must override this methodN)�NotImplementedError)r�kwargsr	r	r
�apply;szTransform.apply)N)rrr�__doc__�default_priorityrrr	r	r	r
r!s
rc@sLeZdZdZdd�Zddd�Zdd�Zdd	d
�Zdd�Zd
d�Z	dd�Z
dS)�Transformerz�
    Stores transforms (`Transform` classes) and applies them to document
    trees.  Also keeps track of components by component type name.
    cCs.g|_g|_||_g|_d|_i|_d|_dS)Nr)�
transforms�unknown_reference_resolversr�applied�sorted�
components�serialno)rrr	r	r
rGszTransformer.__init__NcKs6|dkr|j}|j|�}|jj||d|f�d|_dS)a+
        Store a single transform.  Use `priority` to override the default.
        `kwargs` is a dictionary whose contents are passed as keyword
        arguments to the `apply` method of the transform.  This can be used to
        pass application-specific data to the transform instance.
        Nr)r�get_priority_stringr�appendr)r�transform_class�priorityr�priority_stringr	r	r
�
add_transform`s
zTransformer.add_transformcCs8x,|D]$}|j|j�}|jj||dif�qWd|_dS)z3Store multiple transforms, with default priorities.Nr)rrrrr)rZtransform_listrr!r	r	r
�add_transformsns
zTransformer.add_transformscCs<|j}|dkr|j}|j|�}|jj|||if�d|_dS)z4Store a transform with an associated `pending` node.Nr)�	transformrrrrr)r�pendingr rr!r	r	r
�add_pendingws
zTransformer.add_pendingcCs|jd7_d||jfS)z�
        Return a string, `priority` combined with `self.serialno`.

        This ensures FIFO order on transforms with identical priority.
        �z	%03d-%03d)r)rr r	r	r
r�szTransformer.get_priority_stringcCs�x0|D](}|dkrq|j|j��||j|j<qWd|_g}x|D]}|j|j�qBWdd�|D�}|j�|jjdd�|D��dS)z�
        Store each component's default transforms, with default priorities.
        Also, store components by type name in a mapping for later lookup.
        NrcSsg|]}|j|f�qSr	)r )�.0�fr	r	r
�
<listcomp>�sz8Transformer.populate_from_components.<locals>.<listcomp>cSsg|]}|d�qS)r'r	)r(r)r	r	r
r*�s)r#Zget_transformsrZcomponent_typer�extendr�sort)rrZ	componentr�iZdecorated_listr	r	r
�populate_from_components�s

z$Transformer.populate_from_componentscCs�|jjj|jj�xj|jr||js:|jj�|jj�d|_|jj�\}}}}||j|d�}|j	f|�|j
j||||f�qWdS)z6Apply all of the stored transforms, in priority order.r')r
N)rrZattach_observerZnote_transform_messagerrr,�reverse�poprrr)rr rr%rr$r	r	r
�apply_transforms�s


zTransformer.apply_transforms)N)N)rrrrrr"r#r&rr.r1r	r	r	r
r@s
	

	rN)	rZ
__docformat__Zdocutilsrrrrrrr	r	r	r
�<module>s