【问题标题】:Sphinx and argparse - autodocumenting command line scripts?Sphinx 和 argparse - 自动记录命令行脚本?
【发布时间】:2012-06-08 20:28:17
【问题描述】:

我正在构建一个 Python 包,并使用 Sphinx 创建文档。除了我的包代码之外,我还包含了许多使用 argparse 的命令行 Python 脚本。我想知道是否有办法让 Sphinx 自动记录这些脚本?最终目标将是一个打印精美的脚本列表,以及相关的帮助打印、参数和选项。需要明确的是,我正在寻找一种预先存在的方法来执行此操作,而不是自己实现此操作的方法。

这并不像我通常在 S.O. 上问的那样具体,如果有更合适的 S.E.发布此问题的网站,请告诉我。

【问题讨论】:

  • 不相关,但可能会有所帮助。检查 PyPI 上的 plac 包。
  • 不要认为这对我有帮助,但很有趣,感谢您的提醒。

标签: python python-sphinx argparse


【解决方案1】:

使用 sphinx-argparse 扩展:

http://sphinx-argparse.readthedocs.org/en/latest/

【讨论】:

  • 优秀。有没有办法对“使用”块进行不同的处理?对我来说,将其作为文字块并不完全正确。
  • 当我这样做的时候,如果选项与.. option:: 产生的匹配输出会很好:仅标志(未指示默认值),一直向左对齐,缩进较少对于描述,将第一个字母更改为大写字母并在末尾添加一个句点(因为--help 的习语是省略这些并使用所有小写字母)。也可能标记与帮助匹配的条目更接近输出(例如-cols [COL [COL ...]] 而不仅仅是cols),因为所有文本都是在该上下文中编写的。
【解决方案2】:

您可以使用sphinxcontrib.programoutput 在文档中包含来自命令行的帮助消息。

这不是特定于argparse,但可用于记录任何脚本打印到命令行的帮助消息。

【讨论】:

    【解决方案3】:

    您可以使用sphinxcontrib.autoprogrampip install sphinxcontrib-autoprogram,然后放

    extensions += ['sphinxcontrib.autoprogram']
    

    在您的conf.py 中。要通过使用 argparse parser 对象 parser(可以是 Python 表达式,如函数 get_parser())导入 cli 来记录命令 cli.py,请使用

    .. autoprogram:: cli:parser
       :prog: cli.py
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-12
      • 1970-01-01
      • 2020-10-07
      • 2017-01-14
      • 1970-01-01
      • 2011-12-23
      • 1970-01-01
      相关资源
      最近更新 更多