diff stubs/twisted/words/xish/domish.pyi @ 3911:8289ac1b34f4

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
author Syndace <me@syndace.dev>
date Tue, 23 Aug 2022 21:06:24 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stubs/twisted/words/xish/domish.pyi	Tue Aug 23 21:06:24 2022 +0200
@@ -0,0 +1,80 @@
+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:
+        ...