我正在研究带有shell提示符的python CLI应用程序。为了澄清,我正在寻找支持2种功能的东西。
1)提供shell提示&自动完成命令,如" cmd"模块支持。例如:"做_"前缀命令。 (do_xyz:do_abc。)
2)提供对多个子命令和选项的支持。例如:
$ python my_prog_prompt.py
(my_prog_prompt)> cmd1 subcmd1 subsubcmd1
(my_prog_prompt)> cmd1 subcmd1 subsubcmd2
(my_prog_prompt)> cmd1 subcmd2 subsubcmd1 -x -y
(my_prog_prompt)> cmd2 subcmd1
(my_prog_prompt)> cmd2 subcmd1
(my_prog_prompt)> exit
$
我找到了" cmd"以上模块过于简单化。因为它不支持多个子命令。使用Cement CLI,我可以看到它非常支持多个命令/子命令和选项,但没有shell / prompt接口。可以" cmd"扩展模块以支持上述?或者我可以使用另一个可用的框架或模块,这将给我上述支持。
非常感谢。
答案 0 :(得分:0)
明显迟到的答案,但我正在寻找类似的选项,这就是我最终实施的目标:
$app->register(App\Providers\EventServiceProvider::class);
def parseargs( f ):
def wrapper(s, arg ):
args={ 0: f.__name__ }
i=0
for a in arg.split():
i+=1
if i>0 and '=' in a:
args[i] = a.split('=', 1)
else:
args[i] = a
return f(s, args)
wrapper.__doc__ = f.__doc__
return wrapper