shlex インスタンスは以下のメソッドを持っています:
) |
''
)、POSIX モードでは None
) が返されます。
str) |
) |
filename) |
通常、このメソッドはまず引数から何らかのクオートを剥ぎ取ります。
処理後の引数が絶対パス名であった場合か、以前に有効になったソースリクエスト
が存在しない場合か、以前のソースが (sys.stdin
のような)
ストリームであった場合、この結果はそのままにされます。そうでない
場合で、処理後の引数が相対パス名の場合、ソースインクルードスタックに
ある直前のファイル名からディレクトリ部分が取り出され、相対パスの
前の部分に追加されます (この動作は C 言語プリプロセッサにおける
#include "file.h"
の扱いと同様です) 。
これらの操作の結果はファイル名として扱われ、タプルの最初の要素 として返されます。同時にこのファイル名で open() を呼び出した 結果が二つ目の要素になります (注意: インスタンス初期化のときとは 引数の並びが逆になっています!)
このフックはディレクトリサーチパスや、ファイル拡張子の追加、その他の 名前空間に関するハックを実装できるようにするために公開されています。 `close' フックに対応するものはありませんが、shlex インスタンスは ソースリクエストされている入力ストリームが EOF を返した時には close() を呼び出します。
ソーススタックをより明示的に操作するには、push_source() および pop_source() メソッドを使ってください。
stream[, filename]) |
) |
[file[, line]]) |
'"%s", line %d: '
で、"%s" は現在のソースファイル名
で置き換えられ、"%d" は現在の入力行番号で置き換えられます
(オプションの引数を使ってこれらを上書きすることもできます)。
このやり方は、shlex のユーザに対して、Emacs やその他の Unix ツール群が解釈できる一般的な書式でのメッセージを生成する ことを推奨するために提供されています。
shlex サブクラスのインスタンスは、字句解析を制御したり、 デバッグに使えるような public なインスタンス変数を持っています:
True
であれば、トークンは空白文字でのみで分割されます。たとえば shlex がシェル引数と同じ方法で、コマンドラインを解析するのに便利です。
バージョン 2.3 で 新たに追加 された仕様です。
1
またはそれ以上の値の場合、
shlex インスタンスは動作に関する冗長な進捗報告を出力
します。この出力を使いたいなら、モジュールのソースコードを読めば
詳細を学ぶことができます。
''
) 、POSIX モードでは None
が入ります。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。