[Python-Dev] "buffer interface" messages

Antoine Pitrou solipsis at pitrou.net
Fri Dec 3 17:57:22 CET 2010


On Sat, 4 Dec 2010 02:45:42 +1000
Nick Coghlan <ncoghlan at gmail.com> wrote:
> On Sat, Dec 4, 2010 at 2:28 AM, Antoine Pitrou <solipsis at pitrou.net> wrote:
> > On Fri, 03 Dec 2010 10:11:29 -0500
> > "R. David Murray" <rdmurray at bitdance.com> wrote:
> >> >
> >> > >>> 'abc'.transform('hex')
> >> > TypeError: 'str' does not support the buffer interface
> >> > >>> b'abc'.transform('rot13')
> >> > TypeError: expected an object with the buffer interface
> >>
> >> I find these 'buffer interface' error messages to be the most confusing
> >> error message I get out of Python3 no matter what context they show up
> >> in.  I have no idea what they are telling me.  That issue is more
> >> general than transform/untransform, but perhaps it could be fixed
> >> for transform/untransform in particular.
> >
> > I agree. "buffer interface" is a technicality that the Python user
> > doesn't do about (unless (s)he also writes C extensions). How about
> > "expected a bytes-compatible object"?
> 
> Why not "binary data interface"? That's what they're actually looking for.

I don't think it's more understandable, since it's not a well-known
Python concept.
(and in this specific case, the transform() method is on str and bytes,
not on arbitrary bytes-like objects)

> It seems odd for 'rot13' to be throwing that error though.

Agreed.

Regards

Antoine.


More information about the Python-Dev mailing list