Viewing file: tokens.py (1.57 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
# -*- coding: utf-8 -*- # # Copyright (C) 2016 Andi Albrecht, albrecht.andi@gmail.com # # This module is part of python-sqlparse and is released under # the BSD License: https://opensource.org/licenses/BSD-3-Clause
from sqlparse import tokens as T from sqlparse.compat import text_type
class _CaseFilter(object): ttype = None
def __init__(self, case=None): case = case or 'upper' self.convert = getattr(text_type, case)
def process(self, stream): for ttype, value in stream: if ttype in self.ttype: value = self.convert(value) yield ttype, value
class KeywordCaseFilter(_CaseFilter): ttype = T.Keyword
class IdentifierCaseFilter(_CaseFilter): ttype = T.Name, T.String.Symbol
def process(self, stream): for ttype, value in stream: if ttype in self.ttype and value.strip()[0] != '"': value = self.convert(value) yield ttype, value
class TruncateStringFilter(object): def __init__(self, width, char): self.width = width self.char = char
def process(self, stream): for ttype, value in stream: if ttype != T.Literal.String.Single: yield ttype, value continue
if value[:2] == "''": inner = value[2:-2] quote = "''" else: inner = value[1:-1] quote = "'"
if len(inner) > self.width: value = ''.join((quote, inner[:self.width], self.char, quote)) yield ttype, value
|