view stubs/twisted/words/xish/domish.pyi @ 4094:c3b68fdc2de7

component AP gateway: fix handling of XMPP comments authors: the gateway was supposing that comments where emitted from PEP of author. While this is the case for most blog posts, it's not for comments. Instead the component is now using `author_jid` which is retrieved by XEP-0277 plugin, and reject the item if the auhor is not verified (i.e. if `publisher` attribute is not set by XMPP service).
author Goffi <goffi@goffi.org>
date Mon, 12 Jun 2023 14:50:43 +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:
        ...