def prune_struct_level()

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)