扩展的回溯格式化程序
xtraceback的Python项目详细描述
xtraceback是一个扩展的python回溯格式化程序,支持变量 扩展和语法突出显示。
示例
作为一个上下文管理器,stdlib回溯模块是猴子补丁:
>>> import sys >>> import traceback >>> import xtraceback >>> >>> def some_func(): ... some_var = 2*2 ... raise Exception("exc") >>> >>> with xtraceback.StdlibCompat(): ... try: ... some_func() ... except: ... traceback.print_exc(file=sys.stdout) #doctest: +ELLIPSIS +REPORT_NDIFF Traceback (most recent call last): File "<doctest README.rst[...]>", line 3, in <module> 1 with xtraceback.StdlibCompat(): 2 try: --> 3 some_func() g:some_func = <function some_func at 0x...> g:sys = <module 'sys' (built-in)> g:traceback = <module 'traceback' from='<stdlib>/traceback.pyc'> g:xtraceback = <package 'xtraceback' from='xtraceback'> 4 except: 5 traceback.print_exc(file=sys.stdout) #doctest: +ELLIPSIS +REPORT_NDIFF File "<doctest README.rst[...]>", line 3, in some_func 1 def some_func(): 2 some_var = 2*2 --> 3 raise Exception("exc") some_var = 4 Exception: exc
作为系统例外挂钩:
>>> xtraceback.compat.install_sys_excepthook() >>> print sys.excepthook #doctest: +ELLIPSIS <bound method StdlibCompat.print_exception of <xtraceback.stdlibcompat.StdlibCompat object at 0x...>> >>> raise Exception("exc") #doctest: +ELLIPSIS Traceback (most recent call last): File "<stdlib>/doctest.py", line 1231, in __run compileflags, 1) in test.globs File "<doctest README.rst[...]>", line 1, in <module> raise Exception("exc") #doctest: +ELLIPSIS Exception: exc
本身:
>>> try: ... raise Exception("exc") ... except: ... print xtraceback.XTraceback(*sys.exc_info(), color=False) #doctest: +ELLIPSIS Traceback (most recent call last): File "<doctest README.rst[...]>", line 2, in <module> 1 try: --> 2 raise Exception("exc") g:some_func = <function some_func at 0x...> g:sys = <module 'sys' (built-in)> g:traceback = <module 'traceback' from='<stdlib>/traceback.pyc'> g:xtraceback = <package 'xtraceback' from='xtraceback'> 3 except: 4 print xtraceback.XTraceback(*sys.exc_info(), color=False) #doctest: +ELLIPSIS Exception: exc <BLANKLINE>
在站点自定义模块中:
import xtraceback xtraceback.compat.install()
配置
有关选项及其默认值,请参见xtraceback.xtraceback的构造函数。什么时候? 使用stdlib compat,xtraceback.stdlibcompat类有一个默认值 应该用重写更新的字典-默认实例 存在于xTraceBuff.Copa:
xtraceback.compat.defaults.update(option=value[, ...])
安装
包裹在pypi上:
pip install xtraceback
语法突出显示取决于pygments库:
pip install pygments
鼻子插件
nose插件启用了带有xtraceback标志的。参见鼻子测试-帮助 其他选择。