in aliyun/log/etl_core/transform/transform_list.py [0:0]
def __init__(self, trans):
trans = u(trans)
if not isinstance(trans, list):
self.trans = [trans]
else:
self.trans = trans
self.transform_list = []
for tr in self.trans:
if isinstance(tr, Callable):
self.transform_list.append(tr)
elif isinstance(tr, (dict, )):
self.transform_list.append(_dict_transform_fn(tr))
elif isinstance(tr, tuple):
if len(tr) < 2 or len(tr) > 3:
logger.warning(u"invalid transform config: {0}".format(tr))
continue
inpt, config = tr[0], tr[1]
if isinstance(config, (six.text_type, six.binary_type)):
self.transform_list.append(lambda e: REGEX(*tr[1:])(e, inpt))
elif isinstance(config, Callable):
self.transform_list.append(bind_event_fn(config, inpt))
else:
logger.warning(u"unknown transform config setting: {0}".format(config))
continue