in src/models/struxgpt_v2.py [0:0]
def prune_struct_level(struct_dict: dict, is_root=True, preserve_level=1):
if preserve_level == 0 or preserve_level < -1:
return
aspect_key = 'aspects' if is_root else 'subaspects'
if len(struct_dict[aspect_key]) == 0:
return
for aspect in struct_dict[aspect_key]:
if preserve_level == 1:
aspect['subaspects'] = []
elif preserve_level == -1 and len(aspect['subaspects']) == 1:
aspect['name'] = aspect['subaspects'][0]['name']
aspect['subaspects'] = []
else:
for subaspect in aspect['subaspects']:
StructItem.prune_struct_level(subaspect, False, preserve_level-1)