Python argcomplete:无法看到二级subparser参数

时间:2015-11-27 14:46:19

标签: python argparse

我使用argcomplete完成命令,并提供以下示例代码:

#!/usr/bin/env python
# PYTHON_ARGCOMPLETE_OK

import argparse
import argcomplete
from argcomplete import warn

def MySubCompleter(prefix, parsed_args, **kwargs):
    warn(parsed_args)
    return ['1','2']

def MySubSubCompleter(prefix, parsed_args, **kwargs):
    warn(parsed_args)
    return ['3','4']

parser = argparse.ArgumentParser()
parser.add_argument('--parser')

subparsers = parser.add_subparsers(dest='level1')
subparser = subparsers.add_parser('sub',help='sub')
subparser.add_argument('--subvar',dest='sub').completer = MySubCompleter

subsubparsers = subparser.add_subparsers(dest='level2')
subsubparser = subsubparsers.add_parser('subsub',help='subsub')
subsubparser.add_argument('--subsubvar',dest='subsubvar').completer = MySubSubCompleter

argcomplete.autocomplete(parser)
args = vars(parser.parse_args())

为什么当我执行以下操作时:

$ ./test.py sub subsub --subsubvar

我只看到以下内容:

>  Namespace(level1='sub', parser=None)
   3  4

所以我无法看到level2 =' subsub'在parsed_args中(参见命名空间)。

0 个答案:

没有答案