[Python-Dev] Inconsistent Use of Buffer Interface in stringobject.c
phil at riverbankcomputing.co.uk
Mon Oct 24 19:18:41 CEST 2005
I'm implementing a string-like object in an extension module and trying to
make it as interoperable with the standard string object as possible. To do
this I'm implementing the relevant slots and the buffer interface. For most
things this is fine, but there are a small number of methods in
stringobject.c that don't use the buffer interface - and I don't understand
string_contains() doesn't which means that...
MyString("foo") in "foobar"
s.join(sequence) only allows sequence to contain string or unicode objects.
s.strip([chars]) only allows chars to be a string or unicode object. Same for
lstrip() and rstrip().
s.ljust(width[, fillchar]) only allows fillchar to be a string object (not
even a unicode object). Same for rjust() and center().
Other methods happily allow types that support the buffer interface as well as
string and unicode objects.
I'm happy to submit a patch - I just wanted to make sure that this behaviour
wasn't intentional for some reason.
More information about the Python-Dev