用于处理容器类型、命令数据操作和简明异常处理的工具

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"选项,具体取决于
函数签名中是否有默认值。

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

推荐PyPI第三方库


热门话题
java如何在表被注释到配置之前获取表的元数据?   java滚动条不会出现在JList上   java JOGL监视器GPU内存   java为什么要使用RecyclerView onDraw延迟   java定制Oppo Reno 2 Z CPH1951(手机型号)的固件(闪存文件)   java自定义线程池执行器   java如何解决发布版本中重复的jar条目[com/安卓/volley/R.class]?   java如何使用Bukkit API触发事件?   java在blazemeter jmeter RTE插件中使用ctrl+w输入   C#/Visual Studio的java JDT等价物   java为什么当maxread值很大而收到的消息数量很小时,卡夫卡消费者会无限期消费?   java游戏2。x:包含模板列表的绑定模型   带压缩的java日志旋转   运行时。exec用java运行程序读取它正在做什么