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