--- /dev/null
+# Stubs for sunau (Python 2 and 3)\r
+\r
+import sys\r
+from typing import Any, NamedTuple, NoReturn, Optional, Text, IO, Union, Tuple\r
+\r
+_File = Union[Text, IO[bytes]]\r
+\r
+class Error(Exception): ...\r
+\r
+AUDIO_FILE_MAGIC = ... # type: int\r
+AUDIO_FILE_ENCODING_MULAW_8 = ... # type: int\r
+AUDIO_FILE_ENCODING_LINEAR_8 = ... # type: int\r
+AUDIO_FILE_ENCODING_LINEAR_16 = ... # type: int\r
+AUDIO_FILE_ENCODING_LINEAR_24 = ... # type: int\r
+AUDIO_FILE_ENCODING_LINEAR_32 = ... # type: int\r
+AUDIO_FILE_ENCODING_FLOAT = ... # type: int\r
+AUDIO_FILE_ENCODING_DOUBLE = ... # type: int\r
+AUDIO_FILE_ENCODING_ADPCM_G721 = ... # type: int\r
+AUDIO_FILE_ENCODING_ADPCM_G722 = ... # type: int\r
+AUDIO_FILE_ENCODING_ADPCM_G723_3 = ... # type: int\r
+AUDIO_FILE_ENCODING_ADPCM_G723_5 = ... # type: int\r
+AUDIO_FILE_ENCODING_ALAW_8 = ... # type: int\r
+AUDIO_UNKNOWN_SIZE = ... # type: int\r
+\r
+if sys.version_info < (3, 0):\r
+ _sunau_params = Tuple[int, int, int, int, str, str]\r
+else:\r
+ _sunau_params = NamedTuple('_sunau_params', [\r
+ ('nchannels', int),\r
+ ('sampwidth', int),\r
+ ('framerate', int),\r
+ ('nframes', int),\r
+ ('comptype', str),\r
+ ('compname', str),\r
+ ])\r
+\r
+class Au_read:\r
+ def __init__(self, f: _File) -> None: ...\r
+ if sys.version_info >= (3, 3):\r
+ def __enter__(self) -> Au_read: ...\r
+ def __exit__(self, *args: Any) -> None: ...\r
+ def getfp(self) -> Optional[IO[bytes]]: ...\r
+ def rewind(self) -> None: ...\r
+ def close(self) -> None: ...\r
+ def tell(self) -> int: ...\r
+ def getnchannels(self) -> int: ...\r
+ def getnframes(self) -> int: ...\r
+ def getsampwidth(self) -> int: ...\r
+ def getframerate(self) -> int: ...\r
+ def getcomptype(self) -> str: ...\r
+ def getcompname(self) -> str: ...\r
+ def getparams(self) -> _sunau_params: ...\r
+ def getmarkers(self) -> None: ...\r
+ def getmark(self, id: Any) -> NoReturn: ...\r
+ def setpos(self, pos: int) -> None: ...\r
+ def readframes(self, nframes: int) -> Optional[bytes]: ...\r
+\r
+class Au_write:\r
+ def __init__(self, f: _File) -> None: ...\r
+ if sys.version_info >= (3, 3):\r
+ def __enter__(self) -> Au_write: ...\r
+ def __exit__(self, *args: Any) -> None: ...\r
+ def setnchannels(self, nchannels: int) -> None: ...\r
+ def getnchannels(self) -> int: ...\r
+ def setsampwidth(self, sampwidth: int) -> None: ...\r
+ def getsampwidth(self) -> int: ...\r
+ def setframerate(self, framerate: float) -> None: ...\r
+ def getframerate(self) -> int: ...\r
+ def setnframes(self, nframes: int) -> None: ...\r
+ def getnframes(self) -> int: ...\r
+ def setcomptype(self, comptype: str, compname: str) -> None: ...\r
+ def getcomptype(self) -> str: ...\r
+ def getcompname(self) -> str: ...\r
+ def setparams(self, params: _sunau_params) -> None: ...\r
+ def getparams(self) -> _sunau_params: ...\r
+ def setmark(self, id: Any, pos: Any, name: Any) -> NoReturn: ...\r
+ def getmark(self, id: Any) -> NoReturn: ...\r
+ def getmarkers(self) -> None: ...\r
+ def tell(self) -> int: ...\r
+ # should be any bytes-like object after 3.4, but we don't have a type for that\r
+ def writeframesraw(self, data: bytes) -> None: ...\r
+ def writeframes(self, data: bytes) -> None: ...\r
+ def close(self) -> None: ...\r
+\r
+# Returns a Au_read if mode is rb and Au_write if mode is wb\r
+def open(f: _File, mode: Optional[str] = ...) -> Any: ...\r
+openfp = open\r