Convert sunaudio.py to bytes. (It has no unit test of its own!)
Fix test_ossaudiodev by closing the dsp properly (it can't be opened
multiple times on my box).
diff --git a/Lib/sunaudio.py b/Lib/sunaudio.py
index 05bd867..ab4a8fa 100644
--- a/Lib/sunaudio.py
+++ b/Lib/sunaudio.py
@@ -1,14 +1,14 @@
"""Interpret sun audio headers."""
-MAGIC = '.snd'
+MAGIC = b'.snd'
class error(Exception):
pass
def get_long_be(s):
- """Convert a 4-char value to integer."""
- return (ord(s[0])<<24) | (ord(s[1])<<16) | (ord(s[2])<<8) | ord(s[3])
+ """Convert a 4-byte value to integer."""
+ return (s[0]<<24) | (s[1]<<16) | (s[2]<<8) | s[3]
def gethdr(fp):
@@ -26,15 +26,19 @@
if excess > 0:
info = fp.read(excess)
else:
- info = ''
+ info = b''
return (data_size, encoding, sample_rate, channels, info)
def printhdr(file):
"""Read and print the sound header of a named file."""
- hdr = gethdr(open(file, 'r'))
+ f = open(file, 'rb')
+ try:
+ hdr = gethdr(f)
+ finally:
+ f.close()
data_size, encoding, sample_rate, channels, info = hdr
- while info[-1:] == '\0':
+ while info.endswith(b'\0'):
info = info[:-1]
print('File name: ', file)
print('Data size: ', data_size)