Closed2

pythonのclickライブラリで、位置引数にヘルプを指定できない

yuji38kwmtyuji38kwmt

pythonのCLIライブラリclickで、以下のコードのように位置引数にヘルプを設定しようとすると、エラーが発生する。

@click.argument("csv_file", help="CSVファイル")
packages/click/decorators.py", line 168, in decorator
    _param_memo(f, ArgumentClass(param_decls, **attrs))
  File "/home/vagrant/.cache/pypoetry/virtualenvs/convpandas-qA2t8UiB-py3.8/lib/python3.8/site-packages/click/core.py", line 1984, in __init__
    Parameter.__init__(self, param_decls, required=required, **attrs)
TypeError: __init__() got an unexpected keyword argument 'help'

これはclickのポリシーらしい。

Arguments cannot be documented this way. This is to follow the general convention of Unix tools of using arguments for only the most necessary things and to document them in the introduction text by referring to them by name.

https://click.palletsprojects.com/en/5.x/documentation/#help-texts

ヘルプをサポートすべきかどうかの議論。
https://github.com/pallets/click/pull/1051

どうしてもヘルプを使いたければ、自分でカスタマイズすべし。
https://github.com/pallets/click/issues/587#issuecomment-410097642

yuji38kwmtyuji38kwmt

コマンドライン引数を細かく制御したいなら、argparseがいいのかなー

このスクラップは2021/02/11にクローズされました