From b0786cdb5fd3a3135641226db25e4182ab17cd7a Mon Sep 17 00:00:00 2001 From: hauntsaninja <> Date: Mon, 18 Jan 2021 00:13:47 -0800 Subject: [PATCH 1/4] ossaudiodev --- stdlib/3/ossaudiodev.pyi | 129 ++++++++++++++++++++++++++++ tests/stubtest_whitelists/win32.txt | 1 + 2 files changed, 130 insertions(+) create mode 100644 stdlib/3/ossaudiodev.pyi diff --git a/stdlib/3/ossaudiodev.pyi b/stdlib/3/ossaudiodev.pyi new file mode 100644 index 000000000000..69cb6471152d --- /dev/null +++ b/stdlib/3/ossaudiodev.pyi @@ -0,0 +1,129 @@ +from typing import Any, List, overload + +AFMT_AC3: int +AFMT_A_LAW: int +AFMT_IMA_ADPCM: int +AFMT_MPEG: int +AFMT_MU_LAW: int +AFMT_QUERY: int +AFMT_S16_BE: int +AFMT_S16_LE: int +AFMT_S16_NE: int +AFMT_S8: int +AFMT_U16_BE: int +AFMT_U16_LE: int +AFMT_U8: int +SNDCTL_COPR_HALT: int +SNDCTL_COPR_LOAD: int +SNDCTL_COPR_RCODE: int +SNDCTL_COPR_RCVMSG: int +SNDCTL_COPR_RDATA: int +SNDCTL_COPR_RESET: int +SNDCTL_COPR_RUN: int +SNDCTL_COPR_SENDMSG: int +SNDCTL_COPR_WCODE: int +SNDCTL_COPR_WDATA: int +SNDCTL_DSP_BIND_CHANNEL: int +SNDCTL_DSP_CHANNELS: int +SNDCTL_DSP_GETBLKSIZE: int +SNDCTL_DSP_GETCAPS: int +SNDCTL_DSP_GETCHANNELMASK: int +SNDCTL_DSP_GETFMTS: int +SNDCTL_DSP_GETIPTR: int +SNDCTL_DSP_GETISPACE: int +SNDCTL_DSP_GETODELAY: int +SNDCTL_DSP_GETOPTR: int +SNDCTL_DSP_GETOSPACE: int +SNDCTL_DSP_GETSPDIF: int +SNDCTL_DSP_GETTRIGGER: int +SNDCTL_DSP_MAPINBUF: int +SNDCTL_DSP_MAPOUTBUF: int +SNDCTL_DSP_NONBLOCK: int +SNDCTL_DSP_POST: int +SNDCTL_DSP_PROFILE: int +SNDCTL_DSP_RESET: int +SNDCTL_DSP_SAMPLESIZE: int +SNDCTL_DSP_SETDUPLEX: int +SNDCTL_DSP_SETFMT: int +SNDCTL_DSP_SETFRAGMENT: int +SNDCTL_DSP_SETSPDIF: int +SNDCTL_DSP_SETSYNCRO: int +SNDCTL_DSP_SETTRIGGER: int +SNDCTL_DSP_SPEED: int +SNDCTL_DSP_STEREO: int +SNDCTL_DSP_SUBDIVIDE: int +SNDCTL_DSP_SYNC: int +SNDCTL_FM_4OP_ENABLE: int +SNDCTL_FM_LOAD_INSTR: int +SNDCTL_MIDI_INFO: int +SNDCTL_MIDI_MPUCMD: int +SNDCTL_MIDI_MPUMODE: int +SNDCTL_MIDI_PRETIME: int +SNDCTL_SEQ_CTRLRATE: int +SNDCTL_SEQ_GETINCOUNT: int +SNDCTL_SEQ_GETOUTCOUNT: int +SNDCTL_SEQ_GETTIME: int +SNDCTL_SEQ_NRMIDIS: int +SNDCTL_SEQ_NRSYNTHS: int +SNDCTL_SEQ_OUTOFBAND: int +SNDCTL_SEQ_PANIC: int +SNDCTL_SEQ_PERCMODE: int +SNDCTL_SEQ_RESET: int +SNDCTL_SEQ_RESETSAMPLES: int +SNDCTL_SEQ_SYNC: int +SNDCTL_SEQ_TESTMIDI: int +SNDCTL_SEQ_THRESHOLD: int +SNDCTL_SYNTH_CONTROL: int +SNDCTL_SYNTH_ID: int +SNDCTL_SYNTH_INFO: int +SNDCTL_SYNTH_MEMAVL: int +SNDCTL_SYNTH_REMOVESAMPLE: int +SNDCTL_TMR_CONTINUE: int +SNDCTL_TMR_METRONOME: int +SNDCTL_TMR_SELECT: int +SNDCTL_TMR_SOURCE: int +SNDCTL_TMR_START: int +SNDCTL_TMR_STOP: int +SNDCTL_TMR_TEMPO: int +SNDCTL_TMR_TIMEBASE: int +SOUND_MIXER_ALTPCM: int +SOUND_MIXER_BASS: int +SOUND_MIXER_CD: int +SOUND_MIXER_DIGITAL1: int +SOUND_MIXER_DIGITAL2: int +SOUND_MIXER_DIGITAL3: int +SOUND_MIXER_IGAIN: int +SOUND_MIXER_IMIX: int +SOUND_MIXER_LINE: int +SOUND_MIXER_LINE1: int +SOUND_MIXER_LINE2: int +SOUND_MIXER_LINE3: int +SOUND_MIXER_MIC: int +SOUND_MIXER_MONITOR: int +SOUND_MIXER_NRDEVICES: int +SOUND_MIXER_OGAIN: int +SOUND_MIXER_PCM: int +SOUND_MIXER_PHONEIN: int +SOUND_MIXER_PHONEOUT: int +SOUND_MIXER_RADIO: int +SOUND_MIXER_RECLEV: int +SOUND_MIXER_SPEAKER: int +SOUND_MIXER_SYNTH: int +SOUND_MIXER_TREBLE: int +SOUND_MIXER_VIDEO: int +SOUND_MIXER_VOLUME: int + +control_labels: List[str] +control_names: List[str] + +# TODO: oss_audio_device return type +@overload +def open(mode: str) -> Any: ... +@overload +def open(device: str, mode: str) -> Any: ... + +# TODO: oss_mixer_device return type +def openmixer(device: str = ...) -> Any: ... + +class OSSAudioError(Exception): ... +class error(Exception): ... diff --git a/tests/stubtest_whitelists/win32.txt b/tests/stubtest_whitelists/win32.txt index c61df1aa449d..6862d0f2e533 100644 --- a/tests/stubtest_whitelists/win32.txt +++ b/tests/stubtest_whitelists/win32.txt @@ -21,6 +21,7 @@ dbm.ndbm fcntl grp nis +ossaudiodev posix pwd readline From 20fa6a2412d0ec30e35a5c750cabb3c58f8a67c4 Mon Sep 17 00:00:00 2001 From: hauntsaninja <> Date: Mon, 18 Jan 2021 11:00:24 -0800 Subject: [PATCH 2/4] alias error --- stdlib/3/ossaudiodev.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/3/ossaudiodev.pyi b/stdlib/3/ossaudiodev.pyi index 69cb6471152d..e0e0a63a3d0c 100644 --- a/stdlib/3/ossaudiodev.pyi +++ b/stdlib/3/ossaudiodev.pyi @@ -126,4 +126,4 @@ def open(device: str, mode: str) -> Any: ... def openmixer(device: str = ...) -> Any: ... class OSSAudioError(Exception): ... -class error(Exception): ... +error = OSSAudioError From 343ebd6a34e40b5bedbaf94769e21c19c3f48118 Mon Sep 17 00:00:00 2001 From: hauntsaninja <> Date: Mon, 18 Jan 2021 11:11:07 -0800 Subject: [PATCH 3/4] blacken --- stdlib/3/ossaudiodev.pyi | 1 + 1 file changed, 1 insertion(+) diff --git a/stdlib/3/ossaudiodev.pyi b/stdlib/3/ossaudiodev.pyi index e0e0a63a3d0c..2530b1ac6051 100644 --- a/stdlib/3/ossaudiodev.pyi +++ b/stdlib/3/ossaudiodev.pyi @@ -126,4 +126,5 @@ def open(device: str, mode: str) -> Any: ... def openmixer(device: str = ...) -> Any: ... class OSSAudioError(Exception): ... + error = OSSAudioError From 4f8fb64b391249f2c1f85691b761b695cd5fc58f Mon Sep 17 00:00:00 2001 From: hauntsaninja <> Date: Mon, 18 Jan 2021 11:37:34 -0800 Subject: [PATCH 4/4] use literal type --- stdlib/3/ossaudiodev.pyi | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/stdlib/3/ossaudiodev.pyi b/stdlib/3/ossaudiodev.pyi index 2530b1ac6051..af3e2c210930 100644 --- a/stdlib/3/ossaudiodev.pyi +++ b/stdlib/3/ossaudiodev.pyi @@ -1,4 +1,5 @@ from typing import Any, List, overload +from typing_extensions import Literal AFMT_AC3: int AFMT_A_LAW: int @@ -118,9 +119,9 @@ control_names: List[str] # TODO: oss_audio_device return type @overload -def open(mode: str) -> Any: ... +def open(mode: Literal["r", "w", "rw"]) -> Any: ... @overload -def open(device: str, mode: str) -> Any: ... +def open(device: str, mode: Literal["r", "w", "rw"]) -> Any: ... # TODO: oss_mixer_device return type def openmixer(device: str = ...) -> Any: ...