I'm wondering how to override destination variable for the click.option (Click lib). For example in such piece of code
import click
@click.command()
@click.option('--output', default='data')
def generate_data(output_folder):
print(output_folder)
So I want to use --output flag but pass its value to output_folder argument, kinda this: @click.option('--output', default='data', dest='output_folder')?
Is there is such an ability in click? I know that argparse allow such a behaviour.
Yes, see the section in the click documentation on parameter names, which covers both options and arguments.
If a parameter is not given a name without dashes, a name is generated automatically by taking the longest argument and converting all dashes to underscores. For an option with
('-f', '--foo-bar'), the parameter name isfoo_bar. For an option with('-x',), the parameter isx. For an option with('-f', '--filename', 'dest'), the parameter is calleddest.
Here's your example:
from __future__ import print_function
import click
@click.command()
@click.option('--output', 'data')
def generate_data(data):
print(data)
if __name__ == '__main__':
generate_data()
Running it:
$ python2.7 stack_overflow.py --output some_output
some_output
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With