python 3.5的语法突出显示、声明性和可组合的漂亮打印机+
prettyprinter的Python项目详细描述
预打印机
python 3.5+的语法突出显示、声明性和可组合的漂亮打印机
pip install prettyprinter
- 替换标准库pprint:只需在导入中将pprint重命名为prettyprinter。
- 使用改进的Wadler Leijen布局算法实现最佳格式设置
- 用一个非常简单的声明性接口为自己的类型编写漂亮的打印机
漂亮地打印常见的python值:
>>>fromdatetimeimportdatetime>>>fromprettyprinterimportpprint>>>pprint({'beautiful output':datetime.now()}){'beautiful output':datetime.datetime(year=2017,month=12,day=12,hour=0,minute=43,second=4,microsecond=752094)}
以及您自己的,不需要任何手动字符串格式:
>>>classMyClass:...def__init__(self,one,two):...self.one=one...self.two=two>>>fromprettyprinterimportregister_pretty,pretty_call>>>@register_pretty(MyClass)...defpretty_myclass(value,ctx):...returnpretty_call(ctx,MyClass,one=value.one,two=value.two)>>>pprint(MyClass((1,2,3),{'a':1,'b':2}))MyClass(one=(1,2,3),two={'a':1,'b':2})>>>pprint({'beautiful output':datetime.now(),'beautiful MyClass instance':MyClass((1,2,3),{'a':1,'b':2})}){'beautiful MyClass instance':MyClass(one=(1,2,3),two={'a':1,'b':2}),'beautiful output':datetime.datetime(year=2017,month=12,day=12,hour=0,minute=44,second=18,microsecond=384219)}
附带以下漂亮的打印机定义,您可以通过调用prettyprinter.install_extras():
- datetime-(默认安装)
- enum-(默认安装)
- pytz-(默认安装)
- dataclasses-您创建的任何新类都将自动打印出来
- attrs-pretty打印您使用attrs 创建的任何新类
- django-漂亮地打印您的模型和查询集
- numpy-pretty打印具有显式类型的numpy标量
- requests-漂亮地打印来自requests库的请求、响应、会话等
- 自由软件:麻省理工学院许可证
- 文档:Documentation。
历史记录
0.18.0(2019-06-21)
- Improve prettyprinting of builtin bound methods.按@anntzer
- Fix test suite compatibility with hypothesis4.按@anntzer
- Use $COLORFGBG to help decide whether to use a dark or light style由@crowsonkb
- Truncate numpy arrays with ndim >= 2 so that the total printed does not exceed max_seq_len按@crowsonkb
- 修复了ipython repr在打印模拟实例(gh 61)时引发异常的问题
- 增加了对漂亮打印类型的支持。simplenamespace(gh 60)
- 修正了当值在上面一行有注释时字典打印缩进的问题(gh 59)
0.17.0(2019-03-14)
0.16.0(2019-02-27)
- Adds a new extra for numpy.额外的当前为numpy标量类型注册漂亮的打印机。使用import prettyprinter; prettyprinter.install_extras(['numpy'])启用它。谢谢@anntzer
- C-API named tuples are now automatically prettyprinted.c-api命名元组是从sys.flags、time.strptime(...)和os.stat(...)等表达式返回的。每个元组元素的fieldname使用输出中的注释进行注释。
0.15.0(2019-02-25)
此版本带来了错误修复、对pathlib预打印的增强(感谢@anntzer)和良好的性能提升。树规范化过程中有一个冗余的子树调用,导致指数运行时,如果数据高度嵌套,则会迅速恶化。那个额外的电话现在被取消了。
0.14.0(2018-07-25)
很可能没有突破性的变化。
- 由于github用户RazerM
- 修复了由于github用户jdanbrown
- 修复了setup.py需求列表中缺少逗号的问题
0.13.2(2018-05-29)
没有突破性的变化。
- 修复了在更改数据类API之后回归的数据类漂亮的打印机。修复由github用户dangirsh提供。
0.13.1(2018-02-03)
没有突破性的变化。
- 修正了gh问题17,其中django模型显示了一个不正确的显示名称字段的选择。
0.13.0(2018-02-03)
没有突破性的变化。
- 由于github用户johnnoone,添加了ast标准库模块的定义。
0.12.0(2018-01-22)
没有突破性的变化。
- <里>为看起来像是用collections.namedtuple构建的类添加了定义
- 如果漂亮的打印机引发异常,它将被捕获并作为警告发出,而将使用默认的repr实现。
- 添加了collections.ChainMap、collections.defaultdict、collections.deque、functools.partial和异常对象的定义。
- 使原语类型(dict、list、set等)的漂亮打印机在它们周围呈现一个子类构造函数
0.11.0(2018-01-20)
没有突破性的变化。
- 增加了Python3.5支持
- 添加了不依赖于维护插入顺序的pretty_call_alt函数dict。
- 修复了set_default_config中大多数配置值未更新的错误
- 添加了get_default_config
0.10.1(2018-01-10)
没有突破性的变化。
- 修复了Types.MappingProxyType未正确注册的回归。
0.10.0(2018-01-09)
没有突破性的变化。
- 添加了对延迟打印机注册的支持,在这种情况下,您可以将限定路径作为str到register_pretty传递给类型,而不是具体的类型值。例如,请参见the deferred printer registration for uuid.UUID
0.9.0(2018-01-03)
没有突破性的变化。
- 由于github用户Cologler,为types.MappingProxyType添加了漂亮的打印机定义
- 在额外的ipython_repr_pretty中添加了对_repr_pretty_的支持。
0.8.1(2018-01-01)
- 修正了在prettyprinter的ipython集成中,对ipython的highlighting_style设置有str值的问题7,并在尝试打印数据时引发异常。
0.8.0(2017-12-31)
中断更改:
- 默认情况下,dict键按默认顺序(cpython 3.6+中的插入顺序)打印。以前,它们像在pprint标准库模块中那样进行排序。为了让用户控制这个,在cpprint、pprint和pformat中添加了一个额外的关键字参数sort_dict_keys。漂亮的打印机定义可以通过传递给每个漂亮的打印机函数的PrettyContext实例来控制dict键排序。
不间断更改:
- 通过缓存颜色提高了渲染着色输出的性能。
- 添加了可分配给__repr__dunder方法的prettyprinter.pretty_repr,因此不需要将其与漂亮的打印机定义分开编写。
- 不赞成使用PrettyContext.set来减少误导PrettyContext.assoc
- 为type实例(即类)定义了漂亮的打印。
- 为函数定义漂亮的打印
0.7.0(2017-12-23)
中断更改:在打印时,默认情况下,列表、集合、frozensets、元组和dict的实例将被截断为1000个元素。
- 为dataclasses 添加了漂亮的打印定义
- 将字符串拆分为多行的性能提高了约15% 添加了适用于列表、集、子串、元组和子类的子类的最大序列长度。默认值为1000。后面有一个注释,指示截断元素的数量。要删除截断,可以使用下面解释的set_default_config将max_seq_len设置为None。
- 添加了使用set_default_config更改默认全局配置的功能。函数接受零到多个关键字参数,并用提供的值替换全局配置中的那些值。
fromprettyprinterimportset_default_configset_default_config(style='dark',max_seq_len=1000,width=79,ribbon_width=71,depth=None,)
0.6.0(2017-12-21)
没有向后不兼容的更改。
- 为requests库添加了漂亮的打印机定义。要使用它,请在install_extras调用中包含'requests':prettyprinter.install_extras(include=['requests'])。
0.5.0(2017-12-21)
没有向后不兼容的更改。
- 为默认python shell添加了集成
- 编写文档以解释与默认p的集成ython外壳
- 检查install_extras参数以查找未知的附加项
0.4.0(2017-12-14)
- 修改了comment以同时接受普通的python值和文档,并将参数顺序颠倒为更加python的
0.3.0(2017-12-12)
- 添加set_default_style函数,改进文档在浅色背景下的工作
0.2.0(2017-12-12)
- 大量的api更改和改进。
0.1.0(2017-12-07)
- pypi上的第一个版本。