32.9. pyclbr --- Python クラスブラウザサポート

ソースコード: Lib/pyclbr.py


この pyclbr モジュールはモジュールで定義されたクラス、メソッド、およびトップレベルの関数について、限られた量の情報を取得するのに使われます。伝統的な 3 ペイン形式のクラスブラウザを実装するのに十分な情報を提供します。情報は、モジュールのインポートによらず、ソースコードから抽出します。このため、このモジュールは信用できないソースコードに対して利用しても安全です。この制限から、多くの標準モジュールやオプションの拡張モジュールを含む、 Python で実装されていないモジュールに対して利用することはできません。

pyclbr.readmodule(module, path=None)

モジュールを読み込み、クラス名からクラス記述オブジェクトにマップする辞書を返します。パラメタ module はモジュール名を表す文字列でなくてはなりません; パッケージ内のモジュール名でもかまいません。path パラメタはシーケンス型でなくてはならず、モジュールのソースコードがある場所を特定する際に sys.path の値に加えて使われます。

pyclbr.readmodule_ex(module, path=None)

readmodule() に似ていますが、返される辞書は、クラス名からクラス記述オブジェクトへの対応付けに加えて、トップレベル関数から関数記述オブジェクトへの対応付けも行っています。さらに、読み出し対象のモジュールがパッケージである場合、返される辞書はキー '__path__' を持ち、その値はパッケージの検索パスが入ったリストになります。

32.9.1. クラスオブジェクト

Class オブジェクトは、 readmodule()readmodule_ex() が返す辞書の値として使われており、以下のデータ属性を提供しています:

Class.module

クラス記述オブジェクトが記述している対象のクラスを定義しているモジュールの名前です。

Class.name

クラスの名前です。

Class.super

記述しようとしている対象クラスの、直接の基底クラス群について記述している Class オブジェクトのリストです。スーパクラスとして挙げられているが readmodule() が見つけられなかったクラスは、 Class オブジェクトではなくクラス名の文字列としてリストに挙げられます。

Class.methods

メソッド名を行番号に対応付ける辞書です。

Class.file

クラスを定義している class 文が入っているファイルの名前です。

Class.lineno

file で指定されたファイルにおける class 文の行番号です。

32.9.2. Function オブジェクト

Function オブジェクトは、 readmodule_ex() が返す辞書内でキーに対応する値として使われており、以下のデータ属性を提供しています:

Function.module

関数記述オブジェクトが記述している対象の関数を定義しているモジュールの名前です。

Function.name

関数の名前です。

Function.file

関数を定義してる def 文が入っているファイルの名前です。

Function.lineno

file で指定されたファイルにおける def 文の行番号です。