命令行界面工具

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"选项不匹配任何函数参数。那面旗子很简单 不能传递给函数。

(事实上, 调试 参数被特殊处理。下 正常情况下,如果函数引发异常,则 异常被强制为字符串,打印为标准错误,然后 控制台脚本退出。如果 调试 参数为 , 但是,将不会捕获异常,从而打印出 堆栈跟踪。)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
带有字符串的java JNA调用与带有字节[]的java JNA调用的行为不同   java基于键列表获取子映射   重启后永久增加java堆大小?   JavaHTTPS服务器:相互SSL身份验证   java为什么接受接口的方法会拒绝该接口的实现?   片段中的java视图无法应用于()   ms access Java SQL更新命令不工作   java将web服务自动打包和部署到Oracle Application Server 10g   java有没有办法在安卓 studio中为安卓时钟设置多个警报?   位于FTP服务器上的文件上的Java校验和md5   在Java中创建类时遇到问题。有些方法不太确定   java错误:在类chrome\u驱动程序中找不到主方法   通用海图(Javascript\Java)