[Python-3000] bytearray incompatible with bytes

Pyry Pakkanen pyry.pakkanen at gmail.com
Fri Aug 29 15:23:33 CEST 2008


Hello list! First post.

I ran in to this problem with ossaudiodev module when trying to copy
the input audio to output:

import ossaudiodev
dev = ossaudiodev.open("rw")
dev.setparameters(ossaudiodev.AFMT_S16_NE,2,44100)
for i in range(1000): #Copy audio from input to output for a few seconds
    dev.write(dev.read(1024))

It runs fine in 2.5 but in 3.0b3 it gives the following exception:
Traceback (most recent call last):
  File "myscripts/ossthrough.py", line 5, in <module>
    dev.write(dev.read(1024))
TypeError: write() argument 1 must be bytes or read-only buffer, not bytearray

This looks like a bug. I thought bytearray is a read-only buffer.

Looking at the ossaudiodev.c source it seems that
PyArg_ParseTuple(args, "y#:write", &cp, &size) doesn't accept
bytearrays.

-Pyry Pakkanen


More information about the Python-3000 mailing list