一个修复 Python 中可怕的回溯显示的实用程序,使它们更具可读性。
项目描述
TBVaccine 是一个漂亮地打印 Python 回溯的实用程序。它会自动突出显示您关心的行并淡化您不关心的行,并为回溯中的各种元素着色以使其更易于解析。
这是一些屏幕截图。这是之前的:
这是之后:
如果在代码中添加钩子或调用 TBVaccine,它还可以打印每个堆栈帧中的所有变量。也就是说,它变成了这样:
进入这个:
安装
要安装,请使用pip:
pip install tbvaccine
你完成了!
全球使用
你可以让 TBVaccine 将自己全部插入到你的系统中,并将它的触手插入你所有的库中,就像一个可爱、有用的 Cthulhu 一样。这样,您系统中的每一个 Python 回溯都会很漂亮。只需将TBVACCINE环境变量设置为 1,就完成了。
例如对于 bash:
export TBVACCINE=1
或鱼:
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 解释器本身中实现。
– 斯塔夫罗斯
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。