Defines a required child element for MetaOxmlElement.
| 472 | |
| 473 | |
| 474 | class OneAndOnlyOne(_BaseChildElement): |
| 475 | """Defines a required child element for MetaOxmlElement.""" |
| 476 | |
| 477 | def __init__(self, nsptagname: str): |
| 478 | super(OneAndOnlyOne, self).__init__(nsptagname, ()) |
| 479 | |
| 480 | def populate_class_members(self, element_cls: Type[BaseOxmlElement], prop_name: str): |
| 481 | """ |
| 482 | Add the appropriate methods to *element_cls*. |
| 483 | """ |
| 484 | super(OneAndOnlyOne, self).populate_class_members(element_cls, prop_name) |
| 485 | self._add_getter() |
| 486 | |
| 487 | @property |
| 488 | def _getter(self) -> Callable[[BaseOxmlElement], BaseOxmlElement]: |
| 489 | """Callable suitable for the "get" side of the property descriptor.""" |
| 490 | |
| 491 | def get_child_element(obj: BaseOxmlElement) -> BaseOxmlElement: |
| 492 | child = obj.find(qn(self._nsptagname)) |
| 493 | if child is None: |
| 494 | raise InvalidXmlError( |
| 495 | "required ``<%s>`` child element not present" % self._nsptagname |
| 496 | ) |
| 497 | return child |
| 498 | |
| 499 | get_child_element.__doc__ = "Required ``<%s>`` child element." % self._nsptagname |
| 500 | return get_child_element |
| 501 | |
| 502 | |
| 503 | class OneOrMore(_BaseChildElement): |
no outgoing calls
no test coverage detected
searching dependent graphs…