def downgrade_to_aspect()

in src/models/struxgpt_v2.py [0:0]


    def downgrade_to_aspect(self, keep_subaspects=False, sent_off=0) -> Tuple["AspectItem", int]:
        first_aspect, last_aspect = self.aspects[0], self.aspects[-1]
        first_sent, last_sent = first_aspect.sent_range[0], last_aspect.sent_range[1]
        super_aspect = {
            'name': self.scope, 
            'sent_range': [first_sent+sent_off, last_sent+sent_off],
            'subaspects': [],
            'chunks': StruXGPT.remapping_sentence(self.raw_query)
        }
        if keep_subaspects:
            super_aspect['subaspects'] = [
                AspectItem.offset_sent_range(aspect.to_json(), offset=sent_off) \
                    for aspect in self.aspects
            ]
        super_aspect = AspectItem(aspect_dict=super_aspect)

        return super_aspect, sent_off+last_sent