[Python-checkins] cpython: #17487: wave.getparams now returns a namedtuple.
r.david.murray
python-checkins at python.org
Wed Apr 10 18:31:57 CEST 2013
http://hg.python.org/cpython/rev/340a12c18b7f
changeset: 83234:340a12c18b7f
user: R David Murray <rdmurray at bitdance.com>
date: Wed Apr 10 12:31:43 2013 -0400
summary:
#17487: wave.getparams now returns a namedtuple.
Patch by Claudiu Popa.
files:
Doc/library/wave.rst | 5 +++--
Doc/whatsnew/3.4.rst | 6 ++++++
Lib/test/test_wave.py | 16 ++++++++++++++++
Lib/wave.py | 16 ++++++++++------
Misc/NEWS | 3 +++
5 files changed, 38 insertions(+), 8 deletions(-)
diff --git a/Doc/library/wave.rst b/Doc/library/wave.rst
--- a/Doc/library/wave.rst
+++ b/Doc/library/wave.rst
@@ -98,8 +98,9 @@
.. method:: Wave_read.getparams()
- Returns a tuple ``(nchannels, sampwidth, framerate, nframes, comptype,
- compname)``, equivalent to output of the :meth:`get\*` methods.
+ Returns a :func:`~collections.namedtuple` ``(nchannels, sampwidth,
+ framerate, nframes, comptype, compname)``, equivalent to output of the
+ :meth:`get\*` methods.
.. method:: Wave_read.readframes(n)
diff --git a/Doc/whatsnew/3.4.rst b/Doc/whatsnew/3.4.rst
--- a/Doc/whatsnew/3.4.rst
+++ b/Doc/whatsnew/3.4.rst
@@ -157,6 +157,12 @@
Added ``FAIL_FAST`` flag to halt test running as soon as the first failure is
detected. (Contributed by R. David Murray and Daniel Urban in :issue:`16522`.)
+wave
+----
+
+The :meth:`~wave.getparams` method now returns a namedtuple rather than a
+plain tuple. (Contributed by Claudiu Popa in :issue:`17487`.)
+
Optimizations
=============
diff --git a/Lib/test/test_wave.py b/Lib/test/test_wave.py
--- a/Lib/test/test_wave.py
+++ b/Lib/test/test_wave.py
@@ -58,6 +58,22 @@
output = b'\0' * nframes * nchannels * sampwidth
self.f.writeframes(output)
+ def test_getparams(self):
+ self.f = wave.open(TESTFN, 'wb')
+ self.f.setnchannels(nchannels)
+ self.f.setsampwidth(sampwidth)
+ self.f.setframerate(framerate)
+ self.f.close()
+
+ self.f = wave.open(TESTFN, 'rb')
+ params = self.f.getparams()
+ self.assertEqual(params.nchannels, self.f.getnchannels())
+ self.assertEqual(params.nframes, self.f.getnframes())
+ self.assertEqual(params.sampwidth, self.f.getsampwidth())
+ self.assertEqual(params.framerate, self.f.getframerate())
+ self.assertEqual(params.comptype, self.f.getcomptype())
+ self.assertEqual(params.compname, self.f.getcompname())
+
def test_main():
run_unittest(TestWave)
diff --git a/Lib/wave.py b/Lib/wave.py
--- a/Lib/wave.py
+++ b/Lib/wave.py
@@ -18,7 +18,7 @@
getcomptype() -- returns compression type ('NONE' for linear samples)
getcompname() -- returns human-readable version of
compression type ('not compressed' linear samples)
- getparams() -- returns a tuple consisting of all of the
+ getparams() -- returns a namedtuple consisting of all of the
above in the above order
getmarkers() -- returns None (for compatibility with the
aifc module)
@@ -90,6 +90,10 @@
big_endian = 0
from chunk import Chunk
+from collections import namedtuple
+
+_result = namedtuple('params',
+ 'nchannels sampwidth framerate nframes comptype compname')
class Wave_read:
"""Variables used in this class:
@@ -206,9 +210,9 @@
return self._compname
def getparams(self):
- return self.getnchannels(), self.getsampwidth(), \
- self.getframerate(), self.getnframes(), \
- self.getcomptype(), self.getcompname()
+ return _result(self.getnchannels(), self.getsampwidth(),
+ self.getframerate(), self.getnframes(),
+ self.getcomptype(), self.getcompname())
def getmarkers(self):
return None
@@ -398,8 +402,8 @@
def getparams(self):
if not self._nchannels or not self._sampwidth or not self._framerate:
raise Error('not all parameters set')
- return self._nchannels, self._sampwidth, self._framerate, \
- self._nframes, self._comptype, self._compname
+ return _result(self._nchannels, self._sampwidth, self._framerate,
+ self._nframes, self._comptype, self._compname)
def setmark(self, id, pos, name):
raise Error('setmark() not supported')
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -32,6 +32,9 @@
Library
-------
+- Issue #17487: The wave getparams method now returns a namedtuple rather than
+ a plain tuple.
+
- Issue #17675: socket repr() provides local and remote addresses (if any).
Patch by Giampaolo Rodola'
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list