in src/models/struxgpt_v2.py [0:0]
def parse_aspect(self, aspect: dict):
aspect_content = aspect[self.scfg.aspect_key]
assert isinstance(aspect_content, str) and aspect_content
sent_range = aspect[self.scfg.sent_key]
if isinstance(sent_range, dict):
sent_range = [sent_range['start'], sent_range['end']]
else:
assert isinstance(sent_range, list) and len(sent_range)
assert all(isinstance(sent_num, int) for sent_num in sent_range)
assert sent_range[0] <= sent_range[-1]
sent_range = [min(sent_range), max(sent_range)]
subaspects = [self.parse_aspect(subaspect) \
for subaspect in aspect.get(self.scfg.subaspect_key, [])]
return AspectItem(aspect_content, sent_range, subaspects)