in reference/src/main/python/similar.py [0:0]
def get_sub_ast_aux(ast, beginline, stop=False):
if isinstance(ast, list):
if stop:
return (stop, None)
else:
ret = []
for elem in ast:
(stop, tmp) = get_sub_ast_aux(elem, beginline, stop)
if tmp != None:
ret.append(tmp)
if len(ret) >= 2:
return (stop, ret)
else:
return (True, None)
elif isinstance(ast, dict):
if (
"leaf" not in ast
or not ast["leaf"]
or (not stop and ast["line"] - beginline < config.SAMPLE_METHOD_MAX_LINES)
):
return (stop, ast)
else:
return (True, None)
else:
return (stop, ast)