python - Why does my use of click.argument produce "got an unexpected keyword argument 'help'? -


running following code results in error: typeerror: __init__() got unexpected keyword argument 'help'

import click  @click.command() @click.argument('command', required=1, help="start|stop|restart") @click.option('--debug/--no-debug', default=false, help="run in foreground") def main(command, debug):     print (command)     print (debug)  if __name__ == '__main__':         main() 

full error output:

$ python3 foo.py start traceback (most recent call last):   file "foo.py", line 5, in <module>     @click.option('--debug/--no-debug', default=false, help="run in foreground")   file "/home/cbetti/python/lib/python3/dist-packages/click-4.0-py3.4.egg/click/decorators.py", line 148, in decorator     _param_memo(f, argumentclass(param_decls, **attrs))   file "/home/cbetti/python/lib/python3/dist-packages/click-4.0-py3.4.egg/click/core.py", line 1618, in __init__     parameter.__init__(self, param_decls, required=required, **attrs) typeerror: __init__() got unexpected keyword argument 'help' 

why?

you defining commands arguments. note click has better way define commands trying here.

@click.group() def main():     pass  @click.command() def start():     print "running command `start`"  @click.command() def stop():     print "running command `stop`"  main.add_command(start) main.add_command(stop)  if __name__ == '__main__':     main() 

will result in following default text:

usage: test.py [options] command [args]...  options:   --help  show message , exit.  commands:   start   stop 

having said that, should need arguments, cannot use help parameter. click documentation indeed states should document own arguments. however, have no idea how that. hints?


Comments