def eval_elastic_params(arg): if len(arg) > 0: ret = ast.literal_eval(arg) if not is_iterable(ret): ret = [ret] ret = [ x for x in ret if is_iterable(x) and (len(x) == 2 or len(x) == 3) ] for x in ret: if len(x) == 2: x.append(1) ret = [(int(x[0]), int(x[1]), int(x[2])) for x in ret] else: ret = [] return (ret)
def eval_intensity_params(arg): ret = [] if len(arg) > 0: ret = ast.literal_eval(arg) if is_iterable(ret) and len(ret) == 4: try: ret = [float(x) for x in ret] except ValueError: pass return (ret)
def eval_crop_params(arg): ret = [] if len(arg) > 0: ret = ast.literal_eval(arg) if is_iterable(ret) and len(ret) == 2: try: ret = [int(x) for x in ret] except ValueError: pass if ret[0] <= 0 or ret[1] <= 0: ret = [] return (ret)
def get_nested_structure_level(x): if not is_iterable(x): return(0) else: return(get_nested_structure_level(x[0])+1)