Skip to content

Mark parameter as deprecated #2263

@stmlange

Description

@stmlange

Thanks for this great project!
Perhaps it's just me who feels that it is rather cumbersome mark a single parameter as deprecated (the closet I found was https://stackoverflow.com/a/50402799). Is there perhaps a more official method to mark a single parameter as deprecated?
That would somewhat be similar to #1507.

Possible scenarios:

  • the parameter was renamed (e.g. a previous version was using --name as option, but now a dev want's to make sure it's the --sur-name.
  • the parameter is not needed anymore

Perhaps as an example consider:

import click

@click.command()
@click.option('--count', default=1, help='Number of greetings.')
@click.option('--name', prompt='Your name',
              help='The person to greet.')
def hello(count, name):
    """Simple program that greets NAME for a total of COUNT times."""
    for x in range(count):
        click.echo(f"Hello {name}!")

if __name__ == '__main__':
    hello()

and I want to rename --count to --greetings-count.
However I don't want to remove --count instantly, instead when users use --count prompt a message that they should use the new --greetings-count. The usage of --count and --greetings-count should be forbidden.

Thanks.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions