2017-01-20 9 views
0

Я использую библиотеку кликов для приложения CLI. У меня есть различные параметры, которые пользователь может указать, и большинство из них имеют подсказки. Тем не менее, даже если опция не требуется, если вы установите для подсказки опцию, она не примет пустой ответ (например, просто нажать enter). Например:Python click - разрешить приглашение быть пустым

@click.option('-n', '--name', required=True, prompt=True) 
@click.option('-d', '--description', required=False, prompt=True) 

>>> myscript -n Joe 
>>> Description: [Enter pressed] 
>>> Description: [Enter pressed; click doesn't accept an empty parameter] 

Есть ли способ обойти это, или для этого потребуется запрос функции?

ответ

2

при добавлении default="" тогда пустая строка также принято:

@click.option('-d', '--description', prompt=True, default="") 

Обратите внимание, что required не возможный аргумент для варианта, по крайней мере according to the docs

+0

На самом деле это. Классы 'Option' и' Argument' являются подклассами класса 'Parameter'. Так что это не проблема. – garettmd

+0

трюк на самом деле является 'default =" "', который допускает пустую строку. Это работало? – hansaplast

+0

Это сделало. Извините, я даже не заметил «default», который вы использовали ранее. Можете ли вы отметить это в своем ответе, чтобы убедиться, что это необходимо? – garettmd