1e31aef6aSopenharmony_ciimport typing as t 2e31aef6aSopenharmony_ci 3e31aef6aSopenharmony_cifrom .filters import FILTERS as DEFAULT_FILTERS # noqa: F401 4e31aef6aSopenharmony_cifrom .tests import TESTS as DEFAULT_TESTS # noqa: F401 5e31aef6aSopenharmony_cifrom .utils import Cycler 6e31aef6aSopenharmony_cifrom .utils import generate_lorem_ipsum 7e31aef6aSopenharmony_cifrom .utils import Joiner 8e31aef6aSopenharmony_cifrom .utils import Namespace 9e31aef6aSopenharmony_ci 10e31aef6aSopenharmony_ciif t.TYPE_CHECKING: 11e31aef6aSopenharmony_ci import typing_extensions as te 12e31aef6aSopenharmony_ci 13e31aef6aSopenharmony_ci# defaults for the parser / lexer 14e31aef6aSopenharmony_ciBLOCK_START_STRING = "{%" 15e31aef6aSopenharmony_ciBLOCK_END_STRING = "%}" 16e31aef6aSopenharmony_ciVARIABLE_START_STRING = "{{" 17e31aef6aSopenharmony_ciVARIABLE_END_STRING = "}}" 18e31aef6aSopenharmony_ciCOMMENT_START_STRING = "{#" 19e31aef6aSopenharmony_ciCOMMENT_END_STRING = "#}" 20e31aef6aSopenharmony_ciLINE_STATEMENT_PREFIX: t.Optional[str] = None 21e31aef6aSopenharmony_ciLINE_COMMENT_PREFIX: t.Optional[str] = None 22e31aef6aSopenharmony_ciTRIM_BLOCKS = False 23e31aef6aSopenharmony_ciLSTRIP_BLOCKS = False 24e31aef6aSopenharmony_ciNEWLINE_SEQUENCE: "te.Literal['\\n', '\\r\\n', '\\r']" = "\n" 25e31aef6aSopenharmony_ciKEEP_TRAILING_NEWLINE = False 26e31aef6aSopenharmony_ci 27e31aef6aSopenharmony_ci# default filters, tests and namespace 28e31aef6aSopenharmony_ci 29e31aef6aSopenharmony_ciDEFAULT_NAMESPACE = { 30e31aef6aSopenharmony_ci "range": range, 31e31aef6aSopenharmony_ci "dict": dict, 32e31aef6aSopenharmony_ci "lipsum": generate_lorem_ipsum, 33e31aef6aSopenharmony_ci "cycler": Cycler, 34e31aef6aSopenharmony_ci "joiner": Joiner, 35e31aef6aSopenharmony_ci "namespace": Namespace, 36e31aef6aSopenharmony_ci} 37e31aef6aSopenharmony_ci 38e31aef6aSopenharmony_ci# default policies 39e31aef6aSopenharmony_ciDEFAULT_POLICIES: t.Dict[str, t.Any] = { 40e31aef6aSopenharmony_ci "compiler.ascii_str": True, 41e31aef6aSopenharmony_ci "urlize.rel": "noopener", 42e31aef6aSopenharmony_ci "urlize.target": None, 43e31aef6aSopenharmony_ci "urlize.extra_schemes": None, 44e31aef6aSopenharmony_ci "truncate.leeway": 5, 45e31aef6aSopenharmony_ci "json.dumps_function": None, 46e31aef6aSopenharmony_ci "json.dumps_kwargs": {"sort_keys": True}, 47e31aef6aSopenharmony_ci "ext.i18n.trimmed": False, 48e31aef6aSopenharmony_ci} 49