in aliyun/log/etl_core/transform/condition_list.py [0:0]
def _get_check(c):
if isinstance(c, bool):
return lambda e: c
elif isinstance(c, Callable):
return c
elif isinstance(c, (dict,)):
def check(event):
for k, v in six.iteritems(c):
if k in event:
if (isinstance(v, bool) and v) \
or (isinstance(v, Callable) and v(event[k])) \
or (isinstance(v, (six.text_type, six.binary_type))
and re_full_match(v, event[k])):
continue
return False
else:
if v is None:
continue
return False
return True
return check