diff -r 6eab274d3e34 Lib/test/test_wave.py --- a/Lib/test/test_wave.py Sun May 12 23:08:28 2013 -0500 +++ b/Lib/test/test_wave.py Mon May 13 11:52:30 2013 +0300 @@ -1,6 +1,7 @@ from test.support import TESTFN, run_unittest import os import wave +import pickle import struct import unittest @@ -74,6 +75,18 @@ self.assertEqual(params.comptype, self.f.getcomptype()) self.assertEqual(params.compname, self.f.getcompname()) + def test_getparams_picklable(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() + dump = pickle.dumps(params) + self.assertEqual(pickle.loads(dump), params) + def test_main(): run_unittest(TestWave) diff -r 6eab274d3e34 Lib/wave.py --- a/Lib/wave.py Sun May 12 23:08:28 2013 -0500 +++ b/Lib/wave.py Mon May 13 11:52:30 2013 +0300 @@ -92,7 +92,7 @@ from chunk import Chunk from collections import namedtuple -_result = namedtuple('params', +_Wave_params = namedtuple('_Wave_params', 'nchannels sampwidth framerate nframes comptype compname') class Wave_read: @@ -210,7 +210,7 @@ return self._compname def getparams(self): - return _result(self.getnchannels(), self.getsampwidth(), + return _Wave_params(self.getnchannels(), self.getsampwidth(), self.getframerate(), self.getnframes(), self.getcomptype(), self.getcompname()) @@ -402,7 +402,7 @@ def getparams(self): if not self._nchannels or not self._sampwidth or not self._framerate: raise Error('not all parameters set') - return _result(self._nchannels, self._sampwidth, self._framerate, + return _Wave_params(self._nchannels, self._sampwidth, self._framerate, self._nframes, self._comptype, self._compname) def setmark(self, id, pos, name):