Има ли начин опциите на argparse да работят с разширяване на раздела?

Имам скрипт на Python, който приема няколко файла като задължителни аргументи, които анализирам с argparse< /a>.

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()

Проблемът е, че файловете имат доста дълги и досадни имена. Разширяването на раздела Shell работи чудесно, ако аргументите са позиционни (т.е. без флагове), но ако имам флагове, разширяването на раздела вече не работи. От друга страна бих искал да запазя флаговете, за да не кодирам твърдо реда на аргументите.

Разгледах 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