Add unspecified options to cli command using python-click Add unspecified options to cli command using python-click python python

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'}

See Forwarding Unknown Options.