При использовании Python click, я не могу передать опции одному из методов. Пожалуйста, рассмотрите следующий код.
import click
@click.command()
@click.option('--config', default='default.cfg', help = 'comfiguration file')
@click.option('--port', default=9093)
def foo(config_name, port):
print('Function has been successfully called..!')
if __name__ == '__main__':
foo()
Я получаю ошибку:
TypeError: foo() got an unexpected keyword argument 'config
и трассировка стека:
Traceback (most recent call last):
File "temp.py", line 10, in <module>
foo()
File "/home/sagar/anaconda3/lib/python3.6/site-packages/click/core.py", line 722, in __call__
return self.main(*args, **kwargs)
File "/home/sagar/anaconda3/lib/python3.6/site-packages/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/home/sagar/anaconda3/lib/python3.6/site-packages/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/sagar/anaconda3/lib/python3.6/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
Я не понимаю, почему это так. Я прочитал несколько похожих вопросов относительно argument
, что нельзя использовать опцию help
, но в этом случае я думаю, что я не делаю ничего, что не поддерживается.
Но самое смешное: если я уберу опцию --config
(и, конечно, параметр из функции), то она будет работать отлично. Я уверен, что можно использовать несколько вариантов, я пытался использовать type=string
, но это также не помогает.