Python jinja2.lexer.Token() Examples
The following are 7
code examples of jinja2.lexer.Token().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
jinja2.lexer
, or try the search function
.
Example #1
Source File: ext.py From Flask-P2P with MIT License | 6 votes |
def interpolate(self, token): pos = 0 end = len(token.value) lineno = token.lineno while 1: match = _gettext_re.search(token.value, pos) if match is None: break value = token.value[pos:match.start()] if value: yield Token(lineno, 'data', value) lineno += count_newlines(token.value) yield Token(lineno, 'variable_begin', None) yield Token(lineno, 'name', 'gettext') yield Token(lineno, 'lparen', None) yield Token(lineno, 'string', match.group(1)) yield Token(lineno, 'rparen', None) yield Token(lineno, 'variable_end', None) pos = match.end() if pos < end: yield Token(lineno, 'data', token.value[pos:])
Example #2
Source File: ext.py From Flask with Apache License 2.0 | 6 votes |
def interpolate(self, token): pos = 0 end = len(token.value) lineno = token.lineno while 1: match = _gettext_re.search(token.value, pos) if match is None: break value = token.value[pos:match.start()] if value: yield Token(lineno, 'data', value) lineno += count_newlines(token.value) yield Token(lineno, 'variable_begin', None) yield Token(lineno, 'name', 'gettext') yield Token(lineno, 'lparen', None) yield Token(lineno, 'string', match.group(1)) yield Token(lineno, 'rparen', None) yield Token(lineno, 'variable_end', None) pos = match.end() if pos < end: yield Token(lineno, 'data', token.value[pos:])
Example #3
Source File: ext.py From Flask with Apache License 2.0 | 6 votes |
def interpolate(self, token): pos = 0 end = len(token.value) lineno = token.lineno while 1: match = _gettext_re.search(token.value, pos) if match is None: break value = token.value[pos:match.start()] if value: yield Token(lineno, 'data', value) lineno += count_newlines(token.value) yield Token(lineno, 'variable_begin', None) yield Token(lineno, 'name', 'gettext') yield Token(lineno, 'lparen', None) yield Token(lineno, 'string', match.group(1)) yield Token(lineno, 'rparen', None) yield Token(lineno, 'variable_end', None) pos = match.end() if pos < end: yield Token(lineno, 'data', token.value[pos:])
Example #4
Source File: _extensions.py From assembly with MIT License | 5 votes |
def filter_stream(self, stream): ctx = StreamProcessContext(stream) for token in stream: if token.type != 'data': yield token continue ctx.token = token value = self.normalize(ctx) yield Token(token.lineno, 'data', value)
Example #5
Source File: _extensions.py From assembly with MIT License | 5 votes |
def filter_stream(self, stream): ctx = StreamProcessContext(stream) strip_depth = 0 while True: if stream.current.type == 'block_begin': if stream.look().test('name:strip') or stream.look().test( 'name:endstrip'): stream.skip() if stream.current.value == 'strip': strip_depth += 1 else: strip_depth -= 1 if strip_depth < 0: ctx.fail('Unexpected tag endstrip') stream.skip() if stream.current.type != 'block_end': ctx.fail( 'expected end of block, got %s' % describe_token( stream.current)) stream.skip() if strip_depth > 0 and stream.current.type == 'data': ctx.token = stream.current value = self.normalize(ctx) yield Token(stream.current.lineno, 'data', value) else: yield stream.current next(stream)
Example #6
Source File: transformer.py From airflow-declarative with Apache License 2.0 | 5 votes |
def filter_stream(self, stream): """ We convert {{ some.variable | filter1 | filter 2}} to {{ some.variable | filter1 | filter 2 | yaml}} ... for all variable declarations in the template This function is called by jinja2 immediately after the lexing stage, but before the parser is called. """ while not stream.eos: token = next(stream) if token.test("variable_begin"): var_expr = [] while not token.test("variable_end"): var_expr.append(token) token = next(stream) variable_end = token last_token = var_expr[-1] if last_token.test("name") and last_token.value == "yaml": # don't yaml twice continue # Wrap the whole expression between the `variable_begin` # and `variable_end` marks in parens: var_expr.insert(1, Token(var_expr[0].lineno, "lparen", None)) var_expr.append(Token(var_expr[-1].lineno, "rparen", None)) var_expr.append(Token(token.lineno, "pipe", "|")) var_expr.append(Token(token.lineno, "name", "yaml")) var_expr.append(variable_end) for token in var_expr: yield token else: yield token
Example #7
Source File: core.py From jinjasql with MIT License | 4 votes |
def filter_stream(self, stream): """ We convert {{ some.variable | filter1 | filter 2}} to {{ ( some.variable | filter1 | filter 2 ) | bind}} ... for all variable declarations in the template Note the extra ( and ). We want the | bind to apply to the entire value, not just the last value. The parentheses are mostly redundant, except in expressions like {{ '%' ~ myval ~ '%' }} This function is called by jinja2 immediately after the lexing stage, but before the parser is called. """ while not stream.eos: token = next(stream) if token.test("variable_begin"): var_expr = [] while not token.test("variable_end"): var_expr.append(token) token = next(stream) variable_end = token last_token = var_expr[-1] lineno = last_token.lineno # don't bind twice if (not last_token.test("name") or not last_token.value in ('bind', 'inclause', 'sqlsafe')): param_name = self.extract_param_name(var_expr) var_expr.insert(1, Token(lineno, 'lparen', u'(')) var_expr.append(Token(lineno, 'rparen', u')')) var_expr.append(Token(lineno, 'pipe', u'|')) var_expr.append(Token(lineno, 'name', u'bind')) var_expr.append(Token(lineno, 'lparen', u'(')) var_expr.append(Token(lineno, 'string', param_name)) var_expr.append(Token(lineno, 'rparen', u')')) var_expr.append(variable_end) for token in var_expr: yield token else: yield token