Есть ли способ заставить параметры argparse работать с расширением вкладки?

У меня есть скрипт Python, который принимает несколько файлов в качестве обязательных аргументов, которые я анализирую с помощью argparse< /а>.

parser = argparse.ArgumentParser()
parser.add_argument("-i", "--imgtfile", required=True, help="IMGT file")
parser.add_argument("-s", "--fastqfile", required=True, help="FASTQ file")
parser.add_argument("-g", "--gene", required=True, help="Gene to extract")
parser.add_argument("-o", "--outfile", help="name of the output file")
# ... more arguments
argcomplete.autocomplete(parser) # <-- this doesn't help
args = parser.parse_args()

Проблема в том, что файлы имеют довольно длинные и раздражающие имена. Расширение вкладки оболочки отлично работает, если аргументы являются позиционными (т.е. без флагов), но если у меня есть флаги, расширение вкладки больше не работает. С другой стороны, я хотел бы сохранить флаги, чтобы не жестко задавать порядок аргументов.

Я просмотрел argcomplete, но не могу заставить его работать так, как мне нравится . Похоже, мне либо нужна опция choices в add_argument, и/или возиться с bash, чтобы включить глобальное завершение.

Поскольку я работаю удаленно на сервере, я немного консервативен в этом вопросе. Мне кажется, что должен быть более простой способ. Какие-либо предложения?


person posdef    schedule 05.12.2016    source источник
comment
Связано: Python argparse и завершение bash   -  person Chris_Rands    schedule 05.12.2016
comment
@Chris_Rands Спасибо. Это связано да, но, насколько я могу судить, не дает полезного ответа   -  person posdef    schedule 05.12.2016
comment
Возможно, вам следует уточнить, почему argcomplete у вас не работает   -  person Chris_Rands    schedule 05.12.2016
comment
@Chris_Rands так, как это требует от меня возиться с настройками системы. Обычно я не слишком увлекаюсь случайным запуском скриптов, которые я не писал, на сервере, за который я несу ответственность.   -  person posdef    schedule 06.12.2016