这个星球上最酷的命令行界面
komandr的Python项目详细描述
把你的普通函数转换成酷的命令行界面!
komandr是一个智能的瘦包装器,功能强大的argparse模块让您 在secondz中构建事实上的standart命令行界面,同时为您提供 所有的灵活性。
示例
# example.py from komandr import * # straigforward ad-hoc usage @command def foo(bar, baz=None): print 'foo', bar, baz # but also it allows you much more tuning @command(name='cool_command_name') @arg('baz', '-z', required=True, type=int) def lame_command_name(foo, bar, baz=1): print 'lame_command_name', foo, bar, baz if __name__ == '__main__': main()
需要帮助吗?:
$ python example.py --help usage: example.py [-h] [-v] {foo,cool_command_name} ... positional arguments: {foo,cool_command_name} optional arguments: -h, --help show this help message and exit -v, --version show program's version number and exit
让我们进一步研究一下foo
$ python example.py foo --help usage: example.py foo [-h] --baz BAZ bar positional arguments: bar optional arguments: -h, --help show this help message and exit --baz BAZ
测试foo命令:
$ python example.py foo Hello usage: example.py foo [-h] --baz BAZ bar example.py foo: error: argument --baz is required
现在可以了:
$ python example.py foo Hello --baz World foo Hello World
很酷,嗯?
这也显示了它的灵活性和可配置性:
$ python example.py cool_command_name Hello -z 'Non numeric' World usage: example.py cool_command_name [-h] --baz BAZ foo bar example.py cool_command_name: error: argument --baz/-z: invalid int value: 'Non Numeric'
正确答案应该是:
$ python example.py cool_command_name Hello -z 2013 World lame_command_name Hello World 2013
享受吧!
许可证
版权所有(c)2012 Kadir Pekel。
兹免费准许任何人取得 此软件和相关文档文件(“软件”)用于处理 不受限制的软件,包括但不限于 使用、复制、修改、合并、发布、分发、再授权和/或销售副本 以及允许向其提供软件的人员 因此,必须满足以下条件:
上述版权公告及本许可公告须包括在 软件的拷贝或大部分。
本软件按“原样”提供,无任何形式的保证,明示或 默示的,包括但不限于适销性保证, 适合特定目的和不侵权。在任何情况下 作者或版权所有者应对任何索赔、损害或其他 责任,无论是在合同诉讼、侵权诉讼或其他诉讼中, 不属于或与本软件有关,或使用或与本软件的其他交易有关。 软件。