Re: When the next release come out
Binger David <dbinger <at> mems-exchange.org>
2008-04-07 10:36:54 GMT
On Apr 7, 2008, at 3:58 AM, Yong Zhang wrote:
> Hi, Developers,
> I read the mails in this list, and find there are some bugs in
> Durus, especially in Windows version.
> I just want to know: when the next release come out. And, is the
> project still alive?
This project is still very much alive and we expect to get a release out
in the next few months. Here is the current changelog we're working
with now for the next release, which will be version 3.8. There are
no known bugs in the development version, but testing of this version
has only been on Linux and OS X so far.
Revise all code so that it is functional in both python 2 and python 3.
Note that this has not been tested much in python 3. The python 3
pickler code is a little different, so databases made with python 2 will
require conversion before they can work with python 3. We've
added a script for this conversion.
This release requires Python version 2.4 or later.
Implement call_if_persistent and use it to guard calls to
during pickling. In one benchmark, this reduces commit() CPU time by
Make ShelfStorage the default FileStorage implementation.
The FileStorage2 implementation is supported in this release,
To convert formats, use "python shelf.py old.durus new.durus".
Add BTree.get_depth() and BTree.get_node_count() so that it is possible
to know something of the dimensions of a given BTree.
Add BTree.set_bnode_minimum_degree() so that you control the depth of
Add Cache.__iter__(), so that it is easier to examine the objects
in the cache.
Implement __eq__() and __ne__() for PersistentDict, but remove
Drop support for comparing a PersistentDict to a plain dict.
Instead of using a set for recent_objects, use a special
ReferenceContainer class. This removes the necessity for
persistent instances to be hashable.
Remove the time-travel Connection from Durus.
Add byte_string to utils.
Add join_bytes(), empty_byte_string, and as_bytes() to utils.
Make write() call as_bytes() on the argument so that write(f, 'foo')
works in python 2 and python 3.
Add write_all() to utils so that callers don't need to concatenate
Add a flush() after every write() on Windows.
This appears to fix a problem that shows up when using ShelfStorage.
The problem was detected and fixed by Matthew Scott. Thanks.
Also change the nt implemention of obtain lock so that failure
to obtain a lock raises an IOError, as on other systems, instead
of a pywintypes.error.
Patch imports to work on nt. Posted by Sergio Alvarez.
Fix bug in FileStorage constructor that would prevent a file from
being opened as readonly when another process has it open readwrite.
Remove Storage.get_size(), FileStorage2.get_size().
Remove support for calling _p_note_change() by assigning to
the "_p_changed" attribute. If your code uses the attribute-setting
style, it should be updated to just call the method directly.
The attribute-setting notation is riskier because you may set the wrong
attribute, or set the right attribute on a non-persistent object,
and get unexpected results.