跳转到主要内容

doing实现分层命令行

项目描述

doing

Python中的分层命令行。

doing 允许在Python程序中简单地创建分层命令行。

最初设计是为了创建小型Python工具,以取代系统维护中的bash脚本,因此该库假设所有未以下划线开头的包和模块要么是命令,要么是子命令的容器。

内容

[目录]

这是你

如果将doing发行版解压缩到目录中,你将在名为Python可执行包中的示例命令行程序sample中找到它。

这是sample/__main__.py的源代码

#!/usr/bin/env python3
import doing
import sample

if __name__ == '__main__':
    doing.do_main(sample)

这是doing能够实现的

$ python -m sample
sample v1.0.0rc1 a sample hierarchical command line created with the doing package

    sample greet ...        greet in several languages
    sample version          display the version

发出子命令

$ python -m sample version
version 1.0.0rc1

作为子子命令的子命令

$ python -m sample greet
sample.greet  greet in several languages

    sample greet english    greet in English
    sample greet spanish    greet in Spanish

最后

$ python -m sample greet english
Hello!
$ python -m sample greet spanish
Hola!

添加一个名为do的可执行脚本,内容类似于__main__.py,将允许你做

$ ./do greet english
Hello!
$ ./do greet spanish
Hola!

实现doing命令行

doing假设所有包和模块都是潜在命令或子命令。命令的描述来自模块的文档注释(在mymodule.pymypackage/__init__.py中)。

要启用顶级包的执行功能,可以提供一个__main__.py文件或者一个do(或其他脚本名称),具体可参考引言中的描述。

对于执行某些操作的模块和包,在模块或包的__init__.py文件中编写一个def do():方法。

这是sample/greet/spanish.py的内容

"""
greet in Spanish
"""

def do():
    print('Hola!')

如果执行发现存在实现子命令的模块,它会在命令帮助信息中用省略号表示。

sample greet ...        greet in several languages

结束

项目详情


下载文件

下载适用于您平台的文件。如果您不确定该选择哪个,请了解有关安装包的更多信息。

源代码分发

doing-1.0.0.zip (11.6 kB 查看哈希值)

上传时间: 源代码

doing-1.0.0.tar.gz (5.7 kB 查看哈希值)

上传时间: 源代码

构建分发

doing-1.0.0-py2.py3-none-any.whl (7.0 kB 查看哈希值)

上传时间: Python 2 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面