Source code for germanetpy.example
[docs]
class Example(str):
"""
Represents an example belonging to a lexical unit.
Example subclasses str so existing code that treated lexunit.examples as a
list of strings continues to work, while the object also exposes optional
frame and LLM provenance metadata.
"""
def __new__(cls, text: str = "", frame: str = None, llm_model: str = None,
llm_version: str = None, date_created: str = None, edited: bool = False):
obj = str.__new__(cls, text or "")
obj._frame = frame
obj._llm_model = llm_model
obj._llm_version = llm_version
obj._date_created = date_created
obj._edited = edited
return obj
def __repr__(self):
return (f'Example(text={str.__repr__(self)}, frame={self._frame!r}, '
f'llmModel={self._llm_model!r}, llmVersion={self._llm_version!r}, '
f'edited={self._edited!r})')
@property
def text(self):
return str(self)
@property
def frame(self):
return self._frame
@property
def exframe(self):
return self._frame
@property
def llm_model(self):
return self._llm_model
@property
def llmModel(self):
return self._llm_model
@property
def llm_version(self):
return self._llm_version
@property
def llmVersion(self):
return self._llm_version
@property
def date_created(self):
return self._date_created
@property
def dateCreated(self):
return self._date_created
@property
def edited(self):
return self._edited