The Storm team is proud to announce Storm 0.15! The new release includes a number of new features:
* New GenerationalCache object cache * New ResultSet.find method and other improvements * New Neg and Coalesce expressions * Python 2.6 is supported * New Ubuntu packages Read on for more... New GenerationalCache object cache ---------------------------------- A new GenerationalCache is available. It can be used in place of the default Cache and will likely become the default in the future. You can use it by passing it as a parameter to Store: from storm.locals import Store, create_database from storm.cache import GenerationalCache uri = "<uri>" store = Store(create_database(uri), GenerationalCache()) Also note that the default cache size has been increased from 100 objects to 1000. Please try the new cache and report your results to mailing list. New ResultSet.find method and other improvements ------------------------------------------------ The new ResultSet.find method works just like ReferenceSet.find. It takes a list of expressions and uses them to filter the items in the original result: result = store.find(Foo, Foo.bar == 42) result = result.find(Foo.baz > 7) In addition to the new find, ResultSet.set works with expressions and ResultSet.remove returns the number of rows that were deleted. New Neg and Coalesce expressions -------------------------------- The new Neg expression prepends a minus sign to the expression it wraps, providing unary minus. The new Coalesce expression takes an arbitrary number of columns and calls the COALESCE function with them. Python 2.6 is supported ----------------------- Python 2.6 is now fully supported with all tests passing. In addition, Storm's C extension compiles for python 2.4, 2.5 and 2.6. The PostgreSQL backend now requires pyscopg2 2.0.7 or newer. New Ubuntu packages ------------------- This release includes official packages for all supported releases of Ubuntu. They are available in the Storm team's PPA: https://edge.launchpad.net/~storm/+archive/ppa You can find the release files at: https://launchpad.net/storm/+download You can always get the latest source code from Launchpad: bzr branch lp:storm As always, you can join us in channel #storm on irc.freenode.net and on the storm mailing list: https://lists.canonical.com/mailman/listinfo/storm Detailed changelog ------------------ Improvements: * Add support for latest version on Django by not checking arguments passed to _cursor. * Added support for using Expressions with ResultSet.set(). * The default cache size was changed from 100 to 1000 objects. * Added the new GenerationalCache with a faster implementation of the caching API (by Jeroen Vermeulen). This will likely become the default implementation in the future, so please test it if possible. * A new UUID property type has been added. It depends on the uuid module introduced in Python 2.5 to represent values. * The StoreDataManager now gets passed a transaction manager from the ZStorm utility. This will make it easier to support non-default transaction managers in the future. * An adapter is now available for converting ISQLObjectResultSet objects to IResultSet. This is intended to help in gradual porting SQLObject applications to Storm's native API (bug #338184, by Gavin Panella). * If a disconnection occurs outside of Storm's control, a DisconnectionError will still be raised next time the connection is used through Storm. This is useful if the connection is being shared with another framework like Django (bug #374909). * The PostgreSQL backend now requires psycopg2 >= 2.0.7. The work around for broken quoting behaviour in older psycopg2 versions has been removed. (bug #322206). * A new Neg expression is available. It provides unary minus by prepending a minus sign to whatever expression is passed to it (bug #397654 by Michael Hudson). * A new Coalese expressions is available. * ResultSets now have a find(). It acts similar to Store.find(), but without the first argument (it uses the same classes as the original result), and only returns results found in the original result set. (bug #338255). * Result.rowcount exposes the number of rows affected by the query, when known. * ResultSet.remove returns the number of rows deleted from the database. (bug #180122). Bug fixes: * The fix for ResultSet.count() on distinct results from last release has been improved, and the fix has been extended to the other aggregates. This may change the result of some count(), min(), max(), sum() and avg() calls for results using distinct, limit or offset. * The test suite now passes when run with Python 2.6. * ListVariable now converts its elements to database representation correctly (bug #136806 reported by Marc Tardif). * compile_python now works for values that don't produce valid Python expressions with repr(). * The C extension should now build under Windows. -- storm mailing list [email protected] Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/storm
