一个用于解决Python中糟糕的跟踪信息显示的实用程序,使其更易于阅读。
项目描述
TBVaccine是一个实用程序,它以美观的格式打印Python跟踪信息。它会自动突出显示你关心的行,并淡化你不关心的行,并通过着色跟踪信息中的各个元素来使其更容易解析。
以下是截图。这是之前的
这是之后的
如果你在代码中添加钩子或调用TBVaccine,它还可以打印每个堆栈帧中的所有变量。也就是说,它会变成这样
变成这样
安装
要安装,请使用 pip
pip install tbvaccine
你完成了!
全局使用
你可以让TBVaccine在你的整个系统中插入自己,并将它的触角伸入所有库中,就像一个可爱、有用的克苏鲁。这样,系统中每个Python跟踪信息都将变得美观。只需设置 TBVACCINE 环境变量为1即可。
例如,对于bash
export TBVACCINE=1
或者fish
set -x TBVACCINE=1
作为命令行工具使用
TBVaccine可以通过多种方式从命令行使用。
python -m tbvaccine myscript.py
或者只需将程序的STDERR管道输入到你要监视的程序中
./myscript.py 2>&1 | tbvaccine
现在所有的跟踪信息都将变得美观!
作为Python库使用
有几种方法可以将TBVaccine用作Python库。
按照如下方式初始化
from tbvaccine import TBVaccine tbv = TBVaccine( code_dir="/my/code/dir", isolate=True )
code_dir 标记了我们编写的目录。该目录下在跟踪信息中出现的文件将被突出显示。如果没有传递,将使用 os.getcwd() 返回的当前目录。
如果 isolate 为 False,则所有行都将着色,并且忽略 code_dir。
如果 show_vars 为 False,则不会在每个堆栈帧中打印变量。
在 except 块中使用它
from tbvaccine import TBVaccine try: some_stuff() except: print(TBVaccine().format_exc())
要将它设置为打印跟踪回溯的默认方式,请使用 add_hook()(它也接受 TBVaccine 类的任何参数)
import tbvaccine tbvaccine.add_hook(isolate=False) 1 / 0
砰!立即获得漂亮的跟踪回溯。
日志集成
您可以将 TBVaccine 与日志集成如下
class TbVaccineFormatter(logging.Formatter): def formatException(self, exc_info): return TBVaccine(isolate=True).format_exc() sh = logging.StreamHandler() sh.setFormatter(TbVaccineFormatter('[%(levelname)s] %(asctime)s : %(message)s', '%Y-%m-%d %H:%M:%S')) logger.addHandler(sh)
尾声
这个库还相当新,如果某些功能不符合预期,请贡献补丁,并请告诉您的朋友!希望有一天它将集成到 Python 解释器本身中。
– Stavros
项目详情
下载文件
下载适合您平台的应用程序。如果您不确定要选择哪一个,请了解更多关于 安装包 的信息。
源分布
构建分布
tbvaccine-0.3.1.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 8665d037ac8ad4c97bc44512de91798565b1226f7b2f59669bb7dbe9a1f87718 |
|
MD5 | 680db7c14961091cd968a614be9be47c |
|
BLAKE2b-256 | b22ee8a5f61ae44deb508778fc828fe9cc167d5bbc5e594f016f5c477aabf293 |
tbvaccine-0.3.1-py2.py3-none-any.whl 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 3aae41b75e237f2840dde274722b1070ca43d65dd24cf60344bd6d345c77cc3d |
|
MD5 | e6099ee0d69d5d1301d740f7c006aa08 |
|
BLAKE2b-256 | b1fb84c930393fb23cf5fef93629df6370c51639306f0f403b9628f1d44b3b26 |