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: ...