view stubs/twisted/words/xish/domish.pyi @ 4095:684ba556a617

core (memory/sqla_mapping): fix legacy pickled values: folloing packages refactoring, legacy pickled values could not be unpickled (due to use of old classes). This temporary workaround fix it, but the right thing to do will be to move from pickle to JSON at some point.
author Goffi <goffi@goffi.org>
date Mon, 12 Jun 2023 14:57:27 +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:
        ...