[Python-Dev] buffer('abc') == 'abc' is False ?! (original) (raw)

M.-A. Lemburg mal@lemburg.com
Wed, 16 Oct 2002 17:24:20 +0200


Guido van Rossum wrote:

* signals "this data is binary data" * compares just fine to strings * gets accepted by all APIs which use the buffer interface to access the data * has a C API which can be used in extensions * is available in Python 2.1.x and up

I believe the string type meets all these requirements. Except one which was implicit: how to tell binary data from text data. This information can sometimes be deduced from the string content provided you know what text data means to you, but this doesn't always work, since sometimes binary data happens to look like text data (ie. use only character ordinals as data bytes). I don't understand why you need to signal "this is binary data" while at the same time you want to be able to compare to strings.

Because I use buffer objects to wrap string data to say "this is binary data" to a database. When fetching the same data back from the database I return a string and I found the quirk mentioned in the subject while writing a unit test for this. It's not a showstopper.

The above just was a hint not to deprecate the buffer object until we've come up with a decent replacement that's easy to adapt in existing code.

-- Marc-Andre Lemburg CEO eGenix.com Software GmbH


eGenix.com -- Makers of the Python mx Extensions: mxDateTime,mxODBC,... Python Consulting: http://www.egenix.com/ Python Software: http://www.egenix.com/files/python/