如何包装Docopt选项配置中的文本?

2024-09-30 16:32:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我在docstring中有一些用于配置Docopt的详细选项规范。有些项目相当长。有没有办法把文字包装起来,使其更易读,或使其更容易适应行宽?在

假设docstring中的相关文本位如下:

Usage:
    program [options]

Options:
    -h, --help                      Show this help message.
    -c, --configuration=CONF        Configuration (file) [default: None]
    -f, --files=FILESLIST           Comma-delimited list of input data files [default: 169888_ttH_el.root]
    -v, --variables=VARIABLESLIST   Comma-delimited list of variables to plot [default: trk_pt]
    -t, --tree=TREE                 Tree in input data files [default: mini]
    -u, --username=USERNAME         Username
    -t, --topanalysis=DIRECTORY     Directory of TopRootCore or TopAnalysis [default: /home/user/Dropbox/TopAnalysis]
    -s, --superlongoption=TEST      This is a very long option that requires a bit of text to explain it. [default: 101001011011101010010100110101010]
    --version                       Show the version and exit.

可以用下面这样的样式把文本换行吗?在

^{pr2}$

Tags: ofto文本defaultinputdatashowhelp
1条回答
网友
1楼 · 发布于 2024-09-30 16:32:57

如何定义选项定义和描述

“秘密”是:

  • 选项定义从任何行开始,以-(忽略空白)开头。在
  • 选项定义和选项说明必须用至少两个空格分隔。在
  • 一旦找到下一个选项定义,选项说明即结束。在缩进行或空行下不结束描述。在
  • 任何作为选项描述一部分的[defaults:block]都是有效的,并且被使用。在

如何处理描述格式

很少有东西可以帮助使用较长的选项描述或选项定义。在

  • 选项说明可以从选项定义后的任何行开始。在
  • 选项可以是换行说明。
    • 即使是在缩进线下也是选项描述的一部分。在
    • 为了保持文本的易读性,请将选项说明缩进固定列(例如27或29或您认为可行的其他列)。这是建议,不是规则)
    • [默认:块]只要被视为选项描述的一部分,它就可以正常工作。即使在缩进的文本下,也允许使用空行。在你定义下一个选项之前把它放在任何地方。在
  • 文本Option:没有实际意义(不管在docopt的教程中经常使用)。选项被识别为以-开头的任何行(忽略初始空格)。这允许将选项分成组。在
  • 请注意,选项定义和选项描述必须至少用两个空格分隔。在

原始代码是如何重组的

下面是示例中重新组织的doc字符串的示例。在

做了什么:

  • 选项说明文本从第27列开始
  • 如果选项定义在第25列或更高的列结束(不允许在选项说明文本开始之前有2个空格),则选项说明文本将移到下一行。在
  • 将选项组织成逻辑组(以表明它是可能的)
  • 选项组有一些描述。在

重写示例

最终代码如下:

"""
Usage:
    program [options]

General options:
  These things are rather general, so placed in this group of option.

    -h,  help            Show this help message.
     version             Show the version and exit.
    -c,  configuration=CONF
                          Configuration (file) [default: None]

Directory and path related stuff:
  Whatever relates to file or directory, comes here.

    -f,  files=FILESLIST
                          Comma-delimited list of input data files
                          [default: 169888_ttH_el.root]
    -t,  tree=TREE       Tree in input data files [default: mini]
    -t,  topanalysis=DIRECTORY
                          Directory of TopRootCore or TopAnalysis
                          [default: /home/user/Dropbox/TopAnalysis]
Other things:
  Remaining options live here.

    -v,  variables=VARIABLESLIST
                          Comma-delimited list of variables to plot
                          [default: trk_pt]
    -u,  username=USERNAME
                          Username
    -s,  superlongoption=TEST
                          This is a very long option that requires a bit of text
                          to explain it.
                          [default: 101001011011101010010100110101010]
"""
if __name__ == "__main__":
    from docopt import docopt
    args = docopt(__doc__)
    print args

相关问题 更多 >