paramSeeker

发布 : 2015-12-14 分类 : documents 浏览 : --

在终端获取参数,绑定参数到指定方法的python框架

安装

第一次安装

1
$ sudo pip install paramseeker

使用 sudo 是因为默认安装了一个测试脚本
升级安装请加上 --upgrade

测试

1
2
$ seeker
$ seeker -h

该脚本并没有太多实际作用,只是为了演示,可以删除该接口,甚至删除安装目录中的example.py

使用

当然你也可以留着example.py,如果你在看到这句话之前就已经把她删掉了的话,可以看这个example.py

接下来的使用说明其实已经包含在了源码的无数的注释,如果你能耐下心来看我刚过四级的英语的话,你可以跳过这部分了,讲真,
好吧,我会再重新翻译一遍注释的…..

至于为什么需要用到这个文件的话,当然是作为使用范例

以下开始创建一个简单的栗子:

1
2
3
4
5
6
7
8
9
from paramSeeker.seeker import ParamSeeker
seeker = ParamSeeker()

@seeker.seek()
def no_head(wanted):
return wanted

if __name__ == '__main__':
seeker.run()

run(no_output=True)则会取消所有由paramseeker内部显示出的所有消息,输出只能通过print

保存文件到test.py

在终端执行

1
$ python test.py this is a test string

如果你能够看到正确的输出的话~~~好了~~~第一个程序已经编写出来了~~~
当然这肯定是不够的…..example.py里面看上去也没有这么简单,因为

1
$ python test.py -h

你可能会奇怪-h,因为你并没有去处理,不过你即使想处理,也没有给你机会…..这部分时paramseeker帮你完成的,也就是说每一个使用paramseeker来作为框架的程序,在你绑定参数的时候就已经完成了帮助菜单的生成,这对于那些想要自己定制帮助菜单的孩纸们来说也许是一个坏消息,不过我只想让使用者能用心于主体程序的开发上

现在开始更多的参数定制
test.py中继续添加

1
2
3
4
@seeker.seek('--linux', short='-l', extra={'desc': 'this is a test function', 'single_param': True})
def first(wanted):
result = '\nthis is the first method responding with the argument `\033[01;31m{}\033[00m`\n'.format(wanted)
return result

保存并执行

1
$ python test.py --linux she is the one

得到的结果,如果不是报错信息的话,彩色终端应该是红色的she,好了~现在可以慢慢解释seeker.seek这个装饰器的参数了

1
def seek(self, param='', short='', is_mark=False, extra={})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
param:需要获取参数的完整形态,
比如--linux等,默认为空,为空是则响应没有参数头的情况
short:需要获取参数的精简形态,
比如-l等,为空时表示该参数没有精简形态,
注意!当精简模式给出且is_mark为真的话,seeker将符合下列原则
如果 short=`-l`, is_mark=True
当输入为 -nutplas 等含有 `l` 的指令时,
将返回True,即会执行与其绑定的方法
is_mark:表示当这个参数出现时则执行与其绑定的方法,
即这个参数后面不需要由其他额外的输入,当然也不会把额外的输入交给绑定方法
extra:关于参数的额外信息,字典,可选内容为:
group:参数所分组,默认为General
desc:关于这个参数的描述,用于帮助菜单
single_param:是否只接受单参数默认为False
表示在这个参数后面连续一段距离的参数都会算作其参数
default:该参数的默认值,
注意!因为有默认值,所以只要在绑定函数里返回非空字符串,
结果中都会有输出,当然如果return '' 的话就好了

使用中请注意,所有绑定函数都务必接收 wanted 参数,It’s very very important,无论你是否需要这个参数,需要说一句的是,在处理默认参数问题的时候,可以通过wanted 来判断输入是否为默认值

注意

关于绑定方法是使用print 还是return

程序的执行是将所有已经执行的方法的返回值合并到一起,在最后输出结果,print 将在执行绑定方法时执行,
所以如果你想要自己通过用户输入参数的顺序来决定输出顺序的话,自行print,并返回空字符即可

其他设置

1
2
3
seeker.set_usage_desc("python test.py [OPTION]... ")
seeker.set_usage_desc("python test.py ...")
seeker.set_desc("this is a test program")

很明显这是为了帮助菜单而准备的,set_usage_desc()用于说明进行相应操作的方式,添加位置只要在run之前就好,调用次数不限

set_desc()仅调用一次,用于整个程序的总说明

其他

出现问题请及时反馈

github

本文作者 : hellflame
原文链接 : https://hellflame.github.io/2015/12/14/paramSeeker-doc/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
留下足迹
点击通过issue留言