7

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

asked Oct 19, 2016 at 13:26

2 Answers 2

7

As gbe's answer says, click will automatically convert - in the cli parameters to _ for the python function parameters.

But you can also explicitly name the python variable to whatever you want. In this example, it converts --delete-thing to new_var_name:

import click
@click.command()
@click.option('--delete-thing', 'new_var_name')
def cmd_do_this(new_var_name):
 print(f"I deleted the thing: {new_var_name}")
answered Jan 25, 2022 at 21:29
Sign up to request clarification or add additional context in comments.

Comments

4

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.

answered Oct 19, 2016 at 15:27

1 Comment

And it's true! Though I understood the take home message, your second link probably points to the wrong page.

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.