49 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
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,
 | 
						|
}
 |