pyclbr --- Python モジュールブラウザーサポート¶
ソースコード: Lib/pyclbr.py
pyclbr モジュールは、Python で実装されたモジュール内で定義されている関数、クラス、メソッドについて、限られた情報を提供します。
この情報でモジュールブラウザーを実装できます。
モジュールをインポートせず Python のソースコードから情報を抽出するため、信頼できないコードに対しても安全に使えます。
ただしこの制限により、標準およびオプションの拡張モジュールを含め、Python で実装されていないモジュールには使えません。
- pyclbr.readmodule(module, path=None)¶
モジュールレベルのクラス名をクラスの記述オブジェクトに対応付ける辞書を返します。 可能であれば、インポートされた基底クラスの記述オブジェクトも含まれます。 module 引数は読み込むモジュールの名前を表す文字列で、パッケージ内のモジュール名でもかまいません。 path を指定する場合、これはディレクトリパスのシーケンスで、モジュールのソースコードを探すために使われる
sys.pathの前に追加されます。この関数は当初のインターフェースで、後方互換性のためだけに残されています。 次の関数の結果を絞り込んだものを返します。
- pyclbr.readmodule_ex(module, path=None)¶
モジュール内で
def文またはclass文によって定義されている各関数とクラスの記述オブジェクトを含む、辞書によるツリーを返します。 返される辞書は、モジュールレベルの関数名とクラス名をそれぞれの記述オブジェクトに対応付けます。 入れ子になったオブジェクトは、その親のchildren辞書に格納されます。readmodule()と同様に、module は読み込むモジュールの名前で、path はsys.pathの前に追加されます。 読み込むモジュールがパッケージの場合、返される辞書にはキー'__path__'があり、その値はパッケージの検索パスを含むリストです。
Added in version 3.7: 入れ子になった定義の記述オブジェクトが追加されました。
新しい children 属性を通じてアクセスできます。
各オブジェクトには新しい parent 属性があります。
これらの関数が返す記述オブジェクトは、Function クラスと Class クラスのインスタンスです。
利用者がこれらのクラスのインスタンスを作成することは想定していません。
Function オブジェクト¶
クラスオブジェクト¶
- class pyclbr.Class¶
Classクラスのインスタンスは、class文で定義されたクラスを表します。Functionと同じ属性に加えて、さらに 2 つの属性を持ちます。- file¶
クラスが定義されているファイルの名前。
- module¶
対象のクラスを定義しているモジュールの名前。
- name¶
クラスの名前です。
- lineno¶
ファイル内で定義が始まる行の番号。
- parent¶
トップレベルのクラスでは
None、入れ子になったクラスでは親オブジェクト。Added in version 3.7.
- children¶
名前を、入れ子になった関数とクラスの記述オブジェクトに対応付ける辞書。
Added in version 3.7.
- super¶
対象クラスの直接の基底クラスを表す
Classオブジェクトのリスト。 スーパークラスとして名前が指定されていてもreadmodule_ex()が見つけられないクラスは、Classオブジェクトの代わりにクラス名の文字列として格納されます。