class documentation

"Visitor" pattern [GoF95]_ abstract superclass implementation for document tree traversals. Each node class has corresponding methods, doing nothing by default; override individual methods for specific and useful behaviour. The `dispatch_visit()` method is called by `Node.walk()` upon entering a node. `Node.walkabout()` also calls the `dispatch_departure()` method before exiting a node. The dispatch methods call "``visit_`` + node class name" or "``depart_`` + node class name", resp. This is a base class for visitors whose ``visit_...`` & ``depart_...`` methods must be implemented for *all* compulsory node types encountered (such as for `docutils.writers.Writer` subclasses). Unimplemented methods will raise exceptions (except for optional nodes). For sparse traversals, where only certain node types are of interest, use subclass `SparseNodeVisitor` instead. When (mostly or entirely) uniform processing is desired, subclass `GenericNodeVisitor`. .. [GoF95] Gamma, Helm, Johnson, Vlissides. *Design Patterns: Elements of Reusable Object-Oriented Software*. Addison-Wesley, Reading, MA, USA, 1995.

Method __init__ Undocumented
Method dispatch_departure Call self."``depart_`` + node class name" with `node` as parameter. If the ``depart_...`` method does not exist, call self.unknown_departure.
Method dispatch_visit Call self."``visit_`` + node class name" with `node` as parameter. If the ``visit_...`` method does not exist, call self.unknown_visit.
Method unknown_departure Called before exiting unknown `Node` types.
Method unknown_visit Called when entering unknown `Node` types.
Class Variable optional Tuple containing node class names (as strings).
Instance Variable document Undocumented
def dispatch_departure(self, node): (source)

Call self."``depart_`` + node class name" with `node` as parameter. If the ``depart_...`` method does not exist, call self.unknown_departure.

def dispatch_visit(self, node): (source)

Call self."``visit_`` + node class name" with `node` as parameter. If the ``visit_...`` method does not exist, call self.unknown_visit.

def unknown_departure(self, node): (source)

Called before exiting unknown `Node` types. Raise exception unless overridden.

def unknown_visit(self, node): (source)

Called when entering unknown `Node` types. Raise an exception unless overridden.

optional: tuple[str, ...] = (source)

Tuple containing node class names (as strings). No exception will be raised if writers do not implement visit or departure functions for these node classes. Used to ensure transitional compatibility with existing 3rd-party writers.