##
12.1.3 writer インタフェース

writer を作成するためのインタフェースは、インスタンス化しようと する個々の writer クラスに依存します。以下で解説するのは、 インスタンス化された全ての writer がサポートしなければならない インタフェースです。 ほとんどのアプリケーションでは `AbstractFormatter` クラスを formatter として使うことができますが、通常 writer はアプリケーション 側で与えなければならないので注意してください。

`flush`( | )

  バッファに蓄積されている出力データやデバイス制御イベントを フラッシュします。

`new_alignment`( | align)

  字揃えのスタイルを設定します。align の値は任意のオブジェクト を取りえますが、慣習的な値は文字列または `None` で、 `None` は writer の ``好む'' 字揃えを使うことを表します。 慣習的な align の値は `'left'`、 `'center'`、 `'right'`、および `'justify'` です。

`new_font`( | font)

  フォントスタイルを設定します。font は、デバイスの標準のフォント が使われることを示す `None` か、 `(`size, italic, bold,teletype`)` の形式をとるタプルになります。size はフォントサイズを示す文字列 になります; 特定の文字列やその解釈はアプリケーション側で定義します。 italic、bold、および teletype といった値は ブール値で、それらの属性を使うかどうかを指定します。

`new_margin`( | margin, level)

  マージンレベルを整数値 level に設定し、論理タグ (logical tag) を margin に設定します。論理タグの解釈は writer の判断に 任されます; 論理タグの値に対する唯一の制限は level が 非ゼロの値の際に偽であってはならないということです。

`new_spacing`( | spacing)

  割り付けスタイル (spacing style) を spacing に設定します。 Set the spacing style to spacing.

`new_styles`( | styles)

  追加のスタイルを設定します。styles の値は任意の値からなる タプルです; `AS_IS` 値は無視されます。 styles タプルはアプリケーションや writer の実装上の都合に より、集合としても、スタックとしても解釈され得ます。

`send_line_break`( | )

  現在の行を改行します。

`send_paragraph`( | blankline)

  少なくとも blankline 空行分の間隔か、空行そのもので段落を 分割します。blankline の値は整数になります。 writer の実装では、改行を行う必要がある場合、このメソッドの呼び出しに 先立って `send_line_break()` の呼び出しを受ける必要あります; このメソッドには段落の最後の行を閉じる機能は含まれておらず、 段落間に垂直スペースを空ける役割しかありません。

`send_hor_rule`( | *args, **kw)

  水平罫線を出力デバイスに表示します。このメソッドへの引数は 全てアプリケーションおよび writer 特有のものなので、注意して 解釈する必要があります。このメソッドの実装では、すでに改行が `send_line_break()` によってなされているものと仮定しています。

`send_flowing_data`( | data)

  行端が折り返され、必要に応じて再割り付け解析を行った (re-flowed) 文字データを出力します。このメソッドを連続して呼び出す上では、 writer は複数の空白文字は単一のスペース文字に縮約されていると 仮定することがあります。

`send_literal_data`( | data)

  すでに表示用に書式化された文字データを出力します。 これは通常、改行文字で表された改行を保存し、新たに改行を持ち込 まないことを意味します。 `send_formatted_data()` インタフェースと違って、 データには改行やタブ文字が埋め込まれていてもかまいません。

`send_label_data`( | data)

  可能ならば、data を現在の左マージンの左側に設定します。 data の値には制限がありません; 文字列でない値の扱い方は アプリケーションや writer に完全に依存します。このメソッドは 行の先頭でのみ呼び出されます。