[Python-Dev] getting rid of confusing "expected a character buffer object" messages

Fredrik Lundh fredrik at pythonware.com
Sat May 27 17:51:51 CEST 2006

several string methods accepts either strings or objects that support 
the buffer api, and ends up raising a "expected a character buffer 
object" error if you pass in something else.  this isn't exactly helpful 
for non-experts -- the term "character buffer object" doesn't appear in 
any python tutorials I've seen.

     >>> "x".find(1)
     Traceback (most recent call last):
       File "<stdin>", line 1, in <module>
     TypeError: expected a character buffer object

I think should be fixed, but I cannot make up my mind on what's the best 
way to fix it:

     1. map all errors from PyObject_AsCharBuffer to "expected string
        or compatible object", or some such.

     2. modify PyObject_AsCharBuffer so it returns different negative
        error codes depending on whether the object doesn't support the
        protocol at all, or if something went wrong when using it.

     3. to avoid changing the PyObject_AsCharBuffer return value, add a
        PyObject_AsCharBufferEx that does the above

     4. do something entirely different

     5. fugetabotit



More information about the Python-Dev mailing list