On Thu, Mar 12, 2009 at 3:20 PM, Ville M. Vainio <[email protected]> wrote: > > Many plugins will want to store transient data, i.e. data that should > be persistent for local user but should not be put to .leo file (which > annoys other users and causes unnecessary diffs). > > Yes, I'm talking about expanded node annotations and frame positions. > > I'm also talking about "interesting nodes" database, and other plugin > stuff that can make a candidate for uAs (but of the kind you do not > want in the leo file). > > The technology I'm proposing is 'pickleshare' (yeah, I wrote it ;-). > It's used in ipython to store its persistent data (bookmarks, %store'd > variables like macros, aliases...). > > pickleshare is like 'shelve' module, but works for concurrent > processes (so it doesn't break when multiple leo instances are > accessing it concurrently). Like the name suggests, it stores pickles > with dict-like access. In ipython, the global pickleshare database is > available as _ip.db, if you want to play with it interactively. The > pypi page has a short example: > > http://pypi.python.org/pypi/pickleshare > > It's just a simple module in single file, so as a dependency it's > pretty harmless (unlike zodb) and can be put to leo extensions dir. I > think they are planning to provide an sqlite implementation of shelve > interface, but that's not there yet (perhaps only for python3?), but > for leo's concurrent load (it's pretty much a single-user system ;-) > pickleshare will definitely by "scalable" enough. > > The interface for leo would be pretty simple: > > c.db['interest_scores'] = [12,11111] > mylist = c.db['interest_scores'] > mylist.append('foobar') > c.db['interest_scores'] = mylist > > c.db['myplugin/foo'] = { 1111 : 'hello' } > > This would manipulate the per-file database (stores under > ~/.leo/path_hash_value).
I would want to move it to the working tree containing my .leo and source files. Conceivable would be also a global database > under g.db (for storing e.g. recent files, some global settings). > > Note that these settings, like shadow files, would not be meant to be > shared with others at all. They can also be useful as caches. > c.db is a general-purpose persistent dictionary, right? useful for settings, but available for any kind of data storage? > I would do all the work for making this available, of course. > > -- > Ville M. Vainio > http://tinyurl.com/vainio > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "leo-editor" 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/leo-editor?hl=en -~----------~----~----~----~------~----~------~--~---
