62 lines
1.7 KiB
Python
62 lines
1.7 KiB
Python
from typing import (
|
|
Dict,
|
|
Iterator,
|
|
List,
|
|
Literal,
|
|
Optional,
|
|
Tuple,
|
|
TypeVar,
|
|
Union,
|
|
overload,
|
|
)
|
|
|
|
URI = str
|
|
Name = str
|
|
QName = Tuple[Optional[URI], Name]
|
|
AttributeKey = Union[QName, Name]
|
|
Attributes = Dict[AttributeKey, str]
|
|
Prefix = str
|
|
|
|
D = TypeVar("D")
|
|
|
|
# Note: these typings are incomplete and evolve as needed.
|
|
class Element:
|
|
uri: Optional[URI]
|
|
name: Name
|
|
defaultUri: Optional[URI]
|
|
children: List[Union["Element", str]]
|
|
attributes: Attributes
|
|
|
|
def __init__(
|
|
self,
|
|
qname: QName,
|
|
defaultUri: Optional[URI] = None,
|
|
attribs: Optional[Attributes] = None,
|
|
localPrefixes: Optional[Dict[URI, Prefix]] = None,
|
|
) -> None: ...
|
|
def __getitem__(self, key: AttributeKey) -> str: ...
|
|
def __setitem__(self, key: AttributeKey, value: str) -> None: ...
|
|
@overload
|
|
def getAttribute(
|
|
self, attribname: AttributeKey, default: None = None
|
|
) -> Union[str, None]: ...
|
|
@overload
|
|
def getAttribute(self, attribname: AttributeKey, default: D) -> Union[str, D]: ...
|
|
def addChild(self, node: "Element") -> "Element": ...
|
|
def addContent(self, text: str) -> str: ...
|
|
def addElement(
|
|
self,
|
|
name: Union[QName, Name],
|
|
defaultUri: Optional[URI] = None,
|
|
content: Optional[str] = None,
|
|
) -> "Element": ...
|
|
def elements(
|
|
self, uri: Optional[URI] = None, name: Optional[Name] = None
|
|
) -> Iterator["Element"]: ...
|
|
def toXml(
|
|
self,
|
|
prefixes: Optional[Dict[URI, Prefix]] = None,
|
|
closeElement: Literal[0, 1] = 1,
|
|
defaultUri: str = "",
|
|
prefixesInScope: Optional[List[Prefix]] = None,
|
|
) -> str: ...
|