#python #command-line-interface #python-click
#python #интерфейс командной строки #python-щелкните
Вопрос:
Используя http://click.pocoo.org/5 /
У меня определена эта команда, однако, когда я запускаю команду, пропущенный параметр передается правильно (я вижу значение), но я захожу Error: no such option: --missing
в терминал, и команда завершается с ошибкой.
Что именно я здесь делаю не так? Из приведенного ниже кода была удалена некоторая информация, чтобы сделать его менее сложным, но логика та же.
@cli.group()
def migrator():
"""Migrator from existing HEPData System to new Version"""
@migrator.command()
@with_appcontext
@click.option('--missing', is_flag=True, help='...')
@click.option('--start', '-s', type=int, default=None, help='...')
@click.option('--end', '-e', default=None, type=int, help='...')
@click.option('--date', '-d', type=str, default=None, help='...')
def migrate(start, end, missing, date=None):
"""
Migrates all content...
"""
if missing:
ids = get_missing_records()
else:
ids = get_all_ids_in_current_system(date)
print("Found {} ids to load.".format(len(ids)))
if start is not None:
_slice = slice(int(start), end)
ids = ids[_slice]
print("Sliced, going to load {} records.".format(len(ids)))
print(ids)
load_files(ids)
Ответ №1:
Я нашел проблему. Не было ничего общего с pocoo click. Это было потому get_missing_records()
, что функция на самом деле является другой командой CLI. Впоследствии missing
параметр передается и этой функции, и get_missing_records()
метод, очевидно, ничего не знает об этом параметре. Итак, все решено.