libervia-backend/stubs/twisted/words/xish/domish.pyi
Syndace 75ae8160ae plugin XEP-0384: Fully reworked to adjust to the reworked python-omemo:
- support for both (modern) OMEMO under the `urn:xmpp:omemo:2` namespace and (legacy) OMEMO under the `eu.siacs.conversations.axolotl` namespace
- maintains one identity across both versions of OMEMO
- migrates data from the old plugin
- includes more features for protocol stability
- uses SCE for modern OMEMO
- fully type-checked, linted and format-checked
- added type hints to various pieces of backend code used by the plugin
- added stubs for some Twisted APIs used by the plugin under stubs/ (use `export MYPYPATH=stubs/` before running mypy)
- core (xmpp): enabled `send` trigger and made it an asyncPoint

fix 375
2022-08-23 21:06:24 +02:00

80 lines
1.8 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:
...