ANN: rom 0.22 - Redis object mapper for Python

Josiah Carlson josiah.carlson at gmail.com
Sun Nov 3 20:31:43 CET 2013


Hey everyone,

As time progresses, so does my Redis object mapper.

The "rom" package is a Redis object mapper for Python. It sports an
interface similar to Django's ORM, SQLAlchemy + Elixir, or Appengine's
datastore.

The changelog for recent releases can be seen below my signature.

You can find the package at:
https://www.github.com/josiahcarlson/rom
https://pypi.python.org/pypi/rom

And docs can be found at:
http://pythonhosted.org/rom/

Please CC me on any replies if you have any questions or comments.

Thank you,
 - Josiah

#----------------------------------- 0.22
------------------------------------
[fixed] size estimation for intersection ordering when filtering has now
been
    fixed, thank you to https://github.com/MickeyKim for the report and the
    change (should improve performance).
[fixed] an issue with some types when trying to update attributes has now
been
    fixed, thank you to https://github.com/denisvolokh for the report.
[changed] improved performance for simple numeric range queries of the form
    Model.get_by(attr=value) or Model.get_by(attr=(min, max)) by roughly a
    factor of 60x or better in some cases. Thank you to
    https://github.com/MickeyKim for the report on poor performance.
#----------------------------------- 0.21
------------------------------------
[fixed] upload for rom 0.20 was missing new columns.py, now fixed
#----------------------------------- 0.20
------------------------------------
[changed] Added exception when performing .all(), .execute(), or .count() on
    query objects that have had no filters or attribute ordering provided.
    This addresses issue #12.
[changed] Moved column definitions to their own module, shouldn't affect any
    normal uses of rom.
[added] For users of Redis 2.6 and later, there is a beta Lua-enabled
writing
    option that allows for multiple unique columns on models. In some cases,
    this may improve performance when writing many entities very quickly.
[added] The ability to reload an entity from Redis, optionally discarding
any
    modifications to the object itself. Check out the documentation for
    Model.refresh(), Session.refresh(), and Session.refresh_all()
[added] Tests for the newly changed/added features.
[changed] Tests no longer use flushdb() - all test models/indexes/etc. are
    prefixed with RomTest, and we find/delete such keys before and after any
    tests are run. Now anyone can reasonably run the test suite.
#----------------------------------- 0.19
------------------------------------
[fixed] Thanks to a bug report by https://github.com/MickeyKim , was
notified
    of a bug when using unique indexes, which is now fixed and has a
testcase.


More information about the Python-announce-list mailing list