如何解决python-click 读取参数不正确将一个单词拆分为字母
我有一个带有组的 click 应用程序,它应该采用 2 个必需参数和 2 个可选参数并将它们发送到行中,但由于某种原因在命令行中,click 将第一个参数拆分为单个字母。因此,点击看到的不是 api-keychain store test
,而是 api-keychain store t e s t
命令行输出:
>>> api-keychain store test test
<<< Usage: e [OPTIONS] APPLICATION KEY [EXPIRATION] [USERDATA]
<<< Try 'e --help' for help.
<<<
<<< Error: Missing argument 'KEY'.
源代码:
@click.group()
def cli():
pass
@cli.command(no_args_is_help=True)
@click.argument('application')
@click.argument('key')
@click.argument('expiration',required=False,default='1/1/9999')
@click.argument('userdata',default='{}')
def store(application,key,expiration,userdata):
'''Stores APPLICATION,KEY,and optionally EXPIRATION,and USERDATA in a new key. Creates a keychain if one does not already exist.'''
store(application,userdata)
解决方法
我找到了解决方案。我将活动函数命名为“store”,但也将我的 CLI 命令命名为“store”,因此它破坏了参数解析器。当我将应用程序函数重命名为“api_store”并重构代码时:
def store(application,key,expiration,userdata):
'''Stores APPLICATION,KEY,and optionally EXPIRATION,and USERDATA in a new key. Creates a keychain if one does not already exist.'''
api_store(application,userdata)
它解决了问题并开始正确解析。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。