mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-07 20:54:28 +08:00
33 lines
1.2 KiB
Python
33 lines
1.2 KiB
Python
from collections.abc import Callable, Iterable
|
|
from sys import _OptExcInfo
|
|
from typing import Any, Protocol
|
|
from typing_extensions import TypeAlias
|
|
|
|
__all__ = ["StartResponse", "WSGIEnvironment", "WSGIApplication", "InputStream", "ErrorStream", "FileWrapper"]
|
|
|
|
class StartResponse(Protocol):
|
|
def __call__(
|
|
self, __status: str, __headers: list[tuple[str, str]], __exc_info: _OptExcInfo | None = ...
|
|
) -> Callable[[bytes], object]: ...
|
|
|
|
WSGIEnvironment: TypeAlias = dict[str, Any]
|
|
WSGIApplication: TypeAlias = Callable[[WSGIEnvironment, StartResponse], Iterable[bytes]]
|
|
|
|
class InputStream(Protocol):
|
|
def read(self, __size: int = ...) -> bytes: ...
|
|
def readline(self, __size: int = ...) -> bytes: ...
|
|
def readlines(self, __hint: int = ...) -> list[bytes]: ...
|
|
def __iter__(self) -> Iterable[bytes]: ...
|
|
|
|
class ErrorStream(Protocol):
|
|
def flush(self) -> object: ...
|
|
def write(self, __s: str) -> object: ...
|
|
def writelines(self, __seq: list[str]) -> object: ...
|
|
|
|
class _Readable(Protocol):
|
|
def read(self, __size: int = ...) -> bytes: ...
|
|
# Optional: def close(self) -> object: ...
|
|
|
|
class FileWrapper(Protocol):
|
|
def __call__(self, __file: _Readable, __block_size: int = ...) -> Iterable[bytes]: ...
|