durusmail: durus-users: moellus 0.4.1
moellus 0.4.1
2005-07-12
moellus 0.4.1
Mario Ruggier
2005-07-12
New release of moellus is available, version 0.4.1, that you can find at:
http://scoopics.com/software/moellus/

Change log (also for unannounced 0.4 from a few days back) is below. Most
significant changes are switch to BTree for storage, much improved
automatic invalidating of computed attrs, and a usable clone_db utility.
Plus, the code is also a little more reader friendly ;)

Thanks for the help from everyone.

mario


0.4.1 (2005-07-12)

- Correct problematic PersistentItem.__cmp__(), that is now domain-stable.

- utils.clone_db() now works for databases that contain instances whose
keybinding value tuple itself contains other instances of PersistentItem.
This support is recursive, so supported depth of this nesting is arbitrary.


0.4 (2005-07-08)

- PersistentContainer now stores its items in a BTree instead of
PersistentList.
This implies that any index declared on the container (e.g. the default one
based on the item's keybindings) is also a BTree.

- New optional init parameter for PersistentContainer, mimimum_degree, that
will determine which node constructor to use for all the BTrees used by the
container (primary one for storage of items, and one per index).

- Implementation of automatic invalidation of all affected cattrs when a
source
value or item is modified or added. Note: as a consequence, a new
container must
be committed before items can be added to it.

- Changes to an Item's schema involving addition of new attrs/cattrs are
handled
automatically, i.e. all items previously persisted are automatically modified
(this will however still require a manual commit()). On the other hand,
removal
of an attr/cattr from an Item's schema is "cleaned" up from previously
existing
items by simply cloning the db.

- New: PersistentContainer._imappings = PersistentDict()
for cleaner and more flexible handling of intermediate computed mappings.

- New: PersistentItem.__cmp__(), to handle stable comparisons between
PersistentItems, required for BTree keys to work properly.

- Different property getters, for simple attrs and for enum attrs, to reduce
runtime access overhead for the non-enum general case.

- Source items taken in consideration by the predefined 'inv/1:1' cattr may
originate from across multiple containers.

- Added convenience utility: utils.rebuild_indices_db(db)

reply