Использование argcomplete после частичного разбора

Обычно, чтобы убедиться, что браузер получает новую версию, когда сайт обновляется с новой версией, например. в рамках нашего процесса сборки у нас будет что-то вроде этого:

/Resources/Combined.css?v=x.x.x.buildnumber

Так как это изменяется с каждым новым нажатием кода, клиент вынужден захватить новую версию только из-за запроса. Посмотрите на эту страницу (например, на момент ответа):

<link ... href="http://sstatic.net/stackoverflow/all.css?v=c298c7f8233d">

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

Оба эти подхода позволяют вам установить заголовок кэша на что-то смехотворно долгое, скажем, на 20 лет ... но когда он изменится, вам не нужно беспокоиться об этом заголовке кэша, браузер видит различные запросы и обрабатывают его как новый, новый файл.

1
задан Niwis 16 January 2019 в 17:11
поделиться

1 ответ

Рассматривая argcomplete и как это работает. Вы можете разместить его после parser.parse_known_args() и до parser.parse_args(), но это не принесет вам особой пользы, поскольку он запускает ваш скрипт и проверяет parser, предоставленный для определения параметров автозаполнения. Он не передает аргументы (то есть то, что уже было напечатано в командной строке) скрипту.

Что при вызове argcomplete ваш скрипт не будет иметь представления о том, что было передано filename и какие другие аргументы должны быть добавлены динамически.

Кроме того, если бы у вас были какие-либо required=True аргументы, уже добавленные в анализатор до запуска parser.parse_known_args(), вы действительно никогда бы не запустили argcomplete.autocomplete(parser), потому что выполнение скрипта было бы неудачным на первом до достижения последнего (опять же, для Сценарий автозаполнения запускается без каких-либо параметров, передаваемых ему).

0
ответ дан Ondrej K. 16 January 2019 в 17:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: