mirror of
https://github.com/davidhalter/typeshed.git
synced 2026-05-06 21:43:59 +08:00
Add @disjoint_base decorator in the stdlib (#14599)
And fix some other new stubtest finds.
This commit is contained in:
@@ -3,7 +3,7 @@ from _collections_abc import dict_keys
|
||||
from _typeshed import FileDescriptorOrPath, ReadableBuffer, SupportsRead, SupportsWrite
|
||||
from collections.abc import Callable, Generator, ItemsView, Iterable, Iterator, Mapping, Sequence
|
||||
from typing import Any, Final, Generic, Literal, Protocol, SupportsIndex, TypeVar, overload, type_check_only
|
||||
from typing_extensions import TypeAlias, TypeGuard, deprecated
|
||||
from typing_extensions import TypeAlias, TypeGuard, deprecated, disjoint_base
|
||||
from xml.parsers.expat import XMLParserType
|
||||
|
||||
__all__ = [
|
||||
@@ -84,6 +84,7 @@ _ElementCallable: TypeAlias = Callable[..., Element[_ElementCallable]]
|
||||
_Tag = TypeVar("_Tag", default=str, bound=str | _ElementCallable)
|
||||
_OtherTag = TypeVar("_OtherTag", default=str, bound=str | _ElementCallable)
|
||||
|
||||
@disjoint_base
|
||||
class Element(Generic[_Tag]):
|
||||
tag: _Tag
|
||||
attrib: dict[str, str]
|
||||
@@ -286,6 +287,7 @@ def fromstringlist(sequence: Sequence[str | ReadableBuffer], parser: XMLParser |
|
||||
# elementfactories.
|
||||
_ElementFactory: TypeAlias = Callable[[Any, dict[Any, Any]], Element]
|
||||
|
||||
@disjoint_base
|
||||
class TreeBuilder:
|
||||
# comment_factory can take None because passing None to Comment is not an error
|
||||
def __init__(
|
||||
@@ -351,6 +353,7 @@ _E = TypeVar("_E", default=Element)
|
||||
# The default target is TreeBuilder, which returns Element.
|
||||
# C14NWriterTarget does not implement a close method, so using it results
|
||||
# in a type of XMLParser[None].
|
||||
@disjoint_base
|
||||
class XMLParser(Generic[_E]):
|
||||
parser: XMLParserType
|
||||
target: _Target
|
||||
|
||||
Reference in New Issue
Block a user