I run into this again and again because the trace output does not correspond to the parameter causing the error. Notice ArgumentClass in the trace, that’s your hint.
‘help’ is an acceptable parameter to @click.option. The click library prefers, however, that you document your own arguments. The @click.argument help parameter is causing this exception.
This code works: (notice the lack of , help="start|stop|restart" in @click.argument)
import click
@click.command()
@click.argument('command', required=1)
@click.option('--debug/--no-debug', default=False, help="Run in foreground")
def main(command, debug):
""" COMMAND: start|stop|restart """
print (command)
print (debug)
if __name__ == '__main__':
main()
Output:
$ python3 foo.py start
start
False
Help Output:
Usage: test.py [OPTIONS] COMMAND
COMMAND: start|stop|restart
Options:
--debug / --no-debug Run in foreground
--help Show this message and exit.