| import typing as t |
| |
| from .filters import FILTERS as DEFAULT_FILTERS # noqa: F401 |
| from .tests import TESTS as DEFAULT_TESTS # noqa: F401 |
| from .utils import Cycler |
| from .utils import generate_lorem_ipsum |
| from .utils import Joiner |
| from .utils import Namespace |
| |
| if t.TYPE_CHECKING: |
| import typing_extensions as te |
| |
| # defaults for the parser / lexer |
| BLOCK_START_STRING = "{%" |
| BLOCK_END_STRING = "%}" |
| VARIABLE_START_STRING = "{{" |
| VARIABLE_END_STRING = "}}" |
| COMMENT_START_STRING = "{#" |
| COMMENT_END_STRING = "#}" |
| LINE_STATEMENT_PREFIX: t.Optional[str] = None |
| LINE_COMMENT_PREFIX: t.Optional[str] = None |
| TRIM_BLOCKS = False |
| LSTRIP_BLOCKS = False |
| NEWLINE_SEQUENCE: "te.Literal['\\n', '\\r\\n', '\\r']" = "\n" |
| KEEP_TRAILING_NEWLINE = False |
| |
| # default filters, tests and namespace |
| |
| DEFAULT_NAMESPACE = { |
| "range": range, |
| "dict": dict, |
| "lipsum": generate_lorem_ipsum, |
| "cycler": Cycler, |
| "joiner": Joiner, |
| "namespace": Namespace, |
| } |
| |
| # default policies |
| DEFAULT_POLICIES: t.Dict[str, t.Any] = { |
| "compiler.ascii_str": True, |
| "urlize.rel": "noopener", |
| "urlize.target": None, |
| "urlize.extra_schemes": None, |
| "truncate.leeway": 5, |
| "json.dumps_function": None, |
| "json.dumps_kwargs": {"sort_keys": True}, |
| "ext.i18n.trimmed": False, |
| } |