被clitoo否决
clilabs的Python项目详细描述
被clitoo否决 https://yourlabs.io/oss/clitoo
和djcli https://yourlabs.io/oss/djcli
clilabs:完成任务的python cli。
有时我想在命令上执行带有一些参数的python回调 行,但我很沮丧它总是需要把我的命令包装成 某种包装。克里拉布不信任我。
安装:
$ pip install clilabs
帮助:
$ clilabs clilabs automates python callables parametered calls. Things starting with - will arrive in clilabs.context. Examples: clilabs help your.mod:main clilabs debug your.mod -a --b --something='to see' how it=parses clilabs your.mod:funcname with your=args clilabs help clilabs.django clilabs help django clilabs clilabs.django:list auth.user clilabs django:list auth.user # also works # refer to the root one clilabs ~django.db.models:somefunc somearg some=kwarg
演示:
$ clilabs debug ~your.mod:yourfunc -a --b --something='to see' how it=parses Could not import your.mod Args: ('how',) Kwargs: {'it': 'parses'} Context args: ['a', 'b'] Context kwargs: {'something': 'to see'}
tutorial.md中的moar
制定自己的命令
添加到您的设置中。py:
entry_points={ 'console_scripts': [ 'yourcmd = yourpkg.cli:cli', ], },
添加yourpkg/cli.py:
'''Your documentation that shows by default: yourcmd somefunc ... ''' import clilabs def cli(*argv): argv = list(argv) if argv else ['help', 'yourpkg.cli'] cb = clilabs.modfuncimp(*clilabs.funcexpand(argv[0], 'yourpkg.cli')) args, kwargs = clilabs.expand(*argv[1:]) return cb(*args, **kwargs) def main(...): '''Put your help text, that will show when the user runs the command without argument.'''