From 03a7ac59c9bd4d7ea353a1b94ad2a27dbe6a1ddf Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Tue, 25 Jan 2022 12:22:56 +0300 Subject: [PATCH] Use `@overload` for `sunau.open` (#7033) --- stdlib/sunau.pyi | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/stdlib/sunau.pyi b/stdlib/sunau.pyi index 8393136aa..f96dbaaf7 100644 --- a/stdlib/sunau.pyi +++ b/stdlib/sunau.pyi @@ -1,6 +1,7 @@ import sys from _typeshed import Self -from typing import IO, Any, NamedTuple, NoReturn, Union +from typing import IO, Any, NamedTuple, NoReturn, Union, overload +from typing_extensions import Literal _File = Union[str, IO[bytes]] @@ -72,7 +73,11 @@ class Au_write: def writeframes(self, data: bytes) -> None: ... def close(self) -> None: ... -# Returns a Au_read if mode is rb and Au_write if mode is wb +@overload +def open(f: _File, mode: Literal["r", "rb"]) -> Au_read: ... +@overload +def open(f: _File, mode: Literal["w", "wb"]) -> Au_write: ... +@overload def open(f: _File, mode: str | None = ...) -> Any: ... if sys.version_info < (3, 9):