Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_issue212_py2unicode():
t1 = sql.Token(T.String, u'schöner ')
t2 = sql.Token(T.String, 'bug')
token_list = sql.TokenList([t1, t2])
assert str(token_list) == 'schöner bug'
def test_token_str():
token = sql.Token(None, 'FoO')
assert str(token) == 'FoO'
yield sql.Token(T.Whitespace, '\n')
yield sql.Token(T.Name, varname)
yield sql.Token(T.Whitespace, ' ')
yield sql.Token(T.Operator, '=')
yield sql.Token(T.Whitespace, ' ')
if has_nl:
yield sql.Token(T.Operator, '(')
yield sql.Token(T.Text, "'")
cnt = 0
for token in stream:
cnt += 1
if token.is_whitespace() and '\n' in token.value:
if cnt == 1:
continue
after_lb = token.value.split('\n', 1)[1]
yield sql.Token(T.Text, " '")
yield sql.Token(T.Whitespace, '\n')
for i in range(len(varname) + 4):
yield sql.Token(T.Whitespace, ' ')
yield sql.Token(T.Text, "'")
if after_lb: # it's the indendation
yield sql.Token(T.Whitespace, after_lb)
continue
elif token.value and "'" in token.value:
token.value = token.value.replace("'", "\\'")
yield sql.Token(T.Text, token.value or '')
yield sql.Token(T.Text, "'")
if has_nl:
yield sql.Token(T.Operator, ')')
yield sql.Token(T.Operator, '=')
yield sql.Token(T.Whitespace, ' ')
if has_nl:
yield sql.Token(T.Operator, '(')
yield sql.Token(T.Text, "'")
# Print the tokens on the quote
for token in stream:
# Token is a new line separator
if token.is_whitespace and '\n' in token.value:
# Close quote and add a new line
yield sql.Token(T.Text, " '")
yield sql.Token(T.Whitespace, '\n')
# Quote header on secondary lines
yield sql.Token(T.Whitespace, ' ' * (len(varname) + 4))
yield sql.Token(T.Text, "'")
# Indentation
after_lb = token.value.split('\n', 1)[1]
if after_lb:
yield sql.Token(T.Whitespace, after_lb)
continue
# Token has escape chars
elif "'" in token.value:
token.value = token.value.replace("'", "\\'")
# Put the token
yield sql.Token(T.Text, token.value)
# Close quote
def cr(self):
return sql.Token(T.Whitespace, '\n')
prv = tlist.token_prev(prv, skip_ws=False)
while prv and prv.is_whitespace():
prv.value = ""
prv = tlist.token_prev(prv, skip_ws=False)
else:
tlist.insert_before(values_token, sql.Token(T.Whitespace, " "))
nxt = tlist.token_next(values_token, skip_ws=False)
if nxt and nxt.is_whitespace():
nxt.value = " "
nxt = tlist.token_next(nxt, skip_ws=False)
while nxt and nxt.is_whitespace():
nxt.value = ""
nxt = tlist.token_next(nxt, skip_ws=False)
else:
tlist.insert_after(values_token, sql.Token(T.Whitespace, " "))
def indent_space(self, offset=0):
space = ("\t" * ((self.indent * self.width) + self.offset + offset))
return sql.Token(T.Whitespace, space)
def proc_parenthesis(tokens, parent):
for token in tokens:
if tu.is_comma(token):
next_token = parent.token_next(token, skip_ws=False)
if next_token and next_token.is_whitespace():
next_token.value = " "
else:
parent.insert_after(token, sql.Token(T.Whitespace, " "))
elif tu.is_identifier_list(token):
proc_parenthesis(token.tokens[:], token)
elif token.is_group():
self._process(token)
def _substitute(self, expression, replacement):
try:
expression.tokens
except AttributeError:
return
for i, token in enumerate(expression.tokens):
if self._is_literal(token):
expression.tokens[i] = replacement
elif token.is_whitespace():
expression.tokens[i] = sqlparse.sql.Token('Whitespace', ' ')
else:
self._substitute(token, replacement)
def cr(self):
return sql.Token(T.Whitespace, '\n')