(element: Optional[ET.Element])
| 358 | |
| 359 | |
| 360 | def _convert(element: Optional[ET.Element]) -> str: |
| 361 | if element is None: |
| 362 | return "" |
| 363 | |
| 364 | tag = _local_name(element.tag) |
| 365 | handler = _HANDLERS.get(tag) |
| 366 | if handler is not None: |
| 367 | return handler(element) |
| 368 | |
| 369 | # Generic fallback: concatenate child conversions, then own text. |
| 370 | parts = [_text_for(element)] |
| 371 | for child in element: |
| 372 | parts.append(_convert(child)) |
| 373 | if child.tail: |
| 374 | parts.append(_escape_text(child.tail)) |
| 375 | return "".join(p for p in parts if p) |
| 376 | |
| 377 | |
| 378 | def _local_name(qname: str) -> str: |
no test coverage detected