3 sݨ\_ @ st d Z ddlZddlmZ ddlmZmZmZmZm Z m Z mZmZm Z mZmZmZ ddlmZ ddlmZ ddlmZmZ ddlmZmZmZ dd lmZmZmZ d(Z G d d de!Z"G dd dee"e#Z$edd Z%dd Z&dd Z'G dd de$Z(G dd de$Z)G dd de$Z*G dd de$Z+G dd d e$Z,e d!fd"d#Z-G d$d% d%e#Z.d&d' Z/e(Z0e)Z1e*Z2e+Z3e,Z4dS ))a jinja2.ext ~~~~~~~~~~ Jinja extensions allow to add custom tags similar to the way django custom tags work. By default two example extensions exist: an i18n and a cache extension. :copyright: (c) 2017 by the Jinja Team. :license: BSD. N)nodes)BLOCK_START_STRINGBLOCK_END_STRINGVARIABLE_START_STRINGVARIABLE_END_STRINGCOMMENT_START_STRINGCOMMENT_END_STRINGLINE_STATEMENT_PREFIXLINE_COMMENT_PREFIXTRIM_BLOCKSNEWLINE_SEQUENCEKEEP_TRAILING_NEWLINE LSTRIP_BLOCKS)Environment)concat)TemplateAssertionErrorTemplateSyntaxError)contextfunction import_stringMarkup)with_metaclassstring_types iteritems_gettextngettextc @ s e Zd ZdZdd ZdS )ExtensionRegistryz)Gives the extension an unique identifier.c C s&