in aliyun/log/etl_core/etl_util.py [0:0]
def process_event(event, fn_list, cp=True):
if not len(fn_list):
return event
new_event = event
if cp:
new_event = copy.copy(event)
if isinstance(new_event, dict):
new_event = fn_list[0](new_event)
return process_event(new_event, fn_list[1:], cp=False)
elif isinstance(new_event, (tuple, list)):
result = []
for e in new_event:
new_e = fn_list[0](e)
ret = process_event(new_e, fn_list[1:], cp=False)
if ret is None:
continue
if isinstance(ret, (tuple, list)):
result.extend(ret)
else:
result.append(ret)
if result:
if len(result) == 1:
return result[0]
return result
return None # return None for empty list
return new_event