PyScribeとは
PyScribeとは困ったときのpythonのprintデバッグをより簡単に実行するためのライブラリです.
インストール方法
pip でインストールできます。
$ pip install pyscribe
使い方
デバッグ対象のプログラム内でpyscribeのAPIを呼び出し実行する.
コマンド
$ pyscribe do_something.py
実行時オプション
コマンド引数 | 内容 |
---|---|
--extraargs | 呼び出すプログラムに実行時引数を渡す |
--clean | pyscribeに関連する部分を削除したファイル({name}_clean.py)を出力 |
--desugared | pyscribeの形式からpythonの標準APIに則った形式に変換 |
--log | 実行時のログファイル(pyscribe_logs.txt)を出力 |
--nolines | 行番号を非表示 |
API呼び出し
API呼び出し | 内容 |
---|---|
pyscribe.Scriber(labels=[]) | pyscribeの初期化 |
pyscribe.p(object, label=None) | オブジェクトの値を型に合った形式で出力 |
pyscribe.iterscribe(object) | forやwhileループ内のイテレータの現在の値を出力 |
pyscribe.watch(object) | 指定したオブジェクトの値が変更されたときに出力 |
pyscribe.d(object, unit="*") | unitで指定した文字を区切り文字として出力 |
例
pyscribe_sample.py
from pyscribe import pyscribe
def main():
ps = pyscribe.Scriber()
x = "hogehoge"
ps.p(x)
y = "hello"
ps.p(y)
ps.watch(y)
y = "world"
y = "!!"
z = 1234
ps.d(z, unit="#")
if __name__ == "__main__":
main()
- 実行
$ pyscribe pyscribe_sample.py
- 結果
From line 7: x is the str hogehoge
From line 10: y is the str hello
From line 11: Watching variable y, currently str hello
From line 12: y changed to world
From line 13: y changed to !!
From line 16:
########################################
z is the int 1234
########################################
おわりに
シンプルなライブラリですが,困ったときのprintデバッグがより簡単になるかもしれません.
個人的には与えたオブジェクトの値の変更を監視できるwatchコマンドが便利かなと思いました.