Beispiel #1
0
def is_keyword(value):
    test = value.upper()
    return KEYWORDS_COMMON.get(test, KEYWORDS.get(test, tokens.Name)), value
Beispiel #2
0
def is_keyword(value):
    test = value.upper()
    return KEYWORDS_COMMON.get(test, KEYWORDS.get(test, tokens.Name)), value
Beispiel #3
0
import logging
import re
from pygments import highlight
from pygments.lexers import SqlLexer
from pygments.formatters import HtmlFormatter
import sqlparse

logger = logging.getLogger("zentral.utils.sql")

# monkey patch sqlparse to have file, path and last not considered as keywords
try:
    from sqlparse.keywords import KEYWORDS, KEYWORDS_PLPGSQL
except ImportError:
    logger.error("Could not monkey patch sqlparse")
else:
    KEYWORDS.pop("FILE", None)
    KEYWORDS.pop("LAST", None)
    KEYWORDS_PLPGSQL.pop("PATH", None)

# SQL → HTML


def format_sql(query):
    if not query:
        return ""
    sql_lexer = SqlLexer()
    html_formatter = HtmlFormatter()
    reindent = len(query) > 80
    query = sqlparse.format(query, reindent=reindent, keyword_case='upper')
    return highlight(query, sql_lexer, html_formatter)