Add unspecified options to cli command using python-click
You can pass context
with ignore_unknown_options
and allow_extra_args
settings, the extra arguments will be collected in context.args
list (['--unknown_var', 'value3', '--unknown_var2', 'value4']
). Then you can transform it to dict.
import click@click.command(name='my-cmd', context_settings=dict( ignore_unknown_options=True, allow_extra_args=True,))@click.option('--option1')@click.option('--option2')@click.pass_contextdef cli(ctx, option1, option2): click.echo({ctx.args[i][2:]: ctx.args[i+1] for i in range(0, len(ctx.args), 2)})
example
python cli.py --option1 value1 --option2 value2 --unknown_var value3 --unknown_var2 value4>> {'unknown_var2': 'value4', 'unknown_var': 'value3'}