Source code for SDF.data_model.owner
from xml.etree.ElementTree import Element
from SDF.data_model._helper_functions import pop_element_text, element_is_empty
from SDF.data_model.abstract import XMLWritable
[docs]class Owner(XMLWritable):
"""Represents an SDF <owner> element"""
def __init__(self, name: str):
if not isinstance(name, str):
raise TypeError(f"Expected a string, got {type(name)}")
self.name = " ".join(s for s in name.strip().split())
[docs] def to_xml_element(self) -> Element:
element = Element("owner")
element.text = self.name
return element
[docs] @classmethod
def from_xml_element(cls, element: Element) -> "Owner":
if element.tag != "owner":
raise ValueError(f"Expected an <owner> element, got {element.tag}")
text = pop_element_text(element)
if not element_is_empty(element):
raise ValueError("Element is not empty")
return cls(text)
def __repr__(self):
return f"{self.__class__.__name__}({self.name!r})"
def __eq__(self, other):
if isinstance(other, Owner):
return self.name == other.name
return False