python 3.5的语法突出显示、声明性和可组合的漂亮打印机+

prettyprinter的Python项目详细描述


预打印机

Documentation

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)

0.16.0(2019-02-27)

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.ChainMapcollections.defaultdictcollections.dequefunctools.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)

没有突破性的变化。

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标准库模块中那样进行排序。为了让用户控制这个,在cpprintpprintpformat中添加了一个额外的关键字参数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_configmax_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上的第一个版本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javascript如何在jQuery函数中传递两个值,该函数获取数据并使用ajax发送到服务器?   java IOSDriver()不工作。相反,当我在测试用例通过时使用RemoteWebDriver()时,它正在打开远程会话   使用java对blob几何体进行二进制解码   java错误:Gradle:运行在Ubuntu 16.04上的Intellij 2017中的任务执行失败   java Lotus Notes邮件文档获取附件名称(和导出附件)   java如果库有副作用,这样可以吗?   java Javabat帮助:alarmClock   加载类时未初始化java静态变量   java限制htmlunit中的带宽   java Column_layout在安卓 tablelayout中不起作用   java在倒计时和打印循环时遇到问题   虚拟机我需要一个如何访问java虚拟机中的文件的帮助   java图像处理程序中的多线程