以visionmedia的node.js调试模块为模型的微型python调试实用程序
pydebug的Python项目详细描述
以visionmedia的node.js debug为模型的微型python调试实用程序 模块和python 3打印功能
安装
$ python setup.py install
用法
使用debug,您只需调用导出的函数来生成 调试函数,向其传递一个名称,该名称将确定 返回函数,或模拟 python 3print函数,但默认情况下,打印到sys.stderr。一个 为每个函数选择唯一颜色以提高可见性。
示例test.py:
importpydebugimporttime## pydebug.debug(name)## once you have initialized the debug module you can call it as shown below## debug(*objects, sep=' ', end='\n', file=sys.stderr, flush=False)#debug=pydebug.debug("test")debug("hi there2")debug2=pydebug.debug("test2")debug2("awesome")debug({"awesome":True},True,1,"test")debug([],{1,2,3},{"awesome":True},True,1,"test")time.sleep(0.1)debug('should be milliseconds now')time.sleep(1)debug('should be seconds now')
然后使用debug环境变量根据 空格或逗号分隔的名称。下面是一些示例:
$ DEBUG=* python test_pydebug.py $ DEBUG=test python test_pydebug.py $ DEBUG=test2 python test_pydebug.py $ DEBUG=test* python test_pydebug.py
微秒差异
当主动开发应用程序时,可以看到 在一次debug()调用和下一次调用之间花费的时间。假设 示例在请求资源之前和之后调用debug()。 同时,“+nnnus”将显示 电话。
当文件不是tty时
当文件不是tty时,调用to_utc_string(),模拟 javascriptDate#toUTCString()方法的默认行为 在node.js调试模块中使用,使其在记录 调试信息如下所示
$ DEBUG=* python test_pydebug.py 2>&1 | grep test $ DEBUG=* python test_pydebug.py 2>&1 | grep test2
约定
如果您在一个或多个库中使用此函数,则应该使用 库的名称,以便开发人员可以将调试切换为 不需要猜名字。如果有多个调试器,则 应该在它们前面加上库名称并使用“:”分隔 特征。例如,connect中的“bodyparser”将是 “连接:BodyParser”。
通配符
“*”字符可用作通配符。例如,假设 库中有名为“connect:bodyparser”、“connect:compress”的调试器, “connect:session”,而不是用 DEBUG=connect:bodyParser,connect.compress,connect:session,您可以 只需执行DEBUG=connect:*,或使用此模块运行所有操作 只需使用DEBUG=*。
也可以通过用“--”预置特定的调试器排除特定的调试器。 字符或空白。例如:
$ DEBUG=test2,-test python test_pydebug.py $ DEBUG="test2 -test" python test_pydebug.py
许可证
麻省理工学院许可证(MIT)
版权所有(c)2013 Malcom Gilbert
特此免费向任何获得 本软件和相关文档文件的副本 “软件”),无限制地处理软件,包括 但不限于使用、复制、修改、合并、发布, 分发、再授权和/或出售软件副本,以及 允许向其提供软件的人员这样做,但须遵守 以下条件:
上述版权公告及本许可公告须包括在内 在软件的所有副本或大部分中。
软件按“原样”提供,不作任何形式的保证 或默示的,包括但不限于 适销性、适合特定目的和不侵权。 在任何情况下,作者或版权持有人均不对任何 索赔、损害赔偿或其他责任,无论是在合同诉讼中, 侵权行为或其他,由 软件或软件中的使用或其他交易。