python - Python 模块,以便您可以生成独立的、自记录的命令行实用程序(如 Perl 的 pod2man/pod2usage)?

标签 python command-line documentation-generation

我能找到的就是这个引用:

Is it possible to use POD(plain old documentation) with Python?

看起来您必须生成一整套单独的文档来配合代码。

我想尝试使用 Python 来制作 cmdline utils,但是当我使用 Perl 执行此操作时,我可以将文档直接嵌入源代码中,并将 Pod2Usage 模块与 Getopt 一起使用,以便我的任何脚本都可以像这样运行:

cmd --man

这会触发 pod 系统转储以手册页格式嵌入脚本中的文档。它还可以生成较短(概要)或中等格式。

看起来我可以使用 pydoc 代码并对它进行逆向工程来完成任务(至少显示完整的文档),但我希望已经存在更好的东西。

最佳答案

python-modargs包允许您创建自记录的命令行界面。您为要提供的每个命令定义一个函数,该函数的文档字符串将成为该函数的帮助文本。函数的关键字参数成为命名参数,并且 python-modargs 将解析关键字参数之后的内联注释以作为该参数的帮助文本。

我使用 python-modargs 生成 dexy 的命令行界面,这是定义命令的模块: https://github.com/ananelson/dexy/blob/027954f9234363d506225d40b675b3d6478994f4/dexy/commands.py#L144

您需要实现一个 help_command 方法来获取生成的帮助,它是一个 1-liner。

关于python - Python 模块,以便您可以生成独立的、自记录的命令行实用程序(如 Perl 的 pod2man/pod2usage)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13280468/

相关文章:

python - “which conda”命令返回不期望的内容

command-line - Latex 命令行行长度

php - SQLite 数据库已锁定,但仅适用于从在命令行运行的 PHP 脚本插入

command-line - 用于解析包含逗号分隔值的命令行输入的批处理文件

documentation - UML中图的创建顺序应该是什么?

python - Frozen Flask 创建文件但链接错误

python - 将模块启动到 python 菜单中

java - 什么是 java 中的文档字符串?

python - qmtest 未在 CENTOS 上运行。在 Mac OS X 上构建

python - django-rest-swagger 嵌套序列化器,只读字段未正确呈现