Python argcomplete:无法看到二级子parser argumen

2024-06-24 12:58:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用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())

为什么我要做以下事情:

^{pr2}$

我只看到以下几点:

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

所以在解析的参数中我看不到level2='subsubsub'(请参见名称空间)。在


Tags: importaddparserprefixdefargparseargsargument