diff --git a/pysoundfile.py b/pysoundfile.py index a69288a..c70b9a4 100644 --- a/pysoundfile.py +++ b/pysoundfile.py @@ -636,10 +636,10 @@ def __init__(self, file, mode='r', samplerate=None, channels=None, mode_int = _snd.SFM_WRITE old_fmt = format - self._name = getattr(file, 'name', file) + self._name = file if format is None: - format = str(self.name).rsplit('.', 1)[-1].upper() - if format not in _formats and 'r' not in modes: + format = str(getattr(file, 'name', file)).rsplit('.', 1)[-1] + if format.upper() not in _formats and 'r' not in modes: raise TypeError( "No format specified and unable to get format from " "file extension: %s" % repr(self.name)) @@ -718,9 +718,10 @@ def __init__(self, file, mode='r', samplerate=None, channels=None, _file = None def __repr__(self): - return ('SoundFile("{}", mode="{}", samplerate={}, channels={}, ' - 'format="{}")').format(self.name, self.mode, self.samplerate, - self.channels, self.format) + return ('SoundFile(%r, mode=%r, samplerate=%i, channels=%i, ' + 'format=%r, subtype=%r, endian=%r)' % + (self.name, self.mode, self.samplerate, self.channels, + self.format, self.subtype, self.endian)) def __del__(self): self.close() diff --git a/tests/test_pysoundfile.py b/tests/test_pysoundfile.py index 9bb0951..07c8bbd 100644 --- a/tests/test_pysoundfile.py +++ b/tests/test_pysoundfile.py @@ -449,7 +449,8 @@ def test__repr__(sf_stereo_r): if not isinstance(sf_stereo_r.name, int): assert repr(sf_stereo_r) == ('SoundFile("{}", mode="r", ' 'samplerate=44100, channels=2, ' - 'format="WAV")').format(filename_stereo) + 'format="WAV", subtype="FLOAT", ' + 'endian="FILE")').format(filename_stereo) def test_mode_should_be_in_write_mode(sf_stereo_w): assert sf_stereo_w.mode == 'w'