[Python-3000] bsddb ownership, buffer protocol and 3.0

Brett Cannon brett at python.org
Sat Jul 19 20:53:16 CEST 2008

On Sat, Jul 19, 2008 at 1:00 AM, Jesus Cea <jcea at jcea.es> wrote:
> I acknowledge that some people would like to remove bsddb from the
> standard lib, arguing it is a maintenance nightmare. I consider, then,
> that the right thing to do would be to (fully) delegate this code to me,
> a guy motivated, with deep knowledge on this technology and that uses
> this code everyday. You will be relieved of maintain it, while keeping
> this extremely powerful tool in the stdlib.

The code has already been delegated to whomever wants it since no
other core developer maintains the code. And that is my worry; the
bsddb code base is owned by either no one or a single person since no
one else wants to deal with it (and I tried; I helped with the initial
transition to 3.0). For as long as I have been a core developer, if
you asked me what module or package caused the greatest amount of
grief for the core developers, I would have always answered bsddb.

I appreciate you want to maintain the code, Jesus, but that still
makes you the single point of failure for the code. If you decide you
don't want to deal with it, or are on vacation when the code breaks
just before a release, it is quite possible we are screwed. The Python
code base is not owned or maintained by a single individual, and yet
bsddb has been handled by a single person for as long as I can

Short of new code from _multiprocessing, everything else has been
ported to 3.0 throughout the development process without nearly as
much issue.

> Any linux distro includes Berkeley DB. With this lib in Python, everyone
> has a powerful ACID+replication+distributed transaction system scalable
> to petabytes without any extra download&install. That fact is very
> valuable. Do not drop this advantage!.

Assuming you even want to use Berkeley DB. And not all of us are on
Linux.  This is one of those situations where an argument tends to
break out over what types of things should be included in the stdlib.
I think bsddb is heavier than what we should include. But that's my

> Thanks for your confidence.
> PS: I need help with the "ImportError: __build_class__ not found" thing.
> You can look at the code at svn://svn.argo.es/jcea/pybsddb/trunk/Modules
> , revision 523. This code compiles under Python 2.[3-6] and 3.0. Under
> 2.6 it pases all the 303 tests. On 3.0 it compiles, but fails to import,
> with the given error. Any idea?.

Well, _build_class__ is a built-in, so something is not running under
a proper environment.


More information about the Python-3000 mailing list