35.10. "pipes" --- シェルパイプラインへのインタフェース
*******************************************************

**ソースコード:** Lib/pipes.py

======================================================================

"pipes" モジュールでは、 *pipeline* の概念 --- あるファイルを別のファ
イルに変換する機構の直列接続 --- を抽象化するためのクラスを定義してい
ます。

このモジュールは **/bin/sh** コマンドラインを利用するため、
"os.system()" および "os.popen()" のための POSIX 準拠のシェル、または
互換のシェルが必要です。

"pipes" モジュールでは、以下のクラスを定義しています:

class pipes.Template

   パイプラインを抽象化したクラス。

以下はプログラム例です:

   >>> import pipes
   >>> t = pipes.Template()
   >>> t.append('tr a-z A-Z', '--')
   >>> f = t.open('pipefile', 'w')
   >>> f.write('hello world')
   >>> f.close()
   >>> open('pipefile').read()
   'HELLO WORLD'


35.10.1. テンプレートオブジェクト
=================================

テンプレートオブジェクトは以下のメソッドを持っています:

Template.reset()

   パイプラインテンプレートを初期状態に戻します。

Template.clone()

   元のパイプラインテンプレートと等価の新しいオブジェクトを返します。

Template.debug(flag)

   *flag* が真の場合、デバッグをオンにします。そうでない場合、デバッグ
   をオフにします。デバッグがオンの時には、実行されるコマンドが印字さ
   れ、より多くのメッセージを出力するようにするために、シェルに "set
   -x" 命令を与えます。

Template.append(cmd, kind)

   新たなアクションをパイプラインの末尾に追加します。*cmd* 変数は有効
   な bourne shell 命令でなければなりません。*kind* 変数は二つの文字か
   らなります。

   最初の文字は "'-'" (コマンドが標準入力からデータを読み出すことを意
   味します)、"'f'" (コマンドがコマンドライン上で与えたファイルからデ
   ータを読み出すことを意味します)、あるいは "'.'" (コマンドは入力を読
   まないことを意味します、従ってパイプラインの先頭になります)、のいず
   れかになります。

   同様に、二つ目の文字は "'-'" (コマンドが標準出力に結果を書き込むこ
   とを意味します)、"'f'" (コマンドがコマンドライン上で指定したファイ
   ルに結果を書き込むことを意味します)、あるいは "'.'" (コマンドはファ
   イルを書き込まないことを意味し、パイプラインの末尾になります)、のい
   ずれかになります。

Template.prepend(cmd, kind)

   パイプラインの先頭に新しいアクションを追加します。引数の説明につい
   ては "append()" を参照してください。

Template.open(file, mode)

   ファイル類似のオブジェクトを返します。このオブジェクトは *file* を
   開いていますが、パイプラインを通して読み書きするようになっています
   。*mode* には "'r'" または "'w'" のいずれか一つしか与えることができ
   ないので注意してください。

Template.copy(infile, outfile)

   パイプを通して *infile* を *outfile* にコピーします。
