|
3 | 3 | from __future__ import annotations |
4 | 4 |
|
5 | 5 | import re |
6 | | -from typing import TYPE_CHECKING, Any, Callable, Dict, List, Tuple, Type, TypeVar |
| 6 | +from typing import TYPE_CHECKING, Any, Callable, Dict, Tuple, Type, TypeVar |
7 | 7 |
|
8 | 8 | from lxml import etree |
9 | 9 | from lxml.etree import ElementBase |
@@ -91,12 +91,6 @@ def _parse_line(cls, line): |
91 | 91 | class MetaOxmlElement(type): |
92 | 92 | """Metaclass for BaseOxmlElement.""" |
93 | 93 |
|
94 | | - def __new__( |
95 | | - cls: Type[_T], clsname: str, bases: Tuple[type, ...], namespace: Dict[str, Any] |
96 | | - ) -> _T: |
97 | | - bases = (*bases, etree.ElementBase) |
98 | | - return super().__new__(cls, clsname, bases, namespace) |
99 | | - |
100 | 94 | def __init__(cls, clsname: str, bases: Tuple[type, ...], namespace: Dict[str, Any]): |
101 | 95 | dispatchable = ( |
102 | 96 | OneAndOnlyOne, |
@@ -647,25 +641,15 @@ def _remove_choice_group_method_name(self): |
647 | 641 | return "_remove_%s" % self._prop_name |
648 | 642 |
|
649 | 643 |
|
650 | | -class BaseOxmlElement(metaclass=MetaOxmlElement): |
| 644 | +# -- lxml typing isn't quite right here, just ignore this error on _Element -- |
| 645 | +class BaseOxmlElement( # pyright: ignore[reportGeneralTypeIssues] |
| 646 | + etree.ElementBase, metaclass=MetaOxmlElement |
| 647 | +): |
651 | 648 | """Effective base class for all custom element classes. |
652 | 649 |
|
653 | 650 | Adds standardized behavior to all classes in one place. |
654 | 651 | """ |
655 | 652 |
|
656 | | - addprevious: Callable[[BaseOxmlElement], None] |
657 | | - attrib: Dict[str, str] |
658 | | - append: Callable[[BaseOxmlElement], None] |
659 | | - find: Callable[[str], ElementBase | None] |
660 | | - findall: Callable[[str], List[ElementBase]] |
661 | | - get: Callable[[str], str | None] |
662 | | - getparent: Callable[[], BaseOxmlElement] |
663 | | - insert: Callable[[int, BaseOxmlElement], None] |
664 | | - remove: Callable[[BaseOxmlElement], None] |
665 | | - set: Callable[[str, str], None] |
666 | | - tag: str |
667 | | - text: str | None |
668 | | - |
669 | 653 | def __repr__(self): |
670 | 654 | return "<%s '<%s>' at 0x%0x>" % ( |
671 | 655 | self.__class__.__name__, |
|
0 commit comments