File: //usr/lib/python3/dist-packages/docutils/transforms/__pycache__/components.cpython-38.pyc
U
�w#[� � @ sl d Z dZddlZddlZddlZddlZddlmZmZ ddlm Z m
Z
ddlmZm
Z
G dd� de�ZdS ) z(
Docutils component-related transforms.
ZreStructuredText� N)�nodes�utils)�ApplicationError� DataError)� Transform�TransformErrorc @ s e Zd ZdZdZdd� ZdS )�FilteraA
Include or exclude elements which depend on a specific Docutils component.
For use with `nodes.pending` elements. A "pending" element's dictionary
attribute ``details`` must contain the keys "component" and "format". The
value of ``details['component']`` must match the type name of the
component the elements depend on (e.g. "writer"). The value of
``details['format']`` is the name of a specific format or context of that
component (e.g. "html"). If the matching Docutils component supports that
format or context, the "pending" element is replaced by the contents of
``details['nodes']`` (a list of nodes); otherwise, the "pending" element
is removed.
For example, the reStructuredText "meta" directive creates a "pending"
element containing a "meta" element (in ``pending.details['nodes']``).
Only writers (``pending.details['component'] == 'writer'``) supporting the
"html" format (``pending.details['format'] == 'html'``) will include the
"meta" element; it will be deleted from the output of all other writers.
i c C sT | j }|jd }|jd }| jjj| }|�|�rD|�|jd � n|j�|� d S )N� component�formatr ) Z startnodeZdetailsZdocumentZtransformerZ
componentsZsupportsZreplace_self�parent�remove)�self�pendingZcomponent_typer
r � r �@/usr/lib/python3/dist-packages/docutils/transforms/components.py�apply, s
zFilter.applyN)�__name__�
__module__�__qualname__�__doc__Zdefault_priorityr r r r r r s r )r Z
__docformat__�sys�os�re�timeZdocutilsr r r r Zdocutils.transformsr r r r r r r �<module> s