2022-01-24 04:07:52 +00:00
|
|
|
import typing as t
|
2019-12-02 21:46:54 +00:00
|
|
|
|
2022-01-24 04:07:52 +00:00
|
|
|
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
|
2019-12-02 21:46:54 +00:00
|
|
|
|
2022-01-24 04:07:52 +00:00
|
|
|
if t.TYPE_CHECKING:
|
|
|
|
import typing_extensions as te
|
2019-12-02 21:46:54 +00:00
|
|
|
|
|
|
|
# defaults for the parser / lexer
|
2022-01-24 04:07:52 +00:00
|
|
|
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
|
2019-12-02 21:46:54 +00:00
|
|
|
TRIM_BLOCKS = False
|
|
|
|
LSTRIP_BLOCKS = False
|
2022-01-24 04:07:52 +00:00
|
|
|
NEWLINE_SEQUENCE: "te.Literal['\\n', '\\r\\n', '\\r']" = "\n"
|
2019-12-02 21:46:54 +00:00
|
|
|
KEEP_TRAILING_NEWLINE = False
|
|
|
|
|
|
|
|
# default filters, tests and namespace
|
2022-01-24 04:07:52 +00:00
|
|
|
|
2019-12-02 21:46:54 +00:00
|
|
|
DEFAULT_NAMESPACE = {
|
2022-01-24 04:07:52 +00:00
|
|
|
"range": range,
|
|
|
|
"dict": dict,
|
|
|
|
"lipsum": generate_lorem_ipsum,
|
|
|
|
"cycler": Cycler,
|
|
|
|
"joiner": Joiner,
|
|
|
|
"namespace": Namespace,
|
2019-12-02 21:46:54 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
# default policies
|
2022-01-24 04:07:52 +00:00
|
|
|
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,
|
2019-12-02 21:46:54 +00:00
|
|
|
}
|