Глядя на argcomplete и как это работает. Вы можете поместить его после parser.parse_known_args()
и до parser.parse_args()
, но это не принесет вам особой пользы, поскольку он запускает ваш сценарий и проверяет parser
, предоставленный для определения параметров автозаполнения. Он не передает никакие аргументы (то есть то, что уже было введено в командной строке) скрипту.
Чтобы при вызове argcomplete ваш скрипт не имел представления о том, что filename
было передано и какие другие аргументы должны быть добавлены динамически.
Также, если бы у вас были какие-либо required=True
аргументы, уже добавленные в анализатор до запуска parser.parse_known_args()
, вы действительно никогда бы не запустили argcomplete.autocomplete(parser)
, потому что выполнение скрипта не было бы выполнено в первом до достижения последнего (опять же, для цель автозаполнения - скрипт запускается без каких-либо параметров, передаваемых ему).