##
2 Dialect クラスと書式化パラメタ

レコードに対する入出力形式の指定をより簡単にするために、 特定の書式化パラメタは表現形式 (dialect) にまとめてグループ化されます。 表現形式は `Dialect` クラスのサブクラスで、様々なクラス特有の メソッドと、`validate()` メソッドを一つ持っています。 `reader` または `writer` オブジェクトを生成するとき、 プログラマは文字列または `Dialect` クラスのサブクラスを表現形式 パラメタとして渡さなければなりません。さらに、dialect パラメタ の代りに、プログラマは上で定義されている属性と同じ名前を持つ 個々の書式化パラメタを `Dialect` クラスに指定することができます。

Dialect は以下の属性をサポートしています:

`delimiter`
  フィールド間を分割するのに用いられる 1 文字からなる文字列です。 デフォルトでは `','` です。

`doublequote`
  フィールド内に現れた quotechar のインスタンスで、クオートではない その文字自身でなければならない文字をどのようにクオートするかを制御します。 `True` の場合、この文字は二重化されます。 `False` の場合、 escapechar は quotechar の前に置かれます。デフォルトでは `True` です。

  出力においては、doublequote が `False` で escapechar がセットされていない場合、フールド内に quotechar が現れると `Error` が送出されます。

`escapechar`
  writer が、 quoting が `QUOTE_NONE` に設定されている場合に delimiter をエスケープするため、および、 doublequote が `False` の場合に quotechar をエスケープするために用いられる、 1 文字からなる文字列です。 読み込み時には escapechar はそれに引き続く文字の特別な意味を取り除きます。 デフォルトでは `None` で、エスケープを行ないません。

`lineterminator`
  `writer` が作り出す各行を終端する際に用いられる文字列です。 デフォルトでは `'\r\n'` です。

  注意: `reader` は `'\r'` または `'\n'` のどちらかを行末と 認識するようにハードコードされており、 lineterminator を無視します。 この振る舞いは将来変更されるかもしれません。

`quotechar`
  delimiter や quotechar といった特殊文字を含むか、 改行文字を含むフィールドをクオートする際に 用いられる 1 文字からなる文字列です。デフォルトでは `'"'` です。

`quoting`
  クオートがいつ writer によって生成されるか、また reader によって認識されるかを制御します。 `QUOTE_*` 定数のいずれか (9.1.1 節参照) を とることができ、デフォルトでは`QUOTE_MINIMAL` です。

`skipinitialspace`
  `True` の場合、delimiter の直後に続く空白は無視されます。 デフォルトでは `False` です。