1 from _typeshed import (
4 OpenBinaryModeUpdating,
9 from asyncio import AbstractEventLoop
10 from typing import Any, Callable, Union, overload
11 from typing_extensions import Literal
13 from ..base import AiofilesContextManager
14 from .binary import AsyncBufferedIOBase, AsyncBufferedReader, AsyncFileIO, _UnknownAsyncBinaryIO
15 from .text import AsyncTextIOWrapper
17 _OpenFile = Union[StrOrBytesPath, int]
18 _Opener = Callable[[str, int], int]
20 # Text mode: always returns AsyncTextIOWrapper
24 mode: OpenTextMode = ...,
26 encoding: str | None = ...,
27 errors: str | None = ...,
28 newline: str | None = ...,
30 opener: _Opener | None = ...,
32 loop: AbstractEventLoop | None = ...,
33 executor: Any | None = ...,
34 ) -> AiofilesContextManager[None, None, AsyncTextIOWrapper]: ...
36 # Unbuffered binary: returns a FileIO
41 buffering: Literal[0],
46 opener: _Opener | None = ...,
48 loop: AbstractEventLoop | None = ...,
49 executor: Any | None = ...,
50 ) -> AiofilesContextManager[None, None, AsyncFileIO]: ...
52 # Buffered binary reading/updating: AsyncBufferedReader
56 mode: OpenBinaryModeReading | OpenBinaryModeUpdating,
57 buffering: Literal[-1, 1] = ...,
62 opener: _Opener | None = ...,
64 loop: AbstractEventLoop | None = ...,
65 executor: Any | None = ...,
66 ) -> AiofilesContextManager[None, None, AsyncBufferedReader]: ...
68 # Buffered binary writing: AsyncBufferedIOBase
72 mode: OpenBinaryModeWriting,
73 buffering: Literal[-1, 1] = ...,
78 opener: _Opener | None = ...,
80 loop: AbstractEventLoop | None = ...,
81 executor: Any | None = ...,
82 ) -> AiofilesContextManager[None, None, AsyncBufferedIOBase]: ...
84 # Buffering cannot be determined: fall back to _UnknownAsyncBinaryIO
94 opener: _Opener | None = ...,
96 loop: AbstractEventLoop | None = ...,
97 executor: Any | None = ...,
98 ) -> AiofilesContextManager[None, None, _UnknownAsyncBinaryIO]: ...