[Python-Dev] python/dist/src/Lib/bsddb __init__.py,1.5,1.6

Raymond Hettinger python at rcn.com
Fri Sep 12 19:50:40 EDT 2003


[Raymond]
> > > > I would like to backport this patch to Py2.3.1.  
> > > > The effort to provide a full mapping interface to all
> > > > mapping like objects was attempted in Py2.3 and several
> > > > modules for the bsddb package were updated, but this
> > > > one was missed and the package was left half converted.
> > > > 
> > > > IIRC, dbhash and bsddb don't affect the Apple MacIntosh
> > > > users.  Also, since this effort was started for bsddb and
> > > > only half completed, I view it to be a bit of a bugfix as
> > > > well as being featurelike.  It certainly affects the usability
> > > > of the module (the looping example and related text in 
> > > > the docs were both wrong -- that would not have happened
> > > > if the normal looping expectations were supported).
[GvR]
> > > Can you discuss this on python-dev?
[Raymond] 
> > Guys, are you okay with backporting this?
[Jeremy]
> Isn't this just the sort of little feature that was the subject of
> recent discussion on the dangers of backporting.  It would mean that
> someone writing an app against Python 2.3 could never be sure whether
> the feature existed.  In practice, that would mean developers using
> 2.3.x would only find out about problems after deployment when they bump
> into a user with the original 2.3.
> 
> I'm not sure how convincing I find this argument, but it's got some
> merit.

It has some.  That's why GvR had me bring it to python-dev
so you guys could help decide on the proper balance.
But for that one thought, the decision to apply is clear cut.

Thoughts in favor of applying:
* the existing interface is a pain and is misdocumented in Py2.3.0
* the patch was already half complete for 2.3.0 (applied
   to dbobj and dbshelve) __init__.py was just missed).
* the patch was already applied to dumbdbm and shelve for Py2.3.0
* if needed, it's not hard to write code that automatically
   adjusts for Py2.3.0:
       if not f.__class__.__bases__:
            f.__class__.__bases = (UserDict.DictMixin,)
* waiting another 18 months to put this in just results in that
   many more installed Pythons out there without the patch


Raymond



More information about the Python-Dev mailing list