On Thu, Dec 23, 2010 at 11:21:56AM -0800, Christopher Lee wrote:
> the endless problems with dbm style interfaces that people run into on 
> different Python installs (especially Mac) persuade me that we need to take 
> action on the dbsqlite dbm-style interface to sqlite as we had previously 
> discussed.  It seems like this would really solve the problem, which has 
> wasted so much of our time already.  Looking at issue 3783 in the Python bugs 
> database, it looks like no further progress has occurred there, so if we want 
> action on this we will have to take it up ourselves. 
> 
> I took a look at the dbsqlite code, which suggested the following:
> 
> - we would need to implement basic handling of the c / n / w / r mode flags.
> 
> - how do you think we should test this prior to pushing it into a Pygr 
> maintenance release (such as 0.8.3)? 
> 
> One obvious initial test is to run the Pygr test suite using this on mac 10.6 
> apple-supplied Python 2.6, which lacks any decent dbm style interface (only 
> dbm works, and it lacks any way of iterating...).  Running the full Pygr test 
> suite using dbsqlite would at least test it in a wide variety of areas 
> including sequence databases, worldbase, etc.  This would at least give us a 
> basic sense of whether it solves our relevant Pygr needs...
> 
> What are your thoughts on this idea of trying to use sqlite as a dbm / shelve 
> replacement?  It's been a long time since we've discussed it.

Hey Chris,

good idea.

since then I've used the dbsqlite code in two separate projects, tagnabbit
and pony-build, whtout any hitches. While I don't remember the specific issues
driving these patches, I made two modifications:

https://github.com/ctb/tagnabbit/commit/26db7053f05f579d1f2e801336ad759ac3468ed8

https://github.com/ctb/pony-build/commit/baa93ff5f0b014e8b01b0a1f0941b5f2b947363f

The latter patch is important for proper iterator behavior, I believe.  The
first patch is for good emacs support.

The general persistence system in pygr is due for a radical simplification
and overhaul, but that's probably too ambitious for now.  I agree with your
proposal for testing.

I'm on vacation right now, which means I may or may not get a chance to work
on this.  Ping me privately if you start working on it so we don't duplicate
work.

Note, for the SequenceFileDB fix, screed may be a good option: see

        https://github.com/ctb/screed/blob/master/screed/tests/test_pygr_api.py

for an example of how to use it.  Briefly,

        from screed.pygr_api import ScreedSequenceDB

should give you a drop-in replacement for SequenceFileDB, although you'll
need to index the database separately; see

        https://github.com/ctb/screed/blob/master/doc/example.txt

cheers,
--titus

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

Reply via email to