命令行界面工具
cli_tools的Python项目详细描述
简单使用cli工具
使用 cli_工具的最简单示例是 以下:
from cli_tools import * @console def function(): """ Performs an action. """ ...
在这个声明中,函数被定义为不接受参数 (除了argparse默认的"–help")。对 结果脚本将是"执行操作"。
要将其声明为实际的控制台脚本,下面的子句将 需要添加到setup中的 setup() 调用中。py:
entry_points={ 'console_scripts': [ 'function = your_module:function.console', ], }
特别注意函数名后面的".console"。 decorators向函数添加了几个属性,包括 callable console() ,它执行实际的命令行 参数解析。
上面的例子是最简单的例子,但是 有趣的是一些定义的参数:
@argument('--debug', '-d', dest='debug', action='store_true', default=False, help="Run the tool in debug mode.") @argument('--dryrun', '--dry_run', '--dry-run', '-n', dest='dry_run', action='store_true', default=False, help="Perform a dry run.") def function(dry_run=False): """ Performs an action. """ ...
首先要注意的是取消了 @控制台 装饰者。使用控制台不会有任何伤害,但是 decorators执行相同的核心操作;只要其中一个 使用装饰器时,不需要控制台。
要注意的第二件事是为 "–dryrun"选项与唯一的函数参数匹配。当作为 控制台脚本,从命令行参数计算的值 将作为此关键字参数传递。
要注意的第三件事是为 "–debug"选项不匹配任何函数参数。那面旗子很简单 不能传递给函数。
(事实上, 调试 参数被特殊处理。下 正常情况下,如果函数引发异常,则 异常被强制为字符串,打印为标准错误,然后 控制台脚本退出。如果 调试 参数为 真 , 但是,将不会捕获异常,从而打印出 堆栈跟踪。)