Я пишу расширение Mercurial, но обнаружил, что рендеринг шаблонов довольно медленный.
Первоначально я использовал cmdutil.rendertemplate()
, однако, похоже, что нужно повторить анализшаблонная строка каждый раз, что довольно медленно.
При переключении на «новый» API для @templatekeyword
, похоже, что первый переданный аргумент является mercurial.templater.engine
объект, который имеет метод expand
, который кэширует проанализированные версии шаблонов, что делает его намного быстрее.К сожалению, он не расширяет псевдонимы .
Кто-нибудь знает правильный путь для эффективной визуализации шаблонов и псевдонимов для ртутного расширения?Прямо сейчас, единственный вариант, который я вижу, это копировать / вставлять части cmdutil.rendertemplate
и сохранять свой собственный глобальный кеш ... но это выглядит довольно странно.