https://github.com/python/cpython/commit/3f61ea3add0d432345a58f4be2229074f9f191c2
commit: 3f61ea3add0d432345a58f4be2229074f9f191c2
branch: main
author: Bénédikt Tran <[email protected]>
committer: picnixz <[email protected]>
date: 2025-05-15T14:52:07Z
summary:
gh-133873: remove deprecated mark interface for `wave.Wave_{read,write}`
objects (#133874)
files:
A Misc/NEWS.d/next/Library/2025-05-11-10-28-11.gh-issue-133873.H03nov.rst
M Doc/deprecations/pending-removal-in-3.15.rst
M Doc/library/wave.rst
M Doc/whatsnew/3.13.rst
M Doc/whatsnew/3.15.rst
M Lib/test/test_wave.py
M Lib/wave.py
diff --git a/Doc/deprecations/pending-removal-in-3.15.rst
b/Doc/deprecations/pending-removal-in-3.15.rst
index c80588b27b635a..8953aedf989869 100644
--- a/Doc/deprecations/pending-removal-in-3.15.rst
+++ b/Doc/deprecations/pending-removal-in-3.15.rst
@@ -99,8 +99,7 @@ Pending removal in Python 3.15
* :mod:`wave`:
- * The :meth:`~wave.Wave_read.getmark`, :meth:`!setmark`,
- and :meth:`~wave.Wave_read.getmarkers` methods of
+ * The ``getmark()``, ``setmark()`` and ``getmarkers()`` methods of
the :class:`~wave.Wave_read` and :class:`~wave.Wave_write` classes
have been deprecated since Python 3.13.
diff --git a/Doc/library/wave.rst b/Doc/library/wave.rst
index 36c2bde87fb8fb..a3f5bfd5e2f99c 100644
--- a/Doc/library/wave.rst
+++ b/Doc/library/wave.rst
@@ -123,26 +123,6 @@ Wave_read Objects
Rewind the file pointer to the beginning of the audio stream.
- The following two methods are defined for compatibility with the old
:mod:`!aifc`
- module, and don't do anything interesting.
-
-
- .. method:: getmarkers()
-
- Returns ``None``.
-
- .. deprecated-removed:: 3.13 3.15
- The method only existed for compatibility with the :mod:`!aifc` module
- which has been removed in Python 3.13.
-
-
- .. method:: getmark(id)
-
- Raise an error.
-
- .. deprecated-removed:: 3.13 3.15
- The method only existed for compatibility with the :mod:`!aifc` module
- which has been removed in Python 3.13.
The following two methods define a term "position" which is compatible
between
them, and is otherwise implementation dependent.
diff --git a/Doc/whatsnew/3.13.rst b/Doc/whatsnew/3.13.rst
index b3530f75b2fa40..7ae184058111d8 100644
--- a/Doc/whatsnew/3.13.rst
+++ b/Doc/whatsnew/3.13.rst
@@ -1995,8 +1995,7 @@ New Deprecations
* :mod:`wave`:
- * Deprecate the :meth:`~wave.Wave_read.getmark`, :meth:`!setmark`,
- and :meth:`~wave.Wave_read.getmarkers` methods of
+ * Deprecate the ``getmark()``, ``setmark()`` and ``getmarkers()`` methods of
the :class:`~wave.Wave_read` and :class:`~wave.Wave_write` classes,
to be removed in Python 3.15.
(Contributed by Victor Stinner in :gh:`105096`.)
diff --git a/Doc/whatsnew/3.15.rst b/Doc/whatsnew/3.15.rst
index 8cf5238e6cc49a..14d96420f698fa 100644
--- a/Doc/whatsnew/3.15.rst
+++ b/Doc/whatsnew/3.15.rst
@@ -144,6 +144,15 @@ typing
(Contributed by Bénédikt Tran in :gh:`133823`.)
+wave
+----
+
+* Removed the ``getmark()``, ``setmark()`` and ``getmarkers()`` methods
+ of the :class:`~wave.Wave_read` and :class:`~wave.Wave_write` classes,
+ which were deprecated since Python 3.13.
+ (Contributed by Bénédikt Tran in :gh:`133873`.)
+
+
Porting to Python 3.15
======================
diff --git a/Lib/test/test_wave.py b/Lib/test/test_wave.py
index 5e771c8de969ec..6c3362857fc2ba 100644
--- a/Lib/test/test_wave.py
+++ b/Lib/test/test_wave.py
@@ -136,32 +136,6 @@ def test__all__(self):
not_exported = {'WAVE_FORMAT_PCM', 'WAVE_FORMAT_EXTENSIBLE',
'KSDATAFORMAT_SUBTYPE_PCM'}
support.check__all__(self, wave, not_exported=not_exported)
- def test_read_deprecations(self):
- filename = support.findfile('pluck-pcm8.wav', subdir='audiodata')
- with wave.open(filename) as reader:
- with self.assertWarns(DeprecationWarning):
- with self.assertRaises(wave.Error):
- reader.getmark('mark')
- with self.assertWarns(DeprecationWarning):
- self.assertIsNone(reader.getmarkers())
-
- def test_write_deprecations(self):
- with io.BytesIO(b'') as tmpfile:
- with wave.open(tmpfile, 'wb') as writer:
- writer.setnchannels(1)
- writer.setsampwidth(1)
- writer.setframerate(1)
- writer.setcomptype('NONE', 'not compressed')
-
- with self.assertWarns(DeprecationWarning):
- with self.assertRaises(wave.Error):
- writer.setmark(0, 0, 'mark')
- with self.assertWarns(DeprecationWarning):
- with self.assertRaises(wave.Error):
- writer.getmark('mark')
- with self.assertWarns(DeprecationWarning):
- self.assertIsNone(writer.getmarkers())
-
class WaveLowLevelTest(unittest.TestCase):
diff --git a/Lib/wave.py b/Lib/wave.py
index a34af244c3e224..929609fa52409d 100644
--- a/Lib/wave.py
+++ b/Lib/wave.py
@@ -20,10 +20,6 @@
compression type ('not compressed' linear samples)
getparams() -- returns a namedtuple consisting of all of the
above in the above order
- getmarkers() -- returns None (for compatibility with the
- old aifc module)
- getmark(id) -- raises an error since the mark does not
- exist (for compatibility with the old aifc module)
readframes(n) -- returns at most n frames of audio
rewind() -- rewind to the beginning of the audio stream
setpos(pos) -- seek to the specified position
@@ -341,16 +337,6 @@ def getparams(self):
self.getframerate(), self.getnframes(),
self.getcomptype(), self.getcompname())
- def getmarkers(self):
- import warnings
- warnings._deprecated("Wave_read.getmarkers", remove=(3, 15))
- return None
-
- def getmark(self, id):
- import warnings
- warnings._deprecated("Wave_read.getmark", remove=(3, 15))
- raise Error('no marks')
-
def setpos(self, pos):
if pos < 0 or pos > self._nframes:
raise Error('position not in range')
@@ -551,21 +537,6 @@ def getparams(self):
return _wave_params(self._nchannels, self._sampwidth, self._framerate,
self._nframes, self._comptype, self._compname)
- def setmark(self, id, pos, name):
- import warnings
- warnings._deprecated("Wave_write.setmark", remove=(3, 15))
- raise Error('setmark() not supported')
-
- def getmark(self, id):
- import warnings
- warnings._deprecated("Wave_write.getmark", remove=(3, 15))
- raise Error('no marks')
-
- def getmarkers(self):
- import warnings
- warnings._deprecated("Wave_write.getmarkers", remove=(3, 15))
- return None
-
def tell(self):
return self._nframeswritten
diff --git
a/Misc/NEWS.d/next/Library/2025-05-11-10-28-11.gh-issue-133873.H03nov.rst
b/Misc/NEWS.d/next/Library/2025-05-11-10-28-11.gh-issue-133873.H03nov.rst
new file mode 100644
index 00000000000000..79f630b2418e70
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2025-05-11-10-28-11.gh-issue-133873.H03nov.rst
@@ -0,0 +1,3 @@
+Remove the deprecated ``getmark()``, ``setmark()`` and ``getmarkers()``
+methods of the :class:`~wave.Wave_read` and :class:`~wave.Wave_write`
+classes, which were deprecated since Python 3.13. Patch by Bénédikt Tran.
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]