当前位置: 首页>>代码示例>>Python>>正文


Python StatementFilter.process方法代码示例

本文整理汇总了Python中sqlparse.engine.filter.StatementFilter.process方法的典型用法代码示例。如果您正苦于以下问题:Python StatementFilter.process方法的具体用法?Python StatementFilter.process怎么用?Python StatementFilter.process使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在sqlparse.engine.filter.StatementFilter的用法示例。


在下文中一共展示了StatementFilter.process方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: split

# 需要导入模块: from sqlparse.engine.filter import StatementFilter [as 别名]
# 或者: from sqlparse.engine.filter.StatementFilter import process [as 别名]
def split(sql, encoding=None):
    """Split *sql* into single statements.

    :param sql: A string containting one or more SQL statements.
    :param encoding: The encoding of the statement (optional).
    :returns: A list of strings.
    """
    stream = lexer.tokenize(sql, encoding)
    splitter = StatementFilter()
    stream = splitter.process(None, stream)
    return [unicode(stmt).strip() for stmt in stream]
开发者ID:abrarsheikh,项目名称:sqlparse,代码行数:13,代码来源:__init__.py

示例2: run

# 需要导入模块: from sqlparse.engine.filter import StatementFilter [as 别名]
# 或者: from sqlparse.engine.filter.StatementFilter import process [as 别名]
    def run(self, sql, encoding=None):
        stream = lexer.tokenize(sql, encoding)
        # Process token stream
        if self.preprocess:
            for filter_ in self.preprocess:
                stream = filter_.process(self, stream)

        if (self.stmtprocess or self.postprocess or self.split_statements
            or self._grouping):
            splitter = StatementFilter()
            stream = splitter.process(self, stream)

        # import StripCommentsFilter in the run() method to avoid a circular dependency.
        # For stripping comments, the only grouping method we want to invoke is
        # grouping.group(), this considerably improves performance.
        strip_comments_only = False
        if self.stmtprocess and len(self.stmtprocess) == 1:
          from sqlparse.filters import StripCommentsFilter
          strip_comments_only = isinstance(self.stmtprocess[0], StripCommentsFilter)

        if self._grouping:
            def _group(stream):
                for stmt in stream:
                    if strip_comments_only:
                        grouping.group_comments(stmt)
                    else:
                        grouping.group(stmt)
                    yield stmt
            stream = _group(stream)

        if self.stmtprocess:
            def _run1(stream):
                ret = []
                for stmt in stream:
                    for filter_ in self.stmtprocess:
                        filter_.process(self, stmt)
                    ret.append(stmt)
                return ret
            stream = _run1(stream)

        if self.postprocess:

            def _run2(stream):
                for stmt in stream:
                    stmt.tokens = list(self._flatten(stmt.tokens))
                    for filter_ in self.postprocess:
                        stmt = filter_.process(self, stmt)
                    yield stmt
            stream = _run2(stream)

        return stream
开发者ID:1ack,项目名称:Impala,代码行数:53,代码来源:__init__.py

示例3: run

# 需要导入模块: from sqlparse.engine.filter import StatementFilter [as 别名]
# 或者: from sqlparse.engine.filter.StatementFilter import process [as 别名]
    def run(self, sql):
        stream = lexer.tokenize(sql)
        # Process token stream
        if self.preprocess:
            for filter_ in self.preprocess:
                stream = filter_.process(self, stream)

        if (self.stmtprocess or self.postprocess or self.split_statements
            or self._grouping):
            splitter = StatementFilter()
            stream = splitter.process(self, stream)

        if self._grouping:

            def _group(stream):
                # modified by rrana
                pass
                for stmt in stream:
                    grouping.group(stmt) 
                    yield stmt
            stream = _group(stream)

        if self.stmtprocess:

            def _run1(stream):
                ret = []
                for stmt in stream:
                    for filter_ in self.stmtprocess:
                        filter_.process(self, stmt)
                    ret.append(stmt)
                return ret
            stream = _run1(stream)

        if self.postprocess:

            def _run2(stream):
                for stmt in stream:
                    stmt.tokens = list(self._flatten(stmt.tokens))
                    for filter_ in self.postprocess:
                        stmt = filter_.process(self, stmt)
                    yield stmt
            stream = _run2(stream)

        return stream
开发者ID:askrht,项目名称:listobistats,代码行数:46,代码来源:__init__.py

示例4: split2

# 需要导入模块: from sqlparse.engine.filter import StatementFilter [as 别名]
# 或者: from sqlparse.engine.filter.StatementFilter import process [as 别名]
def split2(stream):
    splitter = StatementFilter()
    return list(splitter.process(None, stream))
开发者ID:CometHale,项目名称:lphw,代码行数:5,代码来源:__init__.py

示例5: split2

# 需要导入模块: from sqlparse.engine.filter import StatementFilter [as 别名]
# 或者: from sqlparse.engine.filter.StatementFilter import process [as 别名]
def split2(stream):
    from sqlparse.engine.filter import StatementFilter
    splitter = StatementFilter()
    return list(splitter.process(None, stream))
开发者ID:burtnoir,项目名称:sqlparse,代码行数:6,代码来源:__init__.py


注:本文中的sqlparse.engine.filter.StatementFilter.process方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。