diff --git a/third_party/3/aiofiles/base.pyi b/third_party/3/aiofiles/base.pyi index 13c76ed7e7e1..0f5f99a2e467 100644 --- a/third_party/3/aiofiles/base.pyi +++ b/third_party/3/aiofiles/base.pyi @@ -12,10 +12,10 @@ class AsyncBase(Generic[_T]): async def __anext__(self) -> _T: ... class AiofilesContextManager(Generic[_T_co, _T_contra, _V_co]): - def __init__(self, __coro: Coroutine[_T_co, _T_contra, _V_co]) -> None: ... - def send(self, __value: _T_contra) -> _T_co: ... + def __init__(self, coro: Coroutine[_T_co, _T_contra, _V_co]) -> None: ... + def send(self, value: _T_contra) -> _T_co: ... def throw( - self, __typ: Type[BaseException], __val: Union[BaseException, object] = ..., tb: Optional[TracebackType] = ... + self, typ: Type[BaseException], val: Union[BaseException, object] = ..., tb: Optional[TracebackType] = ... ) -> _T_co: ... def close(self) -> None: ... @property diff --git a/third_party/3/aiofiles/_os.pyi b/third_party/3/aiofiles/os.pyi similarity index 100% rename from third_party/3/aiofiles/_os.pyi rename to third_party/3/aiofiles/os.pyi diff --git a/third_party/3/aiofiles/threadpool/__init__.pyi b/third_party/3/aiofiles/threadpool/__init__.pyi index 840f9ce48cd2..bde6ad8a36ce 100644 --- a/third_party/3/aiofiles/threadpool/__init__.pyi +++ b/third_party/3/aiofiles/threadpool/__init__.pyi @@ -1,13 +1,16 @@ from _typeshed import AnyPath, OpenBinaryMode, OpenBinaryModeReading, OpenBinaryModeUpdating, OpenBinaryModeWriting, OpenTextMode -from typing import Any, Callable, Optional, Union, overload +from asyncio import AbstractEventLoop +from typing import Any, Callable, Optional, TypeVar, Union, overload from typing_extensions import Literal -from ..base import AiofilesContextManager, AsyncBase -from .binary import AsyncBufferedIOBase, AsyncBufferedReader, AsyncFileIO +from ..base import AiofilesContextManager +from .binary import AsyncBufferedIOBase, AsyncBufferedReader, AsyncFileIO, _UnknownAsyncBinaryIO from .text import AsyncTextIOWrapper -_OpenFile = Union[AnyPath, int] +_OpenFile = TypeVar("_OpenFile", bound=Union[AnyPath, int]) _Opener = Callable[[str, int], int] + +# Text mode: always returns AsyncTextIOWrapper @overload def open( file: _OpenFile, @@ -19,9 +22,11 @@ def open( closefd: bool = ..., opener: Optional[_Opener] = ..., *, - loop: Optional[Any] = ..., + loop: Optional[AbstractEventLoop] = ..., executor: Optional[Any] = ..., ) -> AiofilesContextManager[None, None, AsyncTextIOWrapper]: ... + +# Unbuffered binary: returns a FileIO @overload def open( file: _OpenFile, @@ -33,13 +38,15 @@ def open( closefd: bool = ..., opener: Optional[_Opener] = ..., *, - loop: Optional[Any] = ..., + loop: Optional[AbstractEventLoop] = ..., executor: Optional[Any] = ..., ) -> AiofilesContextManager[None, None, AsyncFileIO]: ... + +# Buffered binary reading/updating: AsyncBufferedReader @overload def open( file: _OpenFile, - mode: OpenBinaryModeWriting, + mode: Union[OpenBinaryModeReading, OpenBinaryModeUpdating], buffering: Literal[-1, 1] = ..., encoding: None = ..., errors: None = ..., @@ -47,13 +54,15 @@ def open( closefd: bool = ..., opener: Optional[_Opener] = ..., *, - loop: Optional[Any] = ..., + loop: Optional[AbstractEventLoop] = ..., executor: Optional[Any] = ..., -) -> AiofilesContextManager[None, None, AsyncBufferedIOBase]: ... +) -> AiofilesContextManager[None, None, AsyncBufferedReader]: ... + +# Buffered binary writing: AsyncBufferedIOBase @overload def open( file: _OpenFile, - mode: Union[OpenBinaryModeReading, OpenBinaryModeUpdating], + mode: OpenBinaryModeWriting, buffering: Literal[-1, 1] = ..., encoding: None = ..., errors: None = ..., @@ -61,9 +70,11 @@ def open( closefd: bool = ..., opener: Optional[_Opener] = ..., *, - loop: Optional[Any] = ..., + loop: Optional[AbstractEventLoop] = ..., executor: Optional[Any] = ..., -) -> AiofilesContextManager[None, None, AsyncBufferedReader]: ... +) -> AiofilesContextManager[None, None, AsyncBufferedIOBase]: ... + +# Buffering cannot be determined: fall back to _UnknownAsyncBinaryIO @overload def open( file: _OpenFile, @@ -75,6 +86,6 @@ def open( closefd: bool = ..., opener: Optional[_Opener] = ..., *, - loop: Optional[Any] = ..., + loop: Optional[AbstractEventLoop] = ..., executor: Optional[Any] = ..., -) -> AiofilesContextManager[None, None, AsyncBase[bytes]]: ... +) -> AiofilesContextManager[None, None, _UnknownAsyncBinaryIO]: ... diff --git a/third_party/3/aiofiles/threadpool/binary.pyi b/third_party/3/aiofiles/threadpool/binary.pyi index 5c51c064acbf..ecfd4ed12f8c 100644 --- a/third_party/3/aiofiles/threadpool/binary.pyi +++ b/third_party/3/aiofiles/threadpool/binary.pyi @@ -1,5 +1,41 @@ +from _typeshed import AnyPath, ReadableBuffer, WriteableBuffer +from io import FileIO +from typing import Iterable, List, Optional, Union + from ..base import AsyncBase -class AsyncBufferedIOBase(AsyncBase[bytes]): ... -class AsyncBufferedReader(AsyncBufferedIOBase): ... -class AsyncFileIO(AsyncBase[bytes]): ... +class _UnknownAsyncBinaryIO(AsyncBase[bytes]): + async def close(self) -> None: ... + async def flush(self) -> None: ... + async def isatty(self) -> bool: ... + async def read(self, __size: int = ...) -> bytes: ... + async def readinto(self, __buffer: WriteableBuffer) -> Optional[int]: ... + async def readline(self, __size: Optional[int] = ...) -> bytes: ... + async def readlines(self, __hint: int = ...) -> List[bytes]: ... + async def seek(self, __offset: int, __whence: int = ...) -> int: ... + async def seekable(self) -> bool: ... + async def tell(self) -> int: ... + async def truncate(self, __size: Optional[int] = ...) -> int: ... + async def writable(self) -> bool: ... + async def write(self, __b: ReadableBuffer) -> int: ... + async def writelines(self, __lines: Iterable[ReadableBuffer]) -> None: ... + def fileno(self) -> int: ... + def readable(self) -> bool: ... + @property + def closed(self) -> bool: ... + @property + def mode(self) -> str: ... + @property + def name(self) -> Union[AnyPath, int]: ... + +class AsyncBufferedIOBase(_UnknownAsyncBinaryIO): + async def read1(self, __size: int = ...) -> bytes: ... + def detach(self) -> FileIO: ... + @property + def raw(self) -> FileIO: ... + +class AsyncBufferedReader(AsyncBufferedIOBase): + async def peek(self, __size: int = ...) -> bytes: ... + +class AsyncFileIO(_UnknownAsyncBinaryIO): + async def readall(self) -> bytes: ... diff --git a/third_party/3/aiofiles/threadpool/text.pyi b/third_party/3/aiofiles/threadpool/text.pyi index 7662768f34e0..39588f8a3695 100644 --- a/third_party/3/aiofiles/threadpool/text.pyi +++ b/third_party/3/aiofiles/threadpool/text.pyi @@ -1,3 +1,38 @@ +from _typeshed import AnyPath +from typing import BinaryIO, Iterable, List, Optional, Tuple, Union + from ..base import AsyncBase -class AsyncTextIOWrapper(AsyncBase[str]): ... +class AsyncTextIOWrapper(AsyncBase[str]): + async def close(self) -> None: ... + async def flush(self) -> None: ... + async def isatty(self) -> bool: ... + async def read(self, __size: Optional[int] = ...) -> str: ... + async def readline(self, __size: int = ...) -> str: ... + async def readlines(self, __hint: int = ...) -> List[str]: ... + async def seek(self, __offset: int, __whence: int = ...) -> int: ... + async def seekable(self) -> bool: ... + async def tell(self) -> int: ... + async def truncate(self, __size: Optional[int] = ...) -> int: ... + async def writable(self) -> bool: ... + async def write(self, __b: str) -> int: ... + async def writelines(self, __lines: Iterable[str]) -> None: ... + def detach(self) -> BinaryIO: ... + def fileno(self) -> int: ... + def readable(self) -> bool: ... + @property + def buffer(self) -> BinaryIO: ... + @property + def closed(self) -> bool: ... + @property + def encoding(self) -> str: ... + @property + def errors(self) -> Optional[str]: ... + @property + def line_buffering(self) -> bool: ... + @property + def newlines(self) -> Union[str, Tuple[str, ...], None]: ... + @property + def name(self) -> Union[AnyPath, int]: ... + @property + def mode(self) -> str: ...