argparse的段落保持格式化程序

argparse-formatter的Python项目详细描述


Build StatusCoverage

Argparse段落格式化程序

这个项目是一个简单的Python模块,它提供 argparse格式化程序 这在帮助和尾声文本的显示方面支持更大的灵活性。在

背景

默认情况下,argparse将折叠并转换所有空格序列 在一个空格中,然后将文本换行到适当的行长度。 这将导致所有文本转换为一个单独的段落。在

有可选的RawDescriptionHelpFormatterRawTextHelpFormatter类,这些类可以用于保留段落,但是 它们不执行任何换行操作。所需要的是 支持更大的灵活性,同时仍提供换行。在

段落编排器

此模块提供ParagraphFormatter类。如果这个班通过了 到argparse.ArgumentParser创建调用作为formatter_类 参数,然后是帮助和尾声段落,用空白行分隔, 将被保存。将在段落内进行换行。在

注意,ParagraphFormatter是通过重写两个private来实现的 方法在默认的argparse格式化程序中,以及 类不被认为是argparseAPI的一部分。因此有一个 在未来的标准库版本中,代码可能会中断的风险很小。这个 模块已经在所有支持的python3版本上进行了测试。在

FlexiFormatter公司

事实证明,ParagraphFormatter是rich的更原始版本 已long proposed的格式化程序 包含在Python中。在

此模块提供flexformatter类,并进行了一些修改。 这个格式化程序保留换行符和缩进,并理解bullet 列表。在

合并此格式化程序会很好—它消除了 API迁移风险。在

演示

剧本 demo.py 演示使用ParagraphFormatter的效果:

# ./demo.py
*************************
Using the Default formatter
*************************

usage: demo.py [-h] [--arg ARG]

optional arguments:
  -h, --help  show this help message and exit
  --arg ARG   This same feature would be useful for arguments that would
              benefit from more explanation. Wouldn't it?

This is a multi-paragraph epilog. It is presenting data that would benefit by
being visually broken up into pieces. It sure would be nice if it was
represented that way.


*************************
Using the Paragraph formatter
*************************

usage: demo.py [-h] [--arg ARG]

optional arguments:
  -h, --help  show this help message and exit
  --arg ARG   This same feature would be useful for arguments that would
              benefit from more explanation.
          
              Wouldn't it?

This is a multi-paragraph epilog. It is presenting data that would benefit by
being visually broken up into pieces.

It sure would be nice if it was represented that way.

flexidemo.py 脚本显示flexformatter的输出

^{pr2}$

安装

PyPi安装:

pip install argparse-formatter

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

推荐PyPI第三方库


热门话题
使用SeleniumWebDriver(又称Selenium2.0)JAVA向下滚动鼠标   java获取与消费者组kafka关联的主题列表   java在现实生活中,您什么时候会使用堆栈而不是常规链表,或者使用常规队列而不是优先级队列?   java实际参数列表和形式参数列表的长度不同(但两种长度都是2?)   默认情况下,Lucene(java框架)是否根据术语计算文档的tfidf和余弦相似性?   java编辑XML样式表更改Android中的按钮   java在Eclipse4中从处理程序更新视图   java是节点列表、数组、列表还是其他什么?   java Hibernate查询问题   java Spark在并行化列表时引发ArrayIndexOutOfBoundsException   Java中有3D几何算法库吗?   java如何获取超过25条post消息   java如何在不同的活动中获取Int的值?getIntent()不再工作了   java在VerticalViewPage(Android)的每个页面中动态插入JSON数据