Add missing aiofiles.tempfile classes (#7523)

Fixes: #6524

Co-authored-by: Andrej Shadura <andrew.shadura@collabora.co.uk>
Co-authored-by: AlexWaygood <alex.waygood@gmail.com>
This commit is contained in:
Andrej Shadura
2022-07-05 22:50:19 +01:00
committed by GitHub
parent db8f3c8f50
commit 043d9dac61
6 changed files with 324 additions and 0 deletions

View File

@@ -19,6 +19,8 @@
"stdlib/xml/dom/minidom.pyi",
"stdlib/xml/dom/pulldom.pyi",
"stdlib/xml/sax",
"stubs/aiofiles/aiofiles/tempfile/temptypes.pyi",
"stubs/aiofiles/aiofiles/threadpool/utils.pyi",
"stubs/aws-xray-sdk",
"stubs/babel",
"stubs/backports.ssl_match_hostname",

View File

@@ -49,3 +49,12 @@ aiofiles.ospath.getatime
aiofiles.ospath.getctime
aiofiles.ospath.samefile
aiofiles.ospath.sameopenfile
# Same issues as above
aiofiles.tempfile.temptypes.AsyncSpooledTemporaryFile.fileno
aiofiles.tempfile.temptypes.AsyncSpooledTemporaryFile.flush
aiofiles.tempfile.temptypes.AsyncSpooledTemporaryFile.isatty
aiofiles.tempfile.temptypes.AsyncSpooledTemporaryFile.newlines
aiofiles.tempfile.temptypes.AsyncSpooledTemporaryFile.rollover
aiofiles.tempfile.temptypes.AsyncSpooledTemporaryFile.tell
aiofiles.tempfile.temptypes.AsyncTemporaryDirectory.cleanup

View File

@@ -1 +1,2 @@
from . import tempfile as tempfile
from .threadpool import open as open

View File

@@ -0,0 +1,260 @@
from _typeshed import (
BytesPath,
Incomplete,
OpenBinaryMode,
OpenBinaryModeReading,
OpenBinaryModeUpdating,
OpenBinaryModeWriting,
OpenTextMode,
StrOrBytesPath,
StrPath,
)
from asyncio import AbstractEventLoop
from typing import AnyStr, TypeVar, overload
from typing_extensions import Literal
from ..base import AiofilesContextManager
from ..threadpool.binary import AsyncBufferedIOBase, AsyncBufferedReader, AsyncFileIO
from ..threadpool.text import AsyncTextIOWrapper
from .temptypes import AsyncTemporaryDirectory
_T_co = TypeVar("_T_co", covariant=True)
_V_co = TypeVar("_V_co", covariant=True)
_T_contra = TypeVar("_T_contra", contravariant=True)
# Text mode: always returns AsyncTextIOWrapper
@overload
def NamedTemporaryFile(
mode: OpenTextMode,
buffering: int = ...,
encoding: str | None = ...,
newline: str | None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: StrOrBytesPath | None = ...,
delete: bool = ...,
loop: AbstractEventLoop | None = ...,
executor: Incomplete | None = ...,
) -> AiofilesContextManager[None, None, AsyncTextIOWrapper]: ...
# Unbuffered binary: returns a FileIO
@overload
def NamedTemporaryFile(
mode: OpenBinaryMode,
buffering: Literal[0],
encoding: None = ...,
newline: None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: StrOrBytesPath | None = ...,
delete: bool = ...,
loop: AbstractEventLoop | None = ...,
executor: Incomplete | None = ...,
) -> AiofilesContextManager[None, None, AsyncFileIO]: ...
# Buffered binary reading/updating: AsyncBufferedReader
@overload
def NamedTemporaryFile(
mode: OpenBinaryModeReading | OpenBinaryModeUpdating = ...,
buffering: Literal[-1, 1] = ...,
encoding: None = ...,
newline: None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: StrOrBytesPath | None = ...,
delete: bool = ...,
loop: AbstractEventLoop | None = ...,
executor: Incomplete | None = ...,
) -> AiofilesContextManager[None, None, AsyncBufferedReader]: ...
# Buffered binary writing: AsyncBufferedIOBase
@overload
def NamedTemporaryFile(
mode: OpenBinaryModeWriting,
buffering: Literal[-1, 1] = ...,
encoding: None = ...,
newline: None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: StrOrBytesPath | None = ...,
delete: bool = ...,
loop: AbstractEventLoop | None = ...,
executor: Incomplete | None = ...,
) -> AiofilesContextManager[None, None, AsyncBufferedIOBase]: ...
# Text mode: always returns AsyncTextIOWrapper
@overload
def TemporaryFile(
mode: OpenTextMode,
buffering: int = ...,
encoding: str | None = ...,
newline: str | None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: StrOrBytesPath | None = ...,
loop: AbstractEventLoop | None = ...,
executor: Incomplete | None = ...,
) -> AiofilesContextManager[None, None, AsyncTextIOWrapper]: ...
# Unbuffered binary: returns a FileIO
@overload
def TemporaryFile(
mode: OpenBinaryMode,
buffering: Literal[0],
encoding: None = ...,
newline: None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: StrOrBytesPath | None = ...,
loop: AbstractEventLoop | None = ...,
executor: Incomplete | None = ...,
) -> AiofilesContextManager[None, None, AsyncFileIO]: ...
# Buffered binary reading/updating: AsyncBufferedReader
@overload
def TemporaryFile(
mode: OpenBinaryModeReading | OpenBinaryModeUpdating = ...,
buffering: Literal[-1, 1] = ...,
encoding: None = ...,
newline: None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: StrOrBytesPath | None = ...,
loop: AbstractEventLoop | None = ...,
executor: Incomplete | None = ...,
) -> AiofilesContextManager[None, None, AsyncBufferedReader]: ...
# Buffered binary writing: AsyncBufferedIOBase
@overload
def TemporaryFile(
mode: OpenBinaryModeWriting,
buffering: Literal[-1, 1] = ...,
encoding: None = ...,
newline: None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: StrOrBytesPath | None = ...,
loop: AbstractEventLoop | None = ...,
executor: Incomplete | None = ...,
) -> AiofilesContextManager[None, None, AsyncBufferedIOBase]: ...
# Text mode: always returns AsyncTextIOWrapper
@overload
def SpooledTemporaryFile(
max_size: int = ...,
*,
mode: OpenTextMode,
buffering: int = ...,
encoding: str | None = ...,
newline: str | None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: StrOrBytesPath | None = ...,
loop: AbstractEventLoop | None = ...,
executor: Incomplete | None = ...,
) -> AiofilesContextManager[None, None, AsyncTextIOWrapper]: ...
@overload
def SpooledTemporaryFile(
max_size: int,
mode: OpenTextMode,
buffering: int = ...,
encoding: str | None = ...,
newline: str | None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: StrOrBytesPath | None = ...,
loop: AbstractEventLoop | None = ...,
executor: Incomplete | None = ...,
) -> AiofilesContextManager[None, None, AsyncTextIOWrapper]: ...
# Unbuffered binary: returns a FileIO
@overload
def SpooledTemporaryFile(
max_size: int = ...,
mode: OpenBinaryMode = ...,
*,
buffering: Literal[0],
encoding: None = ...,
newline: None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: StrOrBytesPath | None = ...,
loop: AbstractEventLoop | None = ...,
executor: Incomplete | None = ...,
) -> AiofilesContextManager[None, None, AsyncFileIO]: ...
@overload
def SpooledTemporaryFile(
max_size: int,
mode: OpenBinaryMode,
buffering: Literal[0],
encoding: None = ...,
newline: None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: StrOrBytesPath | None = ...,
loop: AbstractEventLoop | None = ...,
executor: Incomplete | None = ...,
) -> AiofilesContextManager[None, None, AsyncFileIO]: ...
# Buffered binary reading/updating: AsyncBufferedReader
@overload
def SpooledTemporaryFile(
max_size: int = ...,
mode: OpenBinaryModeReading | OpenBinaryModeUpdating = ...,
buffering: Literal[-1, 1] = ...,
encoding: None = ...,
newline: None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: StrOrBytesPath | None = ...,
loop: AbstractEventLoop | None = ...,
executor: Incomplete | None = ...,
) -> AiofilesContextManager[None, None, AsyncBufferedReader]: ...
# Buffered binary writing: AsyncBufferedIOBase
@overload
def SpooledTemporaryFile(
max_size: int = ...,
*,
mode: OpenBinaryModeWriting,
buffering: Literal[-1, 1] = ...,
encoding: None = ...,
newline: None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: StrOrBytesPath | None = ...,
loop: AbstractEventLoop | None = ...,
executor: Incomplete | None = ...,
) -> AiofilesContextManager[None, None, AsyncBufferedIOBase]: ...
@overload
def SpooledTemporaryFile(
max_size: int,
mode: OpenBinaryModeWriting,
buffering: Literal[-1, 1] = ...,
encoding: None = ...,
newline: None = ...,
suffix: AnyStr | None = ...,
prefix: AnyStr | None = ...,
dir: StrOrBytesPath | None = ...,
loop: AbstractEventLoop | None = ...,
executor: Incomplete | None = ...,
) -> AiofilesContextManager[None, None, AsyncBufferedIOBase]: ...
@overload
def TemporaryDirectory(
suffix: str | None = ...,
prefix: str | None = ...,
dir: StrPath | None = ...,
loop: AbstractEventLoop | None = ...,
executor: Incomplete | None = ...,
) -> AiofilesContextManagerTempDir[None, None, AsyncTemporaryDirectory]: ...
@overload
def TemporaryDirectory(
suffix: bytes | None = ...,
prefix: bytes | None = ...,
dir: BytesPath | None = ...,
loop: AbstractEventLoop | None = ...,
executor: Incomplete | None = ...,
) -> AiofilesContextManagerTempDir[None, None, AsyncTemporaryDirectory]: ...
class AiofilesContextManagerTempDir(AiofilesContextManager[_T_co, _T_contra, _V_co]):
async def __aenter__(self) -> Incomplete: ...

View File

@@ -0,0 +1,46 @@
from _typeshed import Incomplete
from asyncio import AbstractEventLoop
from collections.abc import Generator
from types import coroutine as coroutine
from typing import TypeVar
from ..base import AsyncBase as AsyncBase
from ..threadpool.utils import (
cond_delegate_to_executor as cond_delegate_to_executor,
delegate_to_executor as delegate_to_executor,
proxy_property_directly as proxy_property_directly,
)
_T = TypeVar("_T")
class AsyncSpooledTemporaryFile(AsyncBase[_T]):
def fileno(self) -> Generator[Incomplete, Incomplete, Incomplete]: ...
def rollover(self) -> Generator[Incomplete, Incomplete, Incomplete]: ...
async def flush(self) -> None: ...
async def isatty(self) -> bool: ...
async def read(self, __n: int = ...): ...
async def readline(self, __limit: int | None = ...): ...
async def readlines(self, __hint: int = ...): ...
async def seek(self, offset: int, whence: int = ...) -> int: ...
async def tell(self) -> int: ...
async def truncate(self, size: int | None = ...) -> None: ...
@property
def closed(self): ...
@property
def encoding(self): ...
@property
def mode(self): ...
@property
def name(self): ...
async def newlines(self): ...
@property
def softspace(self): ...
async def write(self, s): ...
async def writelines(self, iterable): ...
class AsyncTemporaryDirectory:
async def cleanup(self) -> None: ...
@property
def name(self): ...
def __init__(self, file, loop: AbstractEventLoop | None, executor: Incomplete | None) -> None: ...
async def close(self) -> None: ...

View File

@@ -0,0 +1,6 @@
from types import coroutine as coroutine
def delegate_to_executor(*attrs): ...
def proxy_method_directly(*attrs): ...
def proxy_property_directly(*attrs): ...
def cond_delegate_to_executor(*attrs): ...