Skip to content

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

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jun 17, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 0 additions & 7 deletions Doc/library/sunau.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
7 changes: 0 additions & 7 deletions Doc/library/wave.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
11 changes: 8 additions & 3 deletions Doc/whatsnew/3.9.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 1 addition & 5 deletions Lib/aifc.py
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@
import builtins
import warnings

__all__ = ["Error", "open", "openfp"]
__all__ = ["Error", "open"]

class Error(Exception):
pass
Expand Down Expand Up @@ -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
Expand Down
7 changes: 1 addition & 6 deletions Lib/sunau.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@
"""

from collections import namedtuple
import warnings


_sunau_params = namedtuple('_sunau_params',
'nchannels sampwidth framerate nframes comptype compname')
Expand Down Expand Up @@ -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)
12 changes: 0 additions & 12 deletions Lib/test/audiotests.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
from test.support import findfile, TESTFN, unlink
import array
import io
from unittest import mock
import pickle


Expand Down Expand Up @@ -50,17 +49,6 @@ def check_params(self, f, nchannels, sampwidth, framerate, nframes,
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):
Expand Down
13 changes: 7 additions & 6 deletions Lib/test/test_aifc.py
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand All @@ -172,7 +171,8 @@ def test_params_added(self):
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())
Expand Down Expand Up @@ -208,7 +208,8 @@ def test_read_markers(self):
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'))
Expand Down
4 changes: 1 addition & 3 deletions Lib/test/test_pyclbr.py
Original file line number Diff line number Diff line change
Expand Up @@ -225,9 +225,7 @@ def test_others(self):
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
Expand Down
4 changes: 0 additions & 4 deletions Lib/test/test_sunau.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
4 changes: 1 addition & 3 deletions Lib/test/test_wave.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
20 changes: 7 additions & 13 deletions Lib/wave.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,15 @@
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
Expand All @@ -82,13 +88,6 @@ class Error(Exception):

_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')

Expand Down Expand Up @@ -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)
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
``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.