Jinja2マクロの余分な引数とkwargsはどのように処理されますか?ドキュメントは、手に負えないほど明確ではありません。
たとえば、これは明らかに間違っています。
{% macro example_1(one, two, **kwargs) %}
do macro stuff
{% endmacro %}
その結果、
jinja2.exceptions.TemplateSyntaxError
TemplateSyntaxError: expected token 'name', got '**'
ドキュメントには次のように書かれています。
kwargs
varargsと似ていますが、キーワード引数用です。消費されていないすべてのキーワード引数は、この特別な変数に格納されます。
残念ながら、余分なキーワード引数の組み合わせはエラーです。
{% macro example_2(one, two) %}
do macro stuff
{% endmacro %}
{{ example_2(one, two, test='test') }}
TypeError: macro 'example_2' takes no keyword keyword argument 'test'
私には例がなく、Jinja2のソースコードatmを調べていません。現時点では、ドキュメントは明確ではありません。どんな考えでもありがたいです。