Commit ac7b1a3f authored by Victor Stinner's avatar Victor Stinner Committed by GitHub

bpo-37320: Remove openfp() of aifc, sunau and wave (GH-14169)

aifc.openfp() alias to aifc.open(), sunau.openfp() alias to
sunau.open(), and wave.openfp() alias to wave.open() have been
removed. They were deprecated since Python 3.7.
parent 8fac1221
......@@ -59,13 +59,6 @@ The :mod:`sunau` module defines the following functions:
or ``'wb'`` returns an :class:`AU_write` object.
.. function:: openfp(file, mode)
A synonym for :func:`.open`, maintained for backwards compatibility.
.. deprecated-removed:: 3.7 3.9
The :mod:`sunau` module defines the following exception:
.. exception:: Error
......
......@@ -47,13 +47,6 @@ The :mod:`wave` module defines the following function and exception:
.. versionchanged:: 3.4
Added support for unseekable files.
.. function:: openfp(file, mode)
A synonym for :func:`.open`, maintained for backwards compatibility.
.. deprecated-removed:: 3.7 3.9
.. exception:: Error
An error raised when something is impossible because it violates the WAV
......
......@@ -122,9 +122,14 @@ Deprecated
Removed
=======
``_dummy_thread`` and ``dummy_threading`` modules have been removed. These
modules were deprecated since Python 3.7 which requires threading support.
(Contributed by Victor Stinner in :issue:`37312`.)
* ``_dummy_thread`` and ``dummy_threading`` modules have been removed. These
modules were deprecated since Python 3.7 which requires threading support.
(Contributed by Victor Stinner in :issue:`37312`.)
* ``aifc.openfp()`` alias to ``aifc.open()``, ``sunau.openfp()`` alias to
``sunau.open()``, and ``wave.openfp()`` alias to ``wave.open()`` have been
removed. They were deprecated since Python 3.7.
(Contributed by Victor Stinner in :issue:`37320`.)
Porting to Python 3.9
......
......@@ -138,7 +138,7 @@ import struct
import builtins
import warnings
__all__ = ["Error", "open", "openfp"]
__all__ = ["Error", "open"]
class Error(Exception):
pass
......@@ -920,10 +920,6 @@ def open(f, mode=None):
else:
raise Error("mode must be 'r', 'rb', 'w', or 'wb'")
def openfp(f, mode=None):
warnings.warn("aifc.openfp is deprecated since Python 3.7. "
"Use aifc.open instead.", DeprecationWarning, stacklevel=2)
return open(f, mode=mode)
if __name__ == '__main__':
import sys
......
......@@ -104,7 +104,7 @@ is destroyed.
"""
from collections import namedtuple
import warnings
_sunau_params = namedtuple('_sunau_params',
'nchannels sampwidth framerate nframes comptype compname')
......@@ -524,8 +524,3 @@ def open(f, mode=None):
return Au_write(f)
else:
raise Error("mode must be 'r', 'rb', 'w', or 'wb'")
def openfp(f, mode=None):
warnings.warn("sunau.openfp is deprecated since Python 3.7. "
"Use sunau.open instead.", DeprecationWarning, stacklevel=2)
return open(f, mode=mode)
from test.support import findfile, TESTFN, unlink
import array
import io
from unittest import mock
import pickle
......@@ -50,17 +49,6 @@ class AudioTests:
self.assertEqual(pickle.loads(dump), params)
class AudioMiscTests(AudioTests):
def test_openfp_deprecated(self):
arg = "arg"
mode = "mode"
with mock.patch(f"{self.module.__name__}.open") as mock_open, \
self.assertWarns(DeprecationWarning):
self.module.openfp(arg, mode=mode)
mock_open.assert_called_with(arg, mode=mode)
class AudioWriteTests(AudioTests):
def create_file(self, testfile):
......
......@@ -143,13 +143,12 @@ class AifcALAWTest(AifcTest, unittest.TestCase):
frames = byteswap(frames, 2)
class AifcMiscTest(audiotests.AudioMiscTests, unittest.TestCase):
module = aifc
class AifcMiscTest(unittest.TestCase):
def test_skipunknown(self):
#Issue 2245
#This file contains chunk types aifc doesn't recognize.
self.f = aifc.open(findfile('Sine-1000Hz-300ms.aif'))
f = aifc.open(findfile('Sine-1000Hz-300ms.aif'))
f.close()
def test_close_opened_files_on_error(self):
non_aifc_file = findfile('pluck-pcm8.wav', subdir='audiodata')
......@@ -172,7 +171,8 @@ class AifcMiscTest(audiotests.AudioMiscTests, unittest.TestCase):
f.setparams((1, 1, 1, 1, b'NONE', b''))
f.close()
f = self.f = aifc.open(TESTFN, 'rb')
f = aifc.open(TESTFN, 'rb')
self.addCleanup(f.close)
params = f.getparams()
self.assertEqual(params.nchannels, f.getnchannels())
self.assertEqual(params.sampwidth, f.getsampwidth())
......@@ -208,7 +208,8 @@ class AifcMiscTest(audiotests.AudioMiscTests, unittest.TestCase):
fout.setmark(2, 0, b'even')
fout.writeframes(b'\x00')
fout.close()
f = self.f = aifc.open(TESTFN, 'rb')
f = aifc.open(TESTFN, 'rb')
self.addCleanup(f.close)
self.assertEqual(f.getmarkers(), [(1, 0, b'odd'), (2, 0, b'even')])
self.assertEqual(f.getmark(1), (1, 0, b'odd'))
self.assertEqual(f.getmark(2), (2, 0, b'even'))
......
......@@ -225,9 +225,7 @@ class PyclbrTest(TestCase):
cm('random', ignore=('Random',)) # from _random import Random as CoreGenerator
cm('cgi', ignore=('log',)) # set with = in module
cm('pickle', ignore=('partial', 'PickleBuffer'))
# TODO(briancurtin): openfp is deprecated as of 3.7.
# Update this once it has been removed.
cm('aifc', ignore=('openfp', '_aifc_params')) # set with = in module
cm('aifc', ignore=('_aifc_params',)) # set with = in module
cm('sre_parse', ignore=('dump', 'groups', 'pos')) # from sre_constants import *; property
cm('pdb')
cm('pydoc', ignore=('input', 'output',)) # properties
......
......@@ -119,10 +119,6 @@ class SunauULAWTest(SunauTest, unittest.TestCase):
frames = byteswap(frames, 2)
class SunauMiscTests(audiotests.AudioMiscTests, unittest.TestCase):
module = sunau
class SunauLowLevelTest(unittest.TestCase):
def test_read_bad_magic_number(self):
......
......@@ -105,9 +105,7 @@ class WavePCM32Test(WaveTest, unittest.TestCase):
frames = byteswap(frames, 4)
class MiscTestCase(audiotests.AudioMiscTests, unittest.TestCase):
module = wave
class MiscTestCase(unittest.TestCase):
def test__all__(self):
blacklist = {'WAVE_FORMAT_PCM'}
support.check__all__(self, wave, blacklist=blacklist)
......
......@@ -71,9 +71,15 @@ The close() method is called automatically when the class instance
is destroyed.
"""
from chunk import Chunk
from collections import namedtuple
import audioop
import builtins
import struct
import sys
__all__ = ["open", "openfp", "Error", "Wave_read", "Wave_write"]
__all__ = ["open", "Error", "Wave_read", "Wave_write"]
class Error(Exception):
pass
......@@ -82,13 +88,6 @@ WAVE_FORMAT_PCM = 0x0001
_array_fmts = None, 'b', 'h', None, 'i'
import audioop
import struct
import sys
from chunk import Chunk
from collections import namedtuple
import warnings
_wave_params = namedtuple('_wave_params',
'nchannels sampwidth framerate nframes comptype compname')
......@@ -512,8 +511,3 @@ def open(f, mode=None):
return Wave_write(f)
else:
raise Error("mode must be 'r', 'rb', 'w', or 'wb'")
def openfp(f, mode=None):
warnings.warn("wave.openfp is deprecated since Python 3.7. "
"Use wave.open instead.", DeprecationWarning, stacklevel=2)
return open(f, mode=mode)
``aifc.openfp()`` alias to ``aifc.open()``, ``sunau.openfp()`` alias to
``sunau.open()``, and ``wave.openfp()`` alias to ``wave.open()`` have been
removed. They were deprecated since Python 3.7.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment