Replace IO with protocols (#7092)

This commit is contained in:
Sebastian Rittau
2022-01-31 10:39:56 +01:00
committed by GitHub
parent 064317a72e
commit cb3c1bb638
5 changed files with 49 additions and 30 deletions

View File

@@ -1,14 +1,16 @@
from collections.abc import Callable, Iterable, Iterator, Mapping, Sequence
from typing import IO, Any, Pattern, TypeVar, overload
from typing import Any, Pattern, TypeVar, overload
from . import resolver as resolver # Help mypy a bit; this is implied by loader and dumper
from .constructor import BaseConstructor
from .cyaml import *
from .dumper import *
from .emitter import _WriteStream
from .error import *
from .events import *
from .loader import *
from .nodes import *
from .reader import _ReadStream
from .representer import BaseRepresenter
from .resolver import BaseResolver
from .tokens import *
@@ -28,17 +30,17 @@ def scan(stream, Loader=...): ...
def parse(stream, Loader=...): ...
def compose(stream, Loader=...): ...
def compose_all(stream, Loader=...): ...
def load(stream: bytes | IO[bytes] | str | IO[str], Loader) -> Any: ...
def load_all(stream: bytes | IO[bytes] | str | IO[str], Loader) -> Iterator[Any]: ...
def full_load(stream: bytes | IO[bytes] | str | IO[str]) -> Any: ...
def full_load_all(stream: bytes | IO[bytes] | str | IO[str]) -> Iterator[Any]: ...
def safe_load(stream: bytes | IO[bytes] | str | IO[str]) -> Any: ...
def safe_load_all(stream: bytes | IO[bytes] | str | IO[str]) -> Iterator[Any]: ...
def unsafe_load(stream: bytes | IO[bytes] | str | IO[str]) -> Any: ...
def unsafe_load_all(stream: bytes | IO[bytes] | str | IO[str]) -> Iterator[Any]: ...
def load(stream: _ReadStream, Loader) -> Any: ...
def load_all(stream: _ReadStream, Loader) -> Iterator[Any]: ...
def full_load(stream: _ReadStream) -> Any: ...
def full_load_all(stream: _ReadStream) -> Iterator[Any]: ...
def safe_load(stream: _ReadStream) -> Any: ...
def safe_load_all(stream: _ReadStream) -> Iterator[Any]: ...
def unsafe_load(stream: _ReadStream) -> Any: ...
def unsafe_load_all(stream: _ReadStream) -> Iterator[Any]: ...
def emit(
events,
stream=...,
stream: _WriteStream[Any] | None = ...,
Dumper=...,
canonical: bool | None = ...,
indent: int | None = ...,
@@ -49,7 +51,7 @@ def emit(
@overload
def serialize_all(
nodes,
stream: IO[str],
stream: _WriteStream[Any],
Dumper=...,
canonical: bool | None = ...,
indent: int | None = ...,
@@ -81,7 +83,7 @@ def serialize_all(
@overload
def serialize(
node,
stream: IO[str],
stream: _WriteStream[Any],
Dumper=...,
*,
canonical: bool | None = ...,
@@ -115,7 +117,7 @@ def serialize(
@overload
def dump_all(
documents: Sequence[Any],
stream: IO[str],
stream: _WriteStream[Any],
Dumper=...,
default_style: str | None = ...,
default_flow_style: bool | None = ...,
@@ -153,7 +155,7 @@ def dump_all(
@overload
def dump(
data: Any,
stream: IO[str],
stream: _WriteStream[Any],
Dumper=...,
*,
default_style: str | None = ...,
@@ -193,7 +195,7 @@ def dump(
@overload
def safe_dump_all(
documents: Sequence[Any],
stream: IO[str],
stream: _WriteStream[Any],
*,
default_style: str | None = ...,
default_flow_style: bool | None = ...,
@@ -231,7 +233,7 @@ def safe_dump_all(
@overload
def safe_dump(
data: Any,
stream: IO[str],
stream: _WriteStream[Any],
*,
default_style: str | None = ...,
default_flow_style: bool | None = ...,

View File

@@ -1,15 +1,17 @@
from _typeshed import SupportsWrite
from collections.abc import Mapping
from typing import Any
from yaml.emitter import Emitter
from yaml.representer import BaseRepresenter, Representer, SafeRepresenter
from yaml.resolver import BaseResolver, Resolver
from yaml.serializer import Serializer
from .emitter import _WriteStream
class BaseDumper(Emitter, Serializer, BaseRepresenter, BaseResolver):
def __init__(
self,
stream: SupportsWrite[bytes | str],
stream: _WriteStream[Any],
default_style: str | None = ...,
default_flow_style: bool | None = ...,
canonical: bool | None = ...,
@@ -28,7 +30,7 @@ class BaseDumper(Emitter, Serializer, BaseRepresenter, BaseResolver):
class SafeDumper(Emitter, Serializer, SafeRepresenter, Resolver):
def __init__(
self,
stream: SupportsWrite[bytes | str],
stream: _WriteStream[Any],
default_style: str | None = ...,
default_flow_style: bool | None = ...,
canonical: bool | None = ...,
@@ -47,7 +49,7 @@ class SafeDumper(Emitter, Serializer, SafeRepresenter, Resolver):
class Dumper(Emitter, Serializer, Representer, Resolver):
def __init__(
self,
stream: SupportsWrite[bytes | str],
stream: _WriteStream[Any],
default_style: str | None = ...,
default_flow_style: bool | None = ...,
canonical: bool | None = ...,

View File

@@ -1,7 +1,15 @@
from typing import Any
from typing import Any, Protocol, TypeVar
from yaml.error import YAMLError
_T_contra = TypeVar("_T_contra", str, bytes, contravariant=True)
class _WriteStream(Protocol[_T_contra]):
def write(self, __data: _T_contra) -> object: ...
# Optional fields:
# encoding: str
# def flush(self) -> object: ...
class EmitterError(YAMLError): ...
class ScalarAnalysis:
@@ -19,7 +27,7 @@ class ScalarAnalysis:
class Emitter:
DEFAULT_TAG_PREFIXES: Any
stream: Any
stream: _WriteStream[Any]
encoding: Any
states: Any
state: Any
@@ -47,7 +55,9 @@ class Emitter:
prepared_tag: Any
analysis: Any
style: Any
def __init__(self, stream, canonical=..., indent=..., width=..., allow_unicode=..., line_break=...) -> None: ...
def __init__(
self, stream: _WriteStream[Any], canonical=..., indent=..., width=..., allow_unicode=..., line_break=...
) -> None: ...
def dispose(self): ...
def emit(self, event): ...
def need_more_events(self): ...

View File

@@ -5,17 +5,19 @@ from yaml.reader import Reader
from yaml.resolver import BaseResolver, Resolver
from yaml.scanner import Scanner
from .reader import _ReadStream
class BaseLoader(Reader, Scanner, Parser, Composer, BaseConstructor, BaseResolver):
def __init__(self, stream) -> None: ...
def __init__(self, stream: _ReadStream) -> None: ...
class FullLoader(Reader, Scanner, Parser, Composer, FullConstructor, Resolver):
def __init__(self, stream) -> None: ...
def __init__(self, stream: _ReadStream) -> None: ...
class SafeLoader(Reader, Scanner, Parser, Composer, SafeConstructor, Resolver):
def __init__(self, stream) -> None: ...
def __init__(self, stream: _ReadStream) -> None: ...
class Loader(Reader, Scanner, Parser, Composer, Constructor, Resolver):
def __init__(self, stream) -> None: ...
def __init__(self, stream: _ReadStream) -> None: ...
class UnsafeLoader(Reader, Scanner, Parser, Composer, Constructor, Resolver):
def __init__(self, stream) -> None: ...
def __init__(self, stream: _ReadStream) -> None: ...

View File

@@ -1,7 +1,10 @@
from _typeshed import SupportsRead
from typing import Any
from yaml.error import YAMLError
_ReadStream = str | bytes | SupportsRead[str] | SupportsRead[bytes]
class ReaderError(YAMLError):
name: Any
character: Any
@@ -12,7 +15,7 @@ class ReaderError(YAMLError):
class Reader:
name: Any
stream: Any
stream: SupportsRead[str] | SupportsRead[bytes] | None
stream_pointer: Any
eof: Any
buffer: Any
@@ -23,7 +26,7 @@ class Reader:
index: Any
line: Any
column: Any
def __init__(self, stream) -> None: ...
def __init__(self, stream: _ReadStream) -> None: ...
def peek(self, index=...): ...
def prefix(self, length=...): ...
def forward(self, length=...): ...