kaligne kaligne - 1 month ago 35
Python Question

Rename python click argument

I have this chunk of code:

import click

@click.option('--delete_thing', help="Delete some things columns.", default=False)
def cmd_do_this(delete_thing=False):
print "I deleted the thing."


I would like to rename the option variable in
--delete-thing
. But python does not allow dashes in variable names. Is there a way to write this kind of code?

import click

@click.option('--delete-thing', help="Delete some things columns.", default=False, store_variable=delete_thing)
def cmd_do_this(delete_thing=False):
print "I deleted the thing."


So
delete_thing
will be set to the value of
delete-thing

gbe gbe
Answer

By default, click will intelligently map intra-option commandline hyphens to underscores so your code should work as-is. This is used in the click documentation, e.g., in the Choice example. If --delete-thing is intended to be a boolean option, you may also want to make it a boolean argument.