@dataclassclassTextSlice:full_text:str=""start:int=-1end:int=-1def__eq__(self,other:object)->bool:"""Checks equality based on the text slice."""ifnotisinstance(other,TextSlice):returnNotImplementedreturnself.full_text==other.full_textandself.start==other.startandself.end==other.enddef__hash__(self)->int:"""Returns a hash based on the text slice."""returnhash((self.full_text,self.start,self.end))def__repr__(self)->str:"""Returns a string representation of the TextSlice."""returnf"TextSlice(text='{self.get_text()}', start={self.start}, end={self.end})"defget_text(self)->str:"""Returns the text slice."""returnself.full_text[self.start:self.end]
def__eq__(self,other:object)->bool:"""Checks equality based on the text slice."""ifnotisinstance(other,TextSlice):returnNotImplementedreturnself.full_text==other.full_textandself.start==other.startandself.end==other.end
def__repr__(self)->str:"""Returns a string representation of the TextSlice."""returnf"TextSlice(text='{self.get_text()}', start={self.start}, end={self.end})"