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" 文の行番号です。
