Mercurial > libervia-backend
view stubs/twisted/words/xish/domish.pyi @ 3914:4cb38c8312a1
plugin XEP-0384, xml_tools: avoid `getItems` timeout + fix empty node crash + parsing:
- use `max_items` in `getItems` calls for bundles, as otherwise some pubsub service may
return full nodes, which may be huge is `max_items=1` is not set on the node, possibly
resulting in timeouts.
- the plugin was crashing when TWOMEMO devices list node has no items at all. This is not
the case anymore.
- a naive parsing method has been implemented in `xml_tools` to replace the
serialisation/deserialisation method. This should be more efficient and will avoid
annoying `ns0:` prefixes in XML logs.
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 24 Sep 2022 16:37:46 +0200 |
parents | 8289ac1b34f4 |
children |
line wrap: on
line source
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: ...