from datetime import datetime import xml.etree.ElementTree as ET from .entry import Entry from .util import escape_text_for_xml class ParseErrorEntry(Entry): """ Entry type for parse and validation errors. """ def __init__(self, content: str, error: str, id: str, timestamp: datetime): """ Initialize a new parse error entry. Args: content: Original content that failed to parse error: Error message describing the failure id: Unique identifier for this entry timestamp: Creation timestamp for this entry """ super().__init__(id, timestamp) self._content = content self._error = error @property def content(self) -> str: """Get the original content that failed to parse.""" return self._content @property def error(self) -> str: """Get the error message describing the failure.""" return self._error def update(self) -> None: pass def generate_context(self) -> ET.Element: """ Generate an XML Element representing this parse error entry. Returns: ET.Element: XML element containing the entry's data """ # Create root element element = ET.Element("parse_error", {"id": self._id}) # Add error subelement error_elem = ET.SubElement(element, "error") error_elem.text = escape_text_for_xml(self._error) # Add content subelement content_elem = ET.SubElement(element, "content") content_elem.text = escape_text_for_xml(self._content) return element