[Python-3000] bsddb finished for 2.6/3.0 (and "<class 'BytesWarning'>: str() on a bytes instance")

Barry Warsaw barry at python.org
Thu Sep 4 00:29:02 CEST 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Sep 3, 2008, at 5:31 PM, Jesus Cea wrote:

> Christian Heimes wrote:
>> Jesus Cea wrote:
>>> I can't reproduce the issue in my local Python3.0 development  
>>> version
>>> (here, all tests passes fine). Any suggestion?.
>>
>> Yeah, use my byte warning mode of Python 3.0. Before your time in the
>> core team I had a long discussion with Guido and a few others. The
>> conclusion of the discussion was the byte warning mode.
>
> So much to learn, so little time :). Do you have an URL at hand?
>
>>> "Decoding" the "db.DB_VERSION_STRING" byte string would solve the  
>>> error,
>>> but I rather prefer to know WHY I am having this issue at all. My
>>> Python3.0 "str()" has no any issue with byte values:
>>
>> It has no issues because Guido wanted str() to successed. Any  
>> comparison
>> or conversion of a byte / bytearray instance with / to str is most
>> likely a bug or design flaw in the application. The byte warning mode
>> helps to discover hard to find bugs like "" == b"".
>
> Just committed the "decode" thing: r66188.

Jesus, again thanks for working so hard on pybsddb, I really  
appreciate the effort.

However, in talking with several developers, there are still concerns  
about bundling bsddb with Python 3.0.  We have to leave it in 2.6 for  
backward compatibility reasons, but we should deprecate it, remove it  
from 3.0 and continue to release it as a separate package.

The issues come down to these:

- - You (Jesus) are the only person maintaining the code
- - The upstream bsddb API has never been the most stable thing in the  
world
- - Concerns that the buildbot environments are not adequately testing  
the code

My gut own feeling is that both pybsddb and Python would be much  
better served with this code outside the core, distributed  
separately.  All your work would still live on, and be appreciated by  
the community, but neither pybsddb nor Python would be tied to each  
other's release cycles.  And of course, your continued maintenance on  
the 2.6 branch is greatly appreciated.

The dilemma for me is whether to let 3.0rc1 go out with or without  
bsddb.  Either way, if there's a pitchfork revolt of this decision  
we'll have to break our rule for rc2 to back the change out.

Guido has already given his approval to remove pybsddb from Python 3.0:

http://mail.python.org/pipermail/python-dev/2008-July/081379.html

and I know Brett agrees, so that's it.  On IRC, I've just asked  
Benjamin to do the honors for 3.0 and Brett will add the deprecations  
for 2.6.

- -Barry

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Darwin)

iQCVAwUBSL8PrnEjvBPtnXfVAQKFfAP9EfWlyrmdBvIrO85vX4dpd/uIjM1Q5Ngm
LP4a20nWPsmA6LpMbW7fjpwVnnNOeJqamqX8JFsqcETw1GOJnIgovqhHItzCgQjb
0X+Uw/m2Uv0TqKcgrf0WXw61sLG8liWdkV4tq92JnbzBVwEzCTdZPDfOGUGEYRop
Q3LLOxKRRow=
=4dVo
-----END PGP SIGNATURE-----


More information about the Python-3000 mailing list