From 9c3978e33739cef4b5b617a226c24cb4e1ba575b Mon Sep 17 00:00:00 2001 From: Keith Gray Date: Sat, 24 Nov 2018 11:13:14 -0600 Subject: [PATCH] Added cyaml.pyi (#2613) Closes #1996 --- third_party/2and3/yaml/__init__.pyi | 3 +-- third_party/2and3/yaml/cyaml.pyi | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 third_party/2and3/yaml/cyaml.pyi diff --git a/third_party/2and3/yaml/__init__.pyi b/third_party/2and3/yaml/__init__.pyi index 68e26d97b..2362f6a56 100644 --- a/third_party/2and3/yaml/__init__.pyi +++ b/third_party/2and3/yaml/__init__.pyi @@ -6,8 +6,7 @@ from yaml.nodes import * # noqa: F403 from yaml.loader import * # noqa: F403 from yaml.dumper import * # noqa: F403 from . import resolver # Help mypy a bit; this is implied by loader and dumper -# TODO: stubs for cyaml? -# from cyaml import * +from .cyaml import * __with_libyaml__ = ... # type: Any diff --git a/third_party/2and3/yaml/cyaml.pyi b/third_party/2and3/yaml/cyaml.pyi new file mode 100644 index 000000000..ad2322d2d --- /dev/null +++ b/third_party/2and3/yaml/cyaml.pyi @@ -0,0 +1,20 @@ +from typing import Text, Union +from typing_extensions import Protocol + +from yaml.constructor import BaseConstructor, SafeConstructor +from yaml.resolver import BaseResolver, Resolver + +class _Readable(Protocol): + def read(self, size: int) -> Union[Text, bytes]: ... + +class CParser: + def __init__(self, stream: Union[str, bytes, _Readable]) -> None: ... + +class CBaseLoader(CParser, BaseConstructor, BaseResolver): + def __init__(self, stream: Union[str, bytes, _Readable]) -> None: ... + +class CLoader(CParser, SafeConstructor, Resolver): + def __init__(self, stream: Union[str, bytes, _Readable]) -> None: ... + +class CSafeLoader(CParser, SafeConstructor, Resolver): + def __init__(self, stream: Union[str, bytes, _Readable]) -> None: ...