mirror of
https://github.com/apache/impala.git
synced 2025-12-19 18:12:08 -05:00
sqlparse-0.1.19 is the last version of sqlparse that supports Python 2.6. Testing: - Ran all end-to-end tests Change-Id: Ide51ef3ac52d25a96b0fa832e29b6535197d23cb Reviewed-on: http://gerrit.cloudera.org:8080/10354 Reviewed-by: David Knupp <dknupp@cloudera.com> Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
32 lines
995 B
Python
32 lines
995 B
Python
# Copyright (C) 2011 Jesus Leganes "piranna", piranna@gmail.com
|
|
#
|
|
# This module is part of python-sqlparse and is released under
|
|
# the BSD License: http://www.opensource.org/licenses/bsd-license.php.
|
|
|
|
from types import GeneratorType
|
|
|
|
|
|
class Pipeline(list):
|
|
"""Pipeline to process filters sequentially"""
|
|
|
|
def __call__(self, stream):
|
|
"""Run the pipeline
|
|
|
|
Return a static (non generator) version of the result
|
|
"""
|
|
|
|
# Run the stream over all the filters on the pipeline
|
|
for filter in self:
|
|
# Functions and callable objects (objects with '__call__' method)
|
|
if callable(filter):
|
|
stream = filter(stream)
|
|
|
|
# Normal filters (objects with 'process' method)
|
|
else:
|
|
stream = filter.process(None, stream)
|
|
|
|
# If last filter return a generator, staticalize it inside a list
|
|
if isinstance(stream, GeneratorType):
|
|
return list(stream)
|
|
return stream
|