xml: use SupportsRead/SupportsWrite instead of IO (#7241)

This commit is contained in:
Rogdham
2022-02-17 04:02:30 +01:00
committed by GitHub
parent 1091521f60
commit 63c20e3ce7
4 changed files with 32 additions and 20 deletions

View File

@@ -1,11 +1,11 @@
import sys
import xml.dom
from _typeshed import Self
from typing import IO, Any
from _typeshed import Self, SupportsRead
from typing import Any
from xml.dom.xmlbuilder import DocumentLS, DOMImplementationLS
from xml.sax.xmlreader import XMLReader
def parse(file: str | IO[Any], parser: XMLReader | None = ..., bufsize: int | None = ...): ...
def parse(file: str | SupportsRead[bytes] | SupportsRead[str], parser: XMLReader | None = ..., bufsize: int | None = ...): ...
def parseString(string: str | bytes, parser: XMLReader | None = ...): ...
def getDOMImplementation(features=...) -> DOMImplementation | None: ...

View File

@@ -1,5 +1,6 @@
import sys
from typing import IO, Any, Sequence, Union
from _typeshed import SupportsRead
from typing import Any, Sequence, Union
from typing_extensions import Literal
from xml.dom.minidom import Document, DOMImplementation, Element, Text
from xml.sax.handler import ContentHandler
@@ -62,10 +63,10 @@ class ErrorHandler:
def fatalError(self, exception) -> None: ...
class DOMEventStream:
stream: IO[bytes]
stream: SupportsRead[bytes] | SupportsRead[str]
parser: XMLReader
bufsize: int
def __init__(self, stream: IO[bytes], parser: XMLReader, bufsize: int) -> None: ...
def __init__(self, stream: SupportsRead[bytes] | SupportsRead[str], parser: XMLReader, bufsize: int) -> None: ...
pulldom: Any
if sys.version_info < (3, 11):
def __getitem__(self, pos): ...
@@ -86,5 +87,7 @@ class SAX2DOM(PullDOM):
default_bufsize: int
def parse(stream_or_string: str | IO[bytes], parser: XMLReader | None = ..., bufsize: int | None = ...) -> DOMEventStream: ...
def parse(
stream_or_string: str | SupportsRead[bytes] | SupportsRead[str], parser: XMLReader | None = ..., bufsize: int | None = ...
) -> DOMEventStream: ...
def parseString(string: str, parser: XMLReader | None = ...) -> DOMEventStream: ...

View File

@@ -1,7 +1,6 @@
import sys
from _typeshed import FileDescriptor, StrOrBytesPath, SupportsWrite
from _typeshed import FileDescriptor, StrOrBytesPath, SupportsRead, SupportsWrite
from typing import (
IO,
Any,
Callable,
Generator,
@@ -19,7 +18,9 @@ from typing import (
from typing_extensions import Literal, SupportsIndex, TypeGuard
_T = TypeVar("_T")
_File = Union[StrOrBytesPath, FileDescriptor, IO[Any]]
_FileRead = Union[StrOrBytesPath, FileDescriptor, SupportsRead[bytes], SupportsRead[str]]
_FileWriteC14N = Union[StrOrBytesPath, FileDescriptor, SupportsWrite[bytes]]
_FileWrite = Union[_FileWriteC14N, SupportsWrite[str]]
VERSION: str
@@ -36,7 +37,7 @@ if sys.version_info >= (3, 8):
xml_data: str | bytes | None = ...,
*,
out: None = ...,
from_file: _File | None = ...,
from_file: _FileRead | None = ...,
with_comments: bool = ...,
strip_text: bool = ...,
rewrite_prefixes: bool = ...,
@@ -50,7 +51,7 @@ if sys.version_info >= (3, 8):
xml_data: str | bytes | None = ...,
*,
out: SupportsWrite[str],
from_file: _File | None = ...,
from_file: _FileRead | None = ...,
with_comments: bool = ...,
strip_text: bool = ...,
rewrite_prefixes: bool = ...,
@@ -121,9 +122,9 @@ class QName:
def __eq__(self, other: object) -> bool: ...
class ElementTree:
def __init__(self, element: Element | None = ..., file: _File | None = ...) -> None: ...
def __init__(self, element: Element | None = ..., file: _FileRead | None = ...) -> None: ...
def getroot(self) -> Element: ...
def parse(self, source: _File, parser: XMLParser | None = ...) -> Element: ...
def parse(self, source: _FileRead, parser: XMLParser | None = ...) -> Element: ...
def iter(self, tag: str | None = ...) -> Generator[Element, None, None]: ...
if sys.version_info < (3, 9):
def getiterator(self, tag: str | None = ...) -> list[Element]: ...
@@ -137,7 +138,7 @@ class ElementTree:
def iterfind(self, path: str, namespaces: dict[str, str] | None = ...) -> Generator[Element, None, None]: ...
def write(
self,
file_or_filename: _File,
file_or_filename: _FileWrite,
encoding: str | None = ...,
xml_declaration: bool | None = ...,
default_namespace: str | None = ...,
@@ -145,7 +146,7 @@ class ElementTree:
*,
short_empty_elements: bool = ...,
) -> None: ...
def write_c14n(self, file: _File) -> None: ...
def write_c14n(self, file: _FileWriteC14N) -> None: ...
def register_namespace(prefix: str, uri: str) -> None: ...
@@ -240,8 +241,10 @@ def dump(elem: Element) -> None: ...
if sys.version_info >= (3, 9):
def indent(tree: Element | ElementTree, space: str = ..., level: int = ...) -> None: ...
def parse(source: _File, parser: XMLParser | None = ...) -> ElementTree: ...
def iterparse(source: _File, events: Sequence[str] | None = ..., parser: XMLParser | None = ...) -> Iterator[tuple[str, Any]]: ...
def parse(source: _FileRead, parser: XMLParser | None = ...) -> ElementTree: ...
def iterparse(
source: _FileRead, events: Sequence[str] | None = ..., parser: XMLParser | None = ...
) -> Iterator[tuple[str, Any]]: ...
class XMLPullParser:
def __init__(self, events: Sequence[str] | None = ..., *, _parser: XMLParser | None = ...) -> None: ...

View File

@@ -1,8 +1,12 @@
import sys
from typing import IO, Any, Iterable, NoReturn
from _typeshed import SupportsRead, _T_co
from typing import Any, Iterable, NoReturn, Protocol
from xml.sax.handler import ContentHandler, ErrorHandler
from xml.sax.xmlreader import Locator, XMLReader
class _SupportsReadClose(SupportsRead[_T_co], Protocol[_T_co]):
def close(self) -> None: ...
class SAXException(Exception):
def __init__(self, msg: str, exception: Exception | None = ...) -> None: ...
def getMessage(self) -> str: ...
@@ -28,6 +32,8 @@ if sys.version_info >= (3, 8):
else:
def make_parser(parser_list: list[str] = ...) -> XMLReader: ...
def parse(source: str | IO[str] | IO[bytes], handler: ContentHandler, errorHandler: ErrorHandler = ...) -> None: ...
def parse(
source: str | _SupportsReadClose[bytes] | _SupportsReadClose[str], handler: ContentHandler, errorHandler: ErrorHandler = ...
) -> None: ...
def parseString(string: bytes | str, handler: ContentHandler, errorHandler: ErrorHandler | None = ...) -> None: ...
def _create_parser(parser_name: str) -> XMLReader: ...