用于处理容器类型、命令数据操作和简明异常处理的工具
clickutil的Python项目详细描述
clickutil-使click变得更好
==
python的"click"包是构建命令行界面的极好工具。但有时为了使用"click",我需要大量样板代码,所以我编写了"clickutil",以使我的命令行包更加简洁,减少错误。
或者看起来像这样:
@click.command('do-something')
@click.option('--an option',required=true,help='a click option')
def do-u something(an-u option):
click.echo(an-u option)
第行,因为原始的"dou someting"函数(带参数)被不带参数的函数替换,并读取"sys.argv"作为输入。
仍然可以从python访问tion::
def do_something(a_option):
click.echo(an_option)
@click.command('do-something')
@click.option('--an option',required=true,help='a click option')
@clickutil.call(do_something)
def do_something():pass
对于python开发人员来说,一个常见的工作流是从ipython加载代码并从shell运行它。这样做有几个好处,其中之一是如果发生未处理的异常,您可以使用`%debug`魔术命令。
默认情况下,它会添加一个选项--debug。当使用该标志时,在任何异常情况下,click
端点将在延迟几秒后进入调试器(这将给
用户一个在不需要调试的情况下进行键盘转义的机会)。延迟和默认是否调试都可以配置。
默认情况下,我们会这样做,因此要关闭此行为,您需要使用"--no debug"标志::
import ipdb
@click.command('do-something')
@clickutil.debug(默认值=false,延迟值=10,使用调试器=ipdb)
@clickutil.call(do-something)
def-do-something():pass
-——
"click.option"函数使用许多参数来控制不同的行为,并将许多不同的选项合并在一起(例如,布尔标志,如"--debug/--no debug",与使用参数的选项组合在一起)。部分原因是click
选项的行为取决于许多不同的参数,有些默认行为(例如
在
`--help`输出中没有显示默认选项的默认值)没有意义。
kutil.boolean_flag`用于设置标记,如"--debug"、
"clickutil.required_option"用于接受参数且必须
提供的选项,以及"clickutil.default_option"用于接受参数且不需要提供的选项。它还提供了三种特殊的选项类型,
`clickutil.existing_file`、`clickutil.existing_dir`和
`clickutil.new_file`或_ dir`,用于处理最常见的"click.path"输入
类型。
l.call,必须在函数和click decorators中为"default_option"和"boolean_flag"设置两次默认值,这会让人恼火。另外,
这两个参数可能不同,这也成为了潜在的错误源。
通过检查函数的参数,"clickutil"可以根据函数定义中的参数列表设置默认值。
ckutil.boolean_flag`,
但它从函数签名中获取默认值。类似地,
"clickutil.option"类似于"clickutil.required"选项或
"clickutil.default"选项,具体取决于
函数签名中是否有默认值。
==
python的"click"包是构建命令行界面的极好工具。但有时为了使用"click",我需要大量样板代码,所以我编写了"clickutil",以使我的命令行包更加简洁,减少错误。
或者看起来像这样:
@click.command('do-something')
@click.option('--an option',required=true,help='a click option')
def do-u something(an-u option):
click.echo(an-u option)
第行,因为原始的"dou someting"函数(带参数)被不带参数的函数替换,并读取"sys.argv"作为输入。
仍然可以从python访问tion::
def do_something(a_option):
click.echo(an_option)
@click.command('do-something')
@click.option('--an option',required=true,help='a click option')
@clickutil.call(do_something)
def do_something():pass
对于python开发人员来说,一个常见的工作流是从ipython加载代码并从shell运行它。这样做有几个好处,其中之一是如果发生未处理的异常,您可以使用`%debug`魔术命令。
默认情况下,它会添加一个选项--debug。当使用该标志时,在任何异常情况下,click
端点将在延迟几秒后进入调试器(这将给
用户一个在不需要调试的情况下进行键盘转义的机会)。延迟和默认是否调试都可以配置。
默认情况下,我们会这样做,因此要关闭此行为,您需要使用"--no debug"标志::
import ipdb
@click.command('do-something')
@clickutil.debug(默认值=false,延迟值=10,使用调试器=ipdb)
@clickutil.call(do-something)
def-do-something():pass
-——
"click.option"函数使用许多参数来控制不同的行为,并将许多不同的选项合并在一起(例如,布尔标志,如"--debug/--no debug",与使用参数的选项组合在一起)。部分原因是click
选项的行为取决于许多不同的参数,有些默认行为(例如
在
`--help`输出中没有显示默认选项的默认值)没有意义。
kutil.boolean_flag`用于设置标记,如"--debug"、
"clickutil.required_option"用于接受参数且必须
提供的选项,以及"clickutil.default_option"用于接受参数且不需要提供的选项。它还提供了三种特殊的选项类型,
`clickutil.existing_file`、`clickutil.existing_dir`和
`clickutil.new_file`或_ dir`,用于处理最常见的"click.path"输入
类型。
l.call,必须在函数和click decorators中为"default_option"和"boolean_flag"设置两次默认值,这会让人恼火。另外,
这两个参数可能不同,这也成为了潜在的错误源。
通过检查函数的参数,"clickutil"可以根据函数定义中的参数列表设置默认值。
ckutil.boolean_flag`,
但它从函数签名中获取默认值。类似地,
"clickutil.option"类似于"clickutil.required"选项或
"clickutil.default"选项,具体取决于
函数签名中是否有默认值。