ANN: rom 0.22 - Redis object mapper for Python

Josiah Carlson josiah.carlson at
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

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

You can find the package at:

And docs can be found at:

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
    fixed, thank you to for the report and the
    change (should improve performance).
[fixed] an issue with some types when trying to update attributes has now
    fixed, thank you to 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 for the report on poor performance.
#----------------------------------- 0.21
[fixed] upload for rom 0.20 was missing new, 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
    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
    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 , was
    of a bug when using unique indexes, which is now fixed and has a

More information about the Python-announce-list mailing list