【问题标题】:argparse parser: overriding optionsargparse 解析器:覆盖选项
【发布时间】:2020-09-03 09:21:22
【问题描述】:

我正在使用 pytest 插件 - pytest-html

插件有一个名为'--self-contained-html' 的选项。我创建了自己的插件,它建立在这个插件的基础上,并添加了另一个选项。我希望,当有人使用我的选项时,原始的 '--self-contained-html' 将设置为 True,即使它没有提供

基本上,我想从以下位置更改选项:

parser.add_option(
'--self-contained-html',
action='store_true',
defaut=False,
)

 parser.add_option(
'--self-contained-html',
action='store_true',
default=<Check_if_parser_option_X_was_given>,
)

【问题讨论】:

  • 在定义选项时无法检查是否通过了某些选项。您需要在解析完成后执行此操作。将默认设置为None & 然后编写逻辑以根据其他选项将其设置为适当的值

标签: python python-3.x pytest argparse


【解决方案1】:

您可以尝试以下选项在现有的命令行参数中附加 --self-contained-html。在这样做之前,您可以设置一个条件来检查您设置的选项是否存在于现有的列表中命令行参数。

def pytest_cmdline_preparse(config, args):
    if <option_X> in args:
        args.extend(['--self-contained-html'])

【讨论】:

    猜你喜欢
    • 2016-02-13
    • 2013-12-21
    • 2016-04-05
    • 1970-01-01
    • 2018-02-20
    • 2023-03-23
    • 2016-09-05
    • 2018-04-04
    • 2012-01-21
    相关资源
    最近更新 更多