-> [ ... ] All of those are easy, but it makes you wonder,  
-> when will the madness end?
-> 
-> > At least three possible solutions:
-> >
-> > - require bsddb
-> >
-> > - put in code to "test" to see if what anydbm returns can give an
-> >   iterator, and if not, give a very clear error message;
-> >
-> > - try to write our own wrapper code to "fix" the problem.
-> >
-> > I vote for #2 or #1.  Note that bsddb is deprecated in 2.7 and going
-> > away (gone?) in 3.x, but we can deal with that... later.  I'd like to
-> > get in something for 8.0 final if possible.
-> 
-> Option #1 puts us on a collision course with Python's avowed policy to  
-> deprecate bsddb.  It also means users won't be able to install Pygr  
-> unless they are able to install bsddb.  I am concerned that installing  
-> bsddb may in some cases be tricky (I've heard of problems on various  
-> platforms...).
-> 
-> Option #2 is not much of an improvement.  The user will be able to  
-> install Pygr without bsddb, but all the file storages (SequenceFileDB,  
-> NLMSA etc.) use shelve.  So if shelve doesn't actually work on their  
-> box, they won't be able to do much of anything!
-> 
-> So I end up at Option #3, reluctantly.  It looks quite easy to solve  
-> both dbm's iteration and __contains__ bugs.  But then there is the  
-> fact that the iter() scalability will be poor (because your only  
-> choice is to call iter(db.keys()).  And we keep hitting new problems  
-> with the backends (first gdbm, now dbm, next time ???).  When will the  
-> madness end?  It would be great if Python would solve all these  
-> backend problems in Python 2.7.
-> 
-> So I conclude that we should eventually move away from all these  
-> bsddb / dbm style backends entirely, and use sqlite as the backend for  
-> shelve.  sqlite looks like it has a future in Python; the other  
-> backends seem like throwbacks to the past. I believe Istvan looked at  
-> sqlite performance some time ago; I think it was pretty good.
-> 
-> What do other people think?

Why not:

 - remove support for dbm, leaving in gdbm support if necessary
 - build in support for sqlite-based shelve (for next release)
 - live happily ever after

?

We can leave bsddb support in for python 2.3 and python2.4, which don't
have sqlite, and move to a default of sqlite support.

cheers,
--titus
-- 
C. Titus Brown, [email protected]

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"pygr-dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/pygr-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to