33.1. formatter — Generic output formatting This module supports
two interface definitions, each with multiple implementations.
The formatter interface is used by the HTMLParser class of the
htmllib module, and the writer interface is required by the
formatter interface. Formatter objects transform an abstract
flow of formatting events into specific output events on writer
objects. Formatters manage several stack structures to allow
various properties of a writer object to be changed and
restored; writers need not be able to handle relative changes
nor any sort of “change back” operation. Specific writer
properties which may be controlled via formatter objects are
horizontal alignment, font, and left margin indentations. A
mechanism is provided which supports providing arbitrary, non-
exclusive style settings to a writer as well. Additional
interfaces facilitate formatting events which are not
reversible, such as paragraph separation. Writer objects
encapsulate device interfaces. Abstract devices, such as file